比特币规则VS共识规则

在最近的YouTube访谈中,瑞安·查尔斯(Ryan X. Charles)和nChain首席技术官史蒂夫·施德斯(Steve Shadders)讨论了即将在2月份推出的比特币SV(BSV)网络创世(Genesis)协议升级的具体细节。访谈的主题围绕比特币规则和共识规则之间的差异。本文旨在阐明这些问题,并就如何保持比特币SV网络向前发展提供一些观点。

什么是比特币规则?

比特币规则定义为所有节点都必须遵守的规则集。一个例子是通货膨胀时间表(50 -> 25 -> 12.5 -> 6.25…),以及代币可以铸造的时间(只有当找到一个区块,coinbase交易)。

什么是共识规则?

共识规则定义为在给定时间点,哪些节点必须同意有效的内容。例如,在类星体(Quasar) 升级中,默认区块大小为2GB。节点可以随时更改此设置,而且矿工似乎大多已设置了512MB的上限,因为我们还没有看到超过此上限的区块。

图片来源:Blockchair

有何区别?

施德斯在@4:19解释了这一点,因为比特币规则是不可变的 (无法更改) ,而共识规则是可变的。我要补充的是,未来共识规则将受市场力量的引导,而不是一成不变。

创世升级的真正目的是消除协议开发人员的中央规划,使矿工能够控制网络,根据市场力量管理自己的设置,并允许他们无限扩容。

通过取消比特币核心施加的所有限制并优化软件,比特币SV节点团队为矿工们提供了一个良好的起点,开始拥有这个网络。

矿工与协议开发人员之间的关系

过去,默认设置决定了矿工如何管理节点。默认值不会更改,因为没有动机这么做。区块奖励大部分是固定的;费用相对较低,而矿工的利润率大多与其相对的哈希值有关。随着块状奖励的减少,交易费用必须弥补损失的矿工收入,以稳定采矿动机。因此,矿工必须能够处理大量交易,才能获得前进的费用,这意味着节点软件必须能够扩容。

目前为止,在BTC、BCH和大多数BSV中,矿工们已经采取了经济计划,并允许未雇用的协议开发人员指导他们如何开展业务。这是荒谬的。

直到去年,我们才看到BSV矿工对网络拥有更多的控制权,这主要是因为协议开发人员对规则集的定义变得更加宽松。

在类星体升级中,该软件不太可能能够处理2GB的区块。即使矿工试图开采这么大的区块,它也会被其它节点拒绝,因为他们可能已经设置了较低的上限。矿工不想冒着跳出来可能导致亏损的风险,因此他们与其他矿工达成了共识。

这里的区别是关键的;矿工们共同建立了这个512MB的上限,而不是被告知要设置该上限。这是交易的供求关系和所谓的竞争机制。

OP_Codes必须是不可变的

资料来源:Twetch

通过使op_codes可变并禁用某些代码,因为它们“太难”修复,限制了许多潜在的用例。围绕op_codes的分歧产生的戏剧性后果甚至是将比特币现金从比特币SV分裂的因素之一。

锁定比特币的编程语言非常重要,因为它与可消费和不可消费的代币保持一致。如果代码被任意禁用,旧的代币可能变得毫无用处。此外,通过增加评估方式的复杂性,代币可能会被盗——这正是核心通过添加P2SH和Segwit所做的。

建立协议规范

沙德尔在@13:12指出,过去,比特币规范是比特币核心参考客户端的运作方式。作为一个有经验的软件开发人员,这个概念是荒谬的,因为它意味着文档就是代码,所以只有那些能够阅读代码的人才能理解它的作用!

这将核心开发人员置于权力的恒定位置,因为他们是唯一真正理解他们添加的复杂修改的人。比特币规范从未发布,这是很自然的,因为它会从这些开发人员手中剥夺一些权力,并将这种权力重新分配给用户和矿工。

通过使创世规范中的共识规则更加透明(并通过MineID,稍后将提到),建立比特币规范是更为可行的。锁定的协议很容易记录,因为它不会更改。

实现细节与协议的融合

众所周知,Mempool是存储在内存中的节点的未确认交易。这不是必需的,因为节点可以将它们存储在任何地方(磁盘上,甚至纸张上!)施德斯在@20:20讨论了为什么此命名应更改为“未确认的交易集”之类的命名。由于它不是比特币协议的一部分,因此可以用矿工选择的任何方式实现。矿工不会分叉区块链,因为他们找到了优化节点软件的更好方法。

这种思维方式的负面影响在于它造成了一种错误的限制。对必须如何进行自定义操作的理解。通过消除这些概念的混淆,为矿工们提供了更多的控制权。

新的共识规则

由于不受限制的脚本语言,已经实现了名为“最大脚本内存使用量”的新共识规则。这种配置允许矿工管理单个脚本消耗的最大内存量。此设置最初将取消上限,迫使矿工拥有自己的节点。如果矿工没有设置,那么不可避免地当有人编写一个极其复杂的脚本时,他们的节点将崩溃。

矿工可以使用新的Miner ID API(目前正在测试中)来就此值进行合作,使他们能够查询其它节点的设置,以便协作管理网络,这样他们不会分叉,但仍在同时进行竞争。

此规则应有助于将此值提高,因为处理更复杂的脚本的能力会导致产生更高的潜在收入(作为费用),并产生更强的激励来优化节点中的脚本处理。

P2SH的弃用

@25:21施德斯谈到这是一个有争议的更改,因为它是多重签名交易的主要机制。首先,这引起争议的唯一原因是比特币核心开发人员禁用了脚本,使多重签名交易不可行,从而激发了人们使用P2SH作为该机制的动机。这是中央计划的意外后果的又一个例子。

为了凸显空间的争议和不成熟性,托管钱包服务BitGo声称,他们的钱包为BSV实施这种更改将花费300万美元。

资料来源:Twetch

以上Twetch内容突出说明了这个声明有多精明。nChain甚至提出要为BitGo进行开发,为此他们将其价格提高到1500万美元。

不知何故,nChain应该支付Bitgo 1500万美元来为他们做开发。弃用P2SH是使空间成熟并淘汰这些幼稚的市场参与者的必要步骤。

最后,祖先限制

@33:30有争议的祖先限制,阻止用户在区块中挖掘之前创建26个或更多的链式交易。施德斯提供了一个更新,该限制可以在“几天内”提高到50个,并在创世升级之前可能提高到100。长期计划是彻底取消这一上限,不管怎样这是一个好消息。

施德斯强调,如果利用Merchant API直接向矿工广播交易,则此上限可能会提高很多。这进一步激励人们按照设计使用比特币网络,节点是属于矿工的,体现了一个强大、健全的小世界网络。

202024日的“创世”协议升级是比特币历史上的一大里程碑,将见证BSV最大程度地回归到中本聪原先设想的协议。请访问“创世”硬分叉页面以了解更多信息。

要直接在您的收件箱接获CoinGeek.com最新消息,CoinGeek会议特别优惠以及其他内部信息,请加入我们的邮件列表

[10]
[10]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
['on' + event]
['on' + event]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[i]
[i]
[results[1]]
[results[1]]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]
[10]
[10]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
['on' + event]
['on' + event]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[i]
[i]
[results[1]]
[results[1]]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]