http://www.www.tnmanning.com

[译]BCH剧本应用措施:Tokens(OP_GROUP)

- 以及为匿名P2P互换利用半事务的本领

输入颜色通过此处描写的基于订单的方案分派给输出。 实质上,所有的输入satoshis分列,并凭据它们呈现的顺序用颜色标志。 接下来,所有的输出都与输入对齐,颜色从输入satoshi传输到1输出。 该算法导致一些巨大性; 首先,一个输出大概包括差异的标志,颜色差异(譬喻,假如前两个输入是每500个satoshis,赤色和蓝色,第一个输出是1000 satoshis,那么输出的颜色将是赤色和蓝色)。 必需记着每种颜色的数量和输出中的颜色顺序。 为了确定着色,必需将所有生意业务追溯到颜色成因,使得轻的钱包很是难以实施)。

由于一分PK10矿工忽略了OP_RETURN数据字段,因此在生意业务中包括任意数据(譬喻,耗费您不拥有的彩色硬币)好像是大概的。 充其量,这些生意业务只能被Colu Colored Coins客户忽略,导致大发3d中潜在的大量伪造数据,并增加客户错误的大概性。

- 矿工强制执行正确性(这意味着像一分PK10一样,在大发3d中足够深的生意业务可以被轻的钱包假定为正确的)

最后,严格的颜色排序使得利用半生意业务举办投标是不行能的,因为不能用第一次输入“赤色”颜色和第一次输出“蓝色”颜色来建设部门生意业务。

为什么不利用以太坊

我相信,以太坊最近的乐成不是由巨大的条约(有一个问题是真正的,实际的条约是否会在大发3d中有用),而是成立ICOs(初始钱币产物)。对付那些猜疑的人来说, 代币的代价在实践中已经获得证实。

OP_GROUP彩色硬币

OP_GROUP彩色硬币答允将资产直接暗示为satoshis,并将彩色硬币转移和验证嵌入到一分PK10剧本语言中,使彩色硬币可以或许充实操作剧本,而且使得它们很是易于在现有一分PK10现金中实施。

根基的“有色” pay 2 public key hash剧本因此看起来像:

可是通过位于一分PK10大发3d上,Colu彩色币可以与一分PK10原子互换

由于系统不利用satoshis作为代表性钱币,所以一分PK10剧本,签名验证等都不合用。它好像真的是一个完全独立的系统驮在一分PK10大发3d上。

- 明晰的和当地的令牌/颜色指定(其他发起需要知道硬币汗青来确定颜色,这就是为什么他们可以或许更有效地编码输出)

一些调查

可鉴定

总结

与下面描写的其他要领对比,OP_GROUP要领的缺点是在每个彩色硬币输出总共有22个字节中增加了特另外OP_GROUP数据,尽量应该可以通过利用链参数(chainref)将其压缩到几个字节 虽然,“正常”的一分PK10现金产出与本日看起来完全一样,因此不需要特另外空间)。 利益是:

可是我相信软叉长短常重要的,所以一分PK10现金矿工们可以执行正确的OP_GROUP语义,以确保着色不会心外丢失。 没有人愿意因为他们不小心利用了一个旧钱包,就将Google的股份作为一双satoshis发给或人!

这样,只有集团地点的所有者才气“mint”新的彩色硬币或将其“melt”回BCH。

今朝在一分PK10中提出了几种形式的彩色硬币,我在本文末端具体描写。 可是我想提出一个一分PK10现金彩色硬币的新实现,可以通过向客户添加一个操纵码来实现,与现有的发起对比具有优势。

我认为,由于大发3d软件的维护人员意外失色,缺乏商定的尺度,生意业务空间供给问题,以及彩色硬币没有“理睬”的意识,已经阻止了人们利用彩色 硬币。 相反,他们选择利用像以太坊这样的大发3d,鞠躬尽瘁地包括多种标志范例。 然而,软分叉办理了所有这些问题。

- 与剧本语言整合

- 仅限于一种颜色的输出

固然上述互换有很多缺点,譬喻“制造商”的收购难度很大,但由于它组成了一种非凡的,不受信任的,匿名的,无权限的对等互换机制。 然而请留意,法律机构仍然需要在代币和真实商品之间的边界长举办识别 – 也就是说,当一小我私家试图将代币兑换为基本商品时,大概需要识别身份。

将所有代表资金放在一分PK10现金大发3d(而不是每个大发3d中)的要害来由是bch 和代表币种的任何组合之间的原子,不行信,无权限,伪匿名互换。 此成果将一分PK10现金从“电子付出系统”(如一分PK10白皮书中所述)酿成“电子互换系统”。

新的指令被添加到称为 OP_GROUP 的剧本语言中。 当碰着 OP_GROUP 指令时,它利用仓库顶部的数据作为组标识符,并将该输入/输出的值加到/减去与该组相关联的整数(初始化为零)。 这个整数被称为“组均衡”。 假如没有OP_GROUP,则输入/输出被假定为默认的“一分PK10现金”组。 在生意业务处理惩罚竣事时,除了“一分PK10现金”组,其输入大概高出其输出以形成生意业务费(如今所产生的)之外,每个组余额必需为零。 换句话说,在每个彩色硬币组中,satoshis 耗费的 satoshis 输入均衡。

硬分叉,软分叉,没有分叉?

可是这个协议比我的发起更有效地编码着色,因为它在大发3d汗青中每个硬币只编码一次着色。

那么为什么把它作为一个操纵码,而不是每一个输出相关的数据呢? 首先,一个操纵码可以很容易地与一分PK10现金的生意业务名目集成在一起,然后我们放开一些门来放松一些限制 – 假如呈现用例,可以添加新的OP_GROUP事务模板。 譬喻,我们可以添加一个模板,假如在“if!X”语句中存在别的一个包括OP_GROUP的输出,该模板答允在“if X”语句中指定OP_GROUP。

为了“melt”硬币(将它们从组中撤除),我们利用沟通的计策。 假如一个生意业务输入被分组而且由与OP_GROUP标识符沟通的一分PK10地点签名,那么该输入的值可以被安排在组中或一分PK10组中(或每其中的一部门)。 譬喻,假如生意业务在地点TOK和2个输出上具有值200 TOK的输入:向任何地点付出100 TOK,向另一个地点付出100 BCH satosh,作为该生意业务余额。

查抄位于这里的转移指令,好像被转移的资产是隐含在已知的投入资产和他们的订单。 这不能通过查察大发3d汗青上的先前支出来确定,您需要追溯自资产建设以来的整个支出汗青记录。 然而,“轻客户”和SPV钱包将不会有这样的汗青,所以建设这种范例的客户端大概是坚苦的。

请留意,当钱包实验确定特定生意业务是否包括钱包“拥有”的硬币时,本日在一分PK10和一分PK10现金中存在确切的问题。 办理方案是限制钱包生成的剧本范例,并将节点转换为一小组模板。 钱包中包括矿工包括的任何“非尺度”剧本。

另一个重要的特征是代表tokens和一分PK10现金之间地点的配合性。 这答允通过在每个持有该token的地点向Bitcoin Cash自动付出利钱或股息(假如需要的话)给令牌的每个持有者。

为了将新硬币“mint”成一个组,假如一个生意业务有一个与 OP_GROUP 标识符沟通的一分PK10地点签名的输入,那么该输入的值可以放在组中或一分PK10组中(或部门 在每个)再输出。 另外,第一个“mint”事务可以包括一个可选的 OP_RETURN,个中包括一个简短的我们可读的名称(譬喻股票代码)以及具体描写该组的文档/合约的散列。 譬喻,一个有效的生意业务可以输入200个BCH satoshis位于地点ABC,输出200 ABC。

EPOBC

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。