区块链软分叉是如何实现的?

软分叉则是指旧节点并不会意识到代码的变化,并继续接受或者说验证新节点生成的区块。具体来说,软分叉和硬分叉的新节点都可接受由旧节点产生的数据或者代码,就如Windows 10亦兼容Windows XP应用。而软分叉在此基础之上,还可实现“向前兼容”,让旧节点也可以接受新节点产生的区块,从而避免区块链分裂这种情况。接下来将介绍软分叉是如何被实现的。

共识规则和软分叉

共识规则决定着每个交易或每个区块的有效性。比特币网络上的每个用户和矿工都遵守着同一套共识规则,代表着他们都愿意接受和同意一个账本。

当大多数用户和/或矿工决定采用更严格的共识规则时,软分叉就可能出现,这使一些以前有效的交易/区块将变为无效,而不是相反。如果大多数人执行新的规则的话,其他任何违规分叉(统计上)都不会在工作量证明方面赶上新的更严格的共识分叉。遵守旧规则的少数人将始终遵循更长,更严格的分叉,使得网络上的每个人都会最终接受和同意一个账本。

政策规则和共识规则

虽然共识规则是确定交易有效性的唯一标准,但是传播节点或挖矿节点可能偏好某种交易。例如:

作为垃圾邮件控制机制,费用非常低的或 “微产量”(输出值很低)的交易将被拒绝。

一些矿工拒绝将 “链上赌场” 交易包括在内,这些交易被认为是垃圾邮件。

未知版本的交易被拒绝(目前只有版本 1 和 2 是 “已知的” )。

非常规的脚本(即不是 P2PKH , P2SH , v0 segwit 或其他一些情况)和未知的 NOPx 代码(目前仅知道 OP_NOP2 和 OP_NOP3 )的交易将被拒绝。

更换费用( Replace-by-fee )和母费子付( child-pay-for-parent )也属于政策规定,因为他们确定了哪些是矿工首选的交易。

根据定义,政策规则必须至少与共识规则一样严格。很明显,矿工们不希望在一个区块中包含无效交易(这会导致采矿奖励的丧失),或者将其传播(这将被同行排斥)。

虽然政策规定可能比共识规定更严格,但要注意,政策规定并不决定交易的有效性。一旦交易被包含在有效的区块中,即使它违反了一些政策规则,所有的网络节点也将会接受并承认它。

同样要注意的是政策规则是区域性的,而共识性规则是普遍性的。这意味着不同的网络节点可能有不同的策略规则。只要运行相同的共识规则,他们仍然会一致同意区块链账本。

违反政策规则的交易有时被称为“非标准交易”,我们需要将其与 “无效交易” 区分开。

政策规则和软分叉

理想情况下,所有的矿工都应该在软分叉激活之前升级到新的更严格的规则版本。在经济利益上,他们有强烈的动力去做这件事,因为挖掘一个无效区块(就新规则而言)会形成重大的财务成本。但是,像比特币这样的去中心化系统,矿工的行为是不能保证的。

虽然矿工们理论上应该关注所有规则变化的提案并及时采取行动,但是一旦矿工挖掘无效区块便会导致市场中断和普通用户的经济损失。因此,任何计划良好的软分叉都应该考虑到这一点,并将风险降至最低。

诀窍是,软分叉的内容应该限制在现有并广泛采用的政策规定所涵盖的范围内。拥有政策规定,但不了解新的共识规则的矿工,将会自动拒绝这些交易,因此,他们绝不会将新交易规则中的交易包括在内。这在比特币历史上的一些案例中有详细阐述。



免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx资讯站仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。