比特币SV创世纪硬分叉技术规范

作者:比特币协会  时间:2019-12-21  分类:比特币(BitCoin)新闻  

  比特币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

  翻译:Ryan

点击“阅读全文”,查看详情
版权信息
作者:比特币协会
来源:BSVOfficial

关于我们

联系我们

作者进驻

公众号

Copyright © 2013 比特巴 www.btb8.com
只为您提供客观公正有用的比特币 区块链 加密数字货币新闻、技术教程、行情分析、行业人物资讯
手机版