比特币定局性(最终性)

100% 比特币终结性(finality)的概念对于 Stacks 的设计至关重要。这正是将 Stacks 转变为真正的比特币 L2,并使其能够利用比特币固有的全部安全性的原因。

终结性指的是交易变得不可逆的那个点。一旦区块链达到终结性,在没有采取通常在计算和经济上都不可行的非常规手段的情况下,几乎不可能更改分类账的历史。

当我们说 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 链状态的一部分写入比特币,所有未来矿工都必须基于该链尖构建,使得撤销该交易的难度与撤销相应比特币交易的难度相当。

circle-info

要点:在每个比特币区块 N + 1 时,任期 N 开始时的 Stacks 链状态都会锚定到比特币。这使得撤销任期 N 的 Stacks 历史与将比特币历史重写回 N + 1 一样困难。

中本聪交易与比特币重组

如果中本聪交易遵循比特币终结性,若比特币发生分叉会怎样?

为了解答这个问题,我们需要区分两类 Stacks 交易:依赖比特币的交易和内部交易。

circle-info
  • 依赖比特币的 交易是指读取比特币状态的交易。如果比特币发生分叉,这些交易会改变。对于这些交易,你无法做到比遵循比特币终结性更好的处理。例如,如果你将 BTC 从 L1 转移到 L2,你必须等待比特币终结性之后才能使用你的 L2 BTC(如果 L1 交易因分叉变得未被确认,你在 L2 上实际上并没有任何 BTC)。

  • 内部 交易不依赖于比特币状态,因此即使比特币发生分叉也不会改变。这类交易可以获得更快的确认,因为即便比特币分叉,签名者也可以确保它们以相同的顺序被重新处理。

关键结论如下:

在中本聪 Stacks 下,交易不会因比特币分叉而产生有影响的重组。不仅重组相对罕见,而且因比特币分叉而在 Stacks 上被重组的交易的表现与被重组的比特币交易相同。经过未来进一步分析,纯粹在 L2 链上的交易有一天可能完全不受影响。

chevron-right阅读有关比特币重组行为的更多内容hashtag

如果您有兴趣了解更多此类工作原理,请参见 比特币重组 文档页面。

最后更新于

这有帮助吗?