找回密码
 立即注册

QQ登录

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏

比特币现金(BCH)硬分叉协议升级的具体说明

kg01 2018-11-5 20:21:03 显示全部楼层 阅读模式 打印 上一主题 下一主题
根据bitcoincash.org网站提供的信息显示,比特币现金(BCH)网络将于UNIX时间戳1542300000(北京时间2018年11月16 日0:40:0)进行一次硬分叉协议升级,而使用BCH网络的企业和个人,都应该检查自己运行的软件,以确保自己的软件与这次升级相兼容。
截至目前,已实现兼容的客户端包括Bitcoin ABC 0.18.2、Bitcoin Unlimited Cash Edition 1.5.0.0, 而即将实现兼容的客户端还有bcoin-bcash 1.1.0。
(如果用户因不熟悉或其他原因,也可以将自己的资产存放于支持这次硬分叉升级的可靠交易所,截至目前,已明确支持这次升级的交易所包括币安、火币、coinbase、Poloniex等。当然,如果读者对自己的技术的很有信心,自行操作会是更好的一种选择,因为如果万一出现了链分裂的情况,你就可以第一时间获取到分叉币。)

201811050443291956.jpg

201811050443291956.jpg


(图片拍自:bitcoincash.org)

以下为这次硬分叉协议升级的具体说明:

摘要

当最近11个区块(MTP-11)的时间中位数 [1] 大于或等于UNIX时间戳1542300000(译者注:北京时间2018年11月16 日0:40:0)时,比特币现金(BCH)将根据此规范执行网络共识规则升级。而从下一个区块开始,这些共识规则的更改将会生效:
[ol]
  • 删除拓扑交易排序限制,并强制执行规范交易排序;
  • 启用OP_CHECKDATASIG和OP_CHECKDATASIGVERIFY操作码;
  • 实施最小交易大小规则;
  • 为scriptSig(脚本签名)强制执行“push only”规则;
  • 实施“清理堆栈”规则;
    [/ol]
    以下部分不是共识方面的更改,而是对比特币现金(BCH)实施的推荐更改:
    [ol]
  • 对于未来升级的自动重放攻击保护;
    [/ol]

    规范交易排序

    除了coinbase交易之外,区块内的交易必须按交易 id的数字升序排序,它们会被解释为256位的小端整数(little endian integers)。coinbase交易必须是一个区块当中的第一笔交易。

    操作码(OpCode)

    新的操作码OP_CHECKDATASIG以及OP_CHECKDATASIGVERIFY将按照 op_checkdatasig.md [2]中的规定得到启用。

    最小交易大小

    小于100字节的交易,应被视为无效交易。这可以防止黑客利用默克尔树(Merkle tree )漏洞,针对轻钱包(SPV) [3]实施欺诈交易攻击而造成影响。

    Push Only

    如果在一个脚本签名当中,出现了编号大于96(十六进制编码为0x60)的操作码,则交易会被认为是无效的。这和比特币BIP 62 #2 规则 [4]是相同的。

    清理堆栈

    而要使一笔交易是有效的,在完成脚本评估的时候,堆栈上必须只有一个非零项。如果堆栈上仍然有额外的数据元素,则脚本的计算结果为“false”。这与比特币BIP 62 #6规则[4]是相同的。

    自动重放攻击保护

    当最近11个区块(MTP-11)的时间中位数 [2] 小于UNIX时间戳1557921600(2019年5月15日)时,比特币现金(BCH)全节点必须执行以下规则:
    [ol]
  • forkid [5]等于0.
    [/ol]
    当最近11个区块(MTP-11)的时间中位数 [1]大于或等于UNIX时间戳1557921600(2019年5月15日),执行2018年11月份共识规则的比特币现金全节点,应该执行以下更改:
    [ol]
  • 将forkid [5]更新为等于0xFF0001,以0xFF开头的ForkID,将被保留,以用于将来的协议升级。
    [/ol]
    这一特殊的共识规则,绝不能由比特币现金软件钱包来实现。跟随升级的钱包,不应该改变任何东西。

      参考
    [1]中位值时间的描述来自bitcoin.it wiki, [2] https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/op_checkdatasig.md
    [3]比特币默克尔树设计中的叶节点弱点 [4] BIP 62 [5] forkId是根据重放攻击保护的签名哈希(sighash)规范定义的。
    原文:https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/2018-nov-upgrade.md
    作者:BCH开发者
  • 回复

    使用道具 举报

    说点什么

    您需要登录后才可以回帖 登录 | 立即注册