Please note, this is a STATIC archive of website bitcoinsv.io from 08 Oct 2020, cach3.com does not collect or store any user information, there is no "phishing" involved.
比特币SV创世纪硬分叉技术规范
by Aleksander Gora
十二月 20, 2019 (1min read)
比特币SV节点团队已发布创世纪硬分叉升级(计划于2020年2月4日实施)的完整技术规范。请点击此处...

比特币SV节点团队已发布创世纪硬分叉升级(计划于2020年2月4日实施)的完整技术规范。请点击此处 https://github.com/bitcoin-sv-specs/protocol/blob/master/updates/genesis-spec.md 查看该规范。

我们此前已经公布了创世纪硬分叉实施计划,并且告诉比特币SV节点软件的运行方应该如何准备每个步骤。我们鼓励比特币 SV用户使用测试版节点软件对自己的应用程序进行测试,进而参与对比特币 SV节点的测试。该测试不仅仅适用于挖矿节点,还适用于钱包、交易所、应用程序 等不向区块链写入交易的节点软件运行方——即“区块链监听者”。请阅读我们此前的公告,了解更多信息以及截止到2020年2月4日的实施计划表。

重点变更

共识变更

将区块大小的默认硬顶变更为无限大

矿工仍将能够在配置选项中对区块大小的硬顶进行设置,但默认值为无限大。在创世纪升级之后,如果矿工主动强加对硬顶的限制,则矿工也有责任对硬顶设置进行管理。

恢复 OP_RETURN 的功能

将OP_RETURN的功能恢复到其最初的设计,从而使开发人员能够轻松地提前中止脚本运行,同时还可得到有效的返回值。

用 BigNumber 替代 32 位操作码

将大大提高比特币脚本语言的数学能力。 32位的容量十分有限,在执行复杂的数学运算(例如签名验证)时,会很棘手且效率不高。此项更改将恢复最初的设计,提升复杂运算的效率,并启用提供各种高级功能的复杂脚本。

在新交易中废止使用P2SH

Pay-to-script-hash(或P2SH)是比特币引入的一种新机制,用于在创建输出脚本时隐藏行踪。这与比特币诚实记录的哲学背道而驰。此外,P2SH鼓励了不良的隐秘活动在其上大肆交易,并且与比特币至关重要的点对点主张相背离。现有P2SH地址上的比特币将不受影响,因此不需要整理旧钱包。这项变更是为了阻止进行新的P2SH输出。

恢复nLockTime 和 nSequence 的最初用法

这两个字段是支付通道机制中不可或缺的一部分,中本聪将它们设计为用于进行高速微支付的基本机制。但是后来BTC Core开发人员将它们重新定义为两个新的操作码。除了要删除这些操作码,还要恢复nLockTime和nSequence的最初用法。

其它需要的变更

点对点传播非标交易

将允许任何人都可以使用复杂交易。在创世纪升级之前,只有标准交易(如支付交易或普通数据交易)才会被点对点传播,并传至矿工。这意味着,如果你想使用复杂的交易,你必须先与一个矿工达成协议,要求矿工进行确认并打包。在创世纪升级之后,所有交易类型都可进行点对点传播,这样任何人都可以使用复杂交易。

其他公示变更

  • 创世纪升级的区块高度激活机制
  • UTXO 存续依赖规则
  • 正式脚本语法
  • scriptSig中只能包含OP_PUSHDATA操作
  • 在新交易中废止使用OP_CHECKLOCKTIMEVERIFY和OP_CHECKSEQUENCEVERIFY
  • 添加max_script_memory_usage的策略限制,默认值为100MB
  • 添加max_script_memory_usage的共识限制,默认值为无限大
  • 取消对每MB区块空间的签名数的共识上限
  • 取消对每笔交易的签名数的共识上限
  • 取消对每个脚本的操作码数量的共识上限
  • 取消对每个脚本对象体积的共识上限
  • 取消对脚本中对象数量的共识上限
  • 取消对每个multisig公钥数量的共识上限
  • 将交易体积的共识上限提高到1 GB
  • 支持使用原始sighash算法,花费创世纪升级之前的UTXO

其它需要的变更

  • 并行区块验证
  • 单独处理低优先级队列中的非标交易
  • 为标准交易和非标交易设定评估超时策略的脚本
  • Inv信息中包含按验证次序排序的tx
  • 对于包含P2SH输出脚本的交易,即不传播也不打包,以此防止意外使用P2SH
BitcoinSV-zh