比特币终结性

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