比特币重生计划:移除 P2SH

移除 P2SH

为了使比特币尽可能接近原始的比特币协议,我们将计划废弃 P2SH。这不是一个简单的任务,需要分几个阶段进行。我们需要先开启新的非标准脚本供矿工接受,当停止新的操作符添加时,我们将接受旧的 P2SH 交易,但不允许再创建新的 P2SH 交易。

比特币的问题

比特币发展至今,受感染的两个最严重的癌症(概念)是:

  • 软分叉(Softfork)
  • 支付到脚本哈希 (P2SH)

前者在比特币上再也见不到了,硬分叉才是比特币的正确升级方式,这条唯一的出路早已在原始的比特币白皮书中阐明。软分叉的概念是对比特币最阴险的攻击。幸运的是现在它已不再有效。所有关于比特币的共识规则都将使用唯一有效的方式来处理: PoW 和硬分叉。

P2SH 的问题

P2SH 指的是 Pay-to-Script-Hash,用户不是像 P2PKH 把币发到一个地址上,使用对应的私钥即可解锁。P2SH 则需要系统之外的一个 Redeem Script 续回脚本,通过运行它来解锁该脚本锁定的币。不幸的是,P2SH 这个操作符的增加,让脚本的处理能力可能出现失控的情况,因为这依赖于外部的脚本执行,而系统无法确保该脚本是锁定时所用的而未被篡改。事实上,可以精心构造两个作用不同但 hash 一致的脚本,毕竟在续回的时候只需要与 Redeem Script 的哈希值相同即可。

而比特币的 Layer 2 应该是建立在可验证的脚本之上。

解决方案

不幸的是,我们不能简单地直接剔除 P2SH。因为它已经在许多应用中都有使用。但我们将宣布一个计划,以让它自然淘汰,
在将来的某个时间点后,我们将不再允许标准脚本和非标准脚本的区分成为继续使用 P2SH 的理由。要做到这一点,我们将允许脚本运行,并停止不包含在非标准脚本的有缺陷的概念。

使用 P2SH 的一个理由是有一个滑动性的共识规则。它有助于调整 “软分叉” 的策略 (如我们在 Bitcoin Core 中所看到的),并有隐藏交易的规则。这不是比特币最初的构想。比特币系统没有匿名,但有化名,这里指的是隐私。比特币在保护隐私的同时,交易还必须可用并可追踪。

一些开发人员喜欢说为了改变和实验,作出改变总是好的。如果他们是正确的,我们可以试着改变一下轮子的形状。数千年来,它一直是圆形的,按照为了改变而改变的相同逻辑,可以尝试一下改成四方形的,或者三角形的。但事实是,要改变一个金融系统,比如比特币,需要提议者来证明这个增加的提议有多好,而不是为了改变而改变。因为货币需要稳定,所有这些画蛇添足的改变将使比特币失去了价值,这也是为什么我们将把它恢复到最初的状态。

所以,是时候开始使用比特币脚本了。它是比特币唯一的第二层。在网络协议中,数据封装在层里面。这就是,一层在另一层里面,而不是在外部系统里。在这方面,比特币类似于 OSI 模型中的 HTTP 第四层。

在互联网的 OSI 模型中,HTTP 是一个更高的层,因为它是封装的,它里面还包含其他内容。像侧链、Plasma 或闪电网络之类,它们是独立的系统;不可能成为第二层,因为没有被封装在脚本中。

在比特币模型中,我们有以下层级结构:

  • L0 = 物理层
  • L1 = 数据链 (网络,例如 IP 和互联网或其他)
  • L2 = 网络–P2P 网络和用户与节点之间的交易交换
  • L3 = 比特币交易
  • L4 = 脚本
  • L5 有待创造的更多东西。这里对开发者是完全开放的。

在任何系统中,都没有无许可的概念。比特币允许你创造任何你喜欢的东西 – 包括丝绸之路 2.0 版本和儿童色情交易所 – 这种想法与比特币的设计初衷是对立的,比特币的初衷是坚实的货币。从现在起,一切都结束了。我们在互联网上看到的不是一个没有许可框架的开发,而是在法律和系统规则范围内发展的无限潜力。

就像你不能选择 HTTP 数据包和数据报的格式一样,你也不能在比特币中添加和更改操作符 OP_CODE。你可以在这个系统中发挥你的才智,只要你的操作不会破坏影响到别人。

欢迎来到 Metanet 的世界。

PS:在 BSV 2020 年初的创世纪升级中,P2SH 的交易已经不再被支持,如果你在开发 BSV 时看到 P2SH 的相关材料,意味着它已经过时了。

原文链接:https://metanet.press/rebirth/chapter-scripting/sunsetting-p2sh

你可能感兴趣的:(比特币重生计划:移除 P2SH)