比特币最终性

100% 比特币终结性(finality)的概念对 Stacks 的设计至关重要。这使得 Stacks 成为真正的比特币二层,并能够利用比特币固有的全部安全性。
终结性指的是交易变得不可逆转的时间点。一旦区块链达到终结性,除非采取通常在计算或经济上都难以承受的非常规手段,否则几乎不可能更改账本历史。
当我们说 Stacks 区块具有 100% 的比特币终结性时,我们的意思是它们与比特币交易本身一样难以被逆转。
这是一个大胆的说法,那么 Stacks 是如何实现这一点的?
如上所述,矿工负责在其任期内生成 Stacks 区块,该任期对应于单个比特币区块。作为其提交区块交易的一部分(该交易以前将下一个 Stacks 区块的哈希提交到比特币链上),矿工将被要求改为添加一个索引化的区块哈希。
索引化区块哈希是最后一位 Stacks 矿工在其任期内生成的第一个区块的哈希。它是先前被 Stacks 认可的所有已接受比特币交易的共识哈希与该区块本身哈希的 SHA512/256 哈希值。
这将把 Stacks 链的历史锚定到比特币,直到上一个矿工任期的开始,以及 Stacks 已处理的所有因果依赖的比特币状态。这确保了比特币的终结性,通过将分叉预防放在堆栈者(stackers)上来解决矿工连接性问题,并允许拥有最新 Stacks 链状态副本的节点识别哪些 Stacks 区块受到比特币重组的影响并恢复受影响的 Stacks 交易。
堆栈者、矿工、比特币区块和 Stacks 区块之间的这种关系在允许矿工快速生成 Stacks 区块的同时维持了比特币的终结性。比特币终结性之所以得以实现,是因为在每个比特币区块 N + 1 时,任期开始时的 Stacks 链状态都会被写入比特币。即使在未来所有前任堆栈者的签名密钥都被泄露,他们也无法在不将比特币历史重写回任期 N + 1 的情况下重写任期 N 的 Stacks 历史。
因此,Stacks 交易可以被认为在其所属任期结束或比特币区块 N + 1 之后具有比特币终结性。例如,如果我发起一笔被 Stacks 矿工确认的 Stacks 交易,则在该矿工任期结束(当前比特币区块结束)时,该交易将作为 Stacks 链状态的一部分被写入比特币,所有未来的矿工都被要求在该链尖上构建,从而使得逆转该交易与逆转对应的比特币交易一样困难。
要点:在每个比特币区块 N + 1 时,任期 N 开始时的 Stacks 链状态会被锚定到比特币。这使得逆转任期 N 的 Stacks 历史与将比特币历史重写回 N + 1 一样困难。
中本聪交易和比特币重组(Reorgs)
如果中本聪交易遵循比特币终结性,那么如果比特币分叉会发生什么?
为了解答这个问题,我们需要区分两类 Stacks 交易:依赖比特币的交易和内部交易。
依赖比特币的 交易是读取比特币状态的交易。如果比特币发生分叉,这些交易会发生变化。对于这些交易,你不能做得比遵循比特币终结性更好。例如,如果你将 BTC 从 L1 转移到 L2,你必须等待比特币终结性后才能使用你的 L2 BTC(如果 L1 交易因分叉而变为未确认,你就没有任何 L2 BTC)。
内部 交易不依赖比特币状态,因此如果比特币分叉不会改变。这些交易可以有更快的确认,因为即使比特币分叉,签名者也可以确保它们以相同的顺序被重新处理。
关键要点是:
在 Nakamoto Stacks 下,交易不会因为比特币分叉而产生有影响的重组。不仅重组相对少见,而且因比特币分叉而在 Stacks 上被重组的交易其行为与被重组的比特币交易一致。通过未来的一些分析,纯粹在 L2 链上的交易有一天可能完全不受影响。
阅读更多关于比特币重组行为的内容
如果你有兴趣了解更多关于这如何运作的信息,请参见 比特币重组(Bitcoin Reorgs) 文档页面。
最后更新于
这有帮助吗?