launchkit

您已加入 🚀

你的区块链交易真的完成了吗?揭秘最终性的真相
Web3 词汇
你的区块链交易真的完成了吗?揭秘最终性的真相
了解区块链交易何时变得不可逆转——从比特币的概率性最终性到以太坊的经济最终性。学习为何确认时间差异巨大以及最终性攻击对区块链安全性的启示。

你用加密货币买了一杯咖啡。付款显示“已确认”。咖啡师递给你咖啡。你高兴地走开。

然后区块链发生重组,你的交易消失了,咖啡店白送了你一杯咖啡。

这不是理论,这就是为什么最终性很重要。区块链交易什么时候才算真的、真正的、不可撤销地完成?答案比你想象的要复杂。

当历史不再可以被重写

最终性是保证一笔交易不可逆转且不能被撤销。一个交易达到最终性后,它是永久性的——与计算技术的任何事情一样永久。

区块链实现最终性的方法本质上不同。有些提供概率性最终性——等待时间越长,你就越有信心,但永远没有绝对确定性。另一些则提供确定性最终性——某个时间点后,最终性是绝对的。要逆转交易就必须破坏整个链。

这个区别非常重要。买咖啡?概率性最终性没问题。处理1亿美元的交易?你可能需要确定性最终性。

比特币:概率性最终性

当你发送比特币交易时,它进入了内存池——一个未确认交易的等待区。然后矿工将你的交易包含在一个区块中。状态:1次确认。6次确认后——大约60分钟——你的交易被视为最终完成。

为什么是6次确认?因为链重组,或称重组。两个矿工几乎同时发现有效区块。网络暂时有两个竞争版本。最终,一个链变得更长并胜出。失败链上的交易被重组。

如果你的交易在失败链上,它就消失了。你交易被埋藏得越深,重组触及它就越难。在6个区块之后,一次重组需要攻击者拥有超越网络其余部分的算力。技术上可能,但概率基本为零。

这就是概率性最终性。你从未有100%的数学确定性,但统计上的确定性随着每个区块成倍增加。

以太坊:经济最终性

以太坊在2022年9月通过合并切换到权益证明,根本改变了最终性。以太坊现在使用Casper FFG——友好最终性工具,提供更强的保证。

区块被组织为32个区块的纪元,大约6.4分钟。验证者投票决定哪些区块应该被最终确定。一个纪元被最终确定后,那些区块无法被撤销,除非销毁至少三分之一的全部质押ETH——目前价值超过400亿美元。

以太坊最终性的时间轴:交易进入区块大约需要12到15秒。实用的安全性在2到3次确认后,大约30到45秒,意味着重组风险非常低。真正的最终性需要2个纪元,或大约13分钟。

大多数情况下,等待2到3个区块就足够了。对于高价值交易,等待真正的最终性。

聪明的部分?以太坊现在有混合最终性。最初几个区块是概率性的。但13分钟后,变为经济最终。重组已最终完成的区块会让攻击者损失数百亿美元的质押。

Solana:带星号的快速最终性

Solana以速度著称。交易在几秒钟内完成最终性。Solana提供三个确认级别:处理大约400毫秒,确认1到2秒,和最终性12到13秒。

但有个陷阱:Solana的网络中断和重组历史。即使在这些事件中,最终完成的交易也偶尔被回滚或需要人工干预。

教训?最终性仅与提供它的网络一样强。在正常条件下,Solana的最终性很快,但在压力下已被证明是脆弱的。

概率性与确定性最终性

概率性最终性——比特币、早期以太坊、大多数工作量证明链——意味着最终性永远不是绝对的,只是越来越可能。随时间推移攻击变得指数级困难但理论上始终可行。在无需协调的完全去中心化系统中运行,但速度慢且从未100%确定。

确定性或经济最终性——以太坊权益证明、Cosmos、Algorand——意味着一旦确定,交易在数学上或经济上不可逆转。最终性在特定点发生。要重新确定需要破坏加密假设或销毁大规模经济价值。速度更快,具有明确最终性点,但需要验证者协调并依赖它们的行为。

大多数现代权益证明链使用确定性最终性,因为它更快且更适合DeFi等需要确定性的应用。

最终性攻击

理解最终性揭示了一整类攻击。

在工作量证明链上的51%攻击中,如果攻击者控制了51%的算力,他们可以私下开采区块,最终超过公共链并重复消费已确认交易。这种情况没有发生在比特币上——成本太高——但Ethereum Classic在2020年多次遭到51%攻击。

在权益证明系统中,最终性逆转需要毁灭经济价值。在以太坊上,你需要控制三分之一或以上的质押ETH——超过400亿美元——并看着你的全部质押被削减。理论上可能但在经济上不理智。

时间劫持攻击很有趣。如果利润超过成本,矿工或验证者可以重组链以重新捕获MEV。如果逆转最终性成本10亿美元但可以偷取20亿美元,那它在经济上是合理的。

Layer 2 最终性

乐观汇总如Optimism和Arbitrum在Layer 2即时执行交易,但真正的最终性需要在以太坊Layer 1上发布并等待7天挑战期。在Layer 2上即时,在Layer 1上需一周等待。ZK-rollups使用零知识证明——在Layer 1上验证后,最终性立即完成。zkSync和Starknet提供小时级而非天级的最终性。

实际最终性需求

咖啡购买:1到2次确认。风险低。

交易所入金:根据链需要6到50次确认。交易所需要高度的信心以防止重复消费攻击。

大型场外交易:等待确定性最终性。如果你正在进行1000万美元的交易,你需要绝对的确定性。

DeFi清算:需要快速、可靠的最终性。如果最终性缓慢或不确定,清算机制会中断。

跨链桥:需要两端强大的最终性。桥攻击通常涉及最终性操纵。

风险越高,所需最终性保证越强。

任何事情都有最终性吗?

即使是确定性最终性也不是真的绝对。

如果以太坊的社群共识决定需要逆转一个已最终确定的交易——像2016年的DAO攻击,他们可能会硬分叉链。没有加密或经济保证可以保护抗拒协调的社群共识。

这确实发生过。2016年Ethereum DAO分叉,社群逆转了DAO攻击,创造了以太坊和Ethereum Classic。2010年比特币值溢出事件涉及一个创建1840亿BTC的漏洞。社群同意回滚链。

所以最终性实际上分为三层。技术最终性:加密或经济上无法逆转。社群最终性:社群共识不接受逆转。实用最终性:逆转会如此破坏性,以致没人尝试。

大多数情况下,第1层就足够了。但在极端情况下,第2层和第3层很重要。

如何看待最终性

如果你在发送或接收加密货币:金额小?1到2次确认。金额大?等待推荐最终性——比特币6个区块,以太坊13分钟。

如果你在构建应用程序:了解你所用区块链的最终性模型。设计以应对最坏情况——重组会且将会发生。对于跨链应用程序,了解两侧的最终性。

如果你在评估区块链:快速最终性很不错,但可靠吗?查看链的历史。有最终性问题吗?有中断或重组吗?了解速度与安全之间的权衡。

最终性是那种事情,通常没什么——直到真的、真的有问题。大多数时候,交易运作良好。但当最终性崩溃时,数百万或数十亿就会消失。

永远没有完成的交易

最终性是区块链版本的量子力学中的观察者效应。直到足够多的观察者——矿工,验证者——以足够的确定性承诺一个状态,状态仍然不确定。

比特币通过工作量证明找到了概率性最终性。以太坊通过经济最终性改进了它。较新的链在尝试即时最终性。

但总有一个权衡。快速最终性通常意味着更多的中心化或更弱的保证。慢速最终性意味着更好的安全性但更糟的用户体验。

完美的最终性机制——即时、绝对、去中心化且安全——可能不存在。我们只是在选择我们能接受的权衡。

所以下次你发送交易并显示确认时,问问自己:真的完成了吗?还是历史仍在书写?


注意​​: 不同区块链的最终性机制差异很大。始终核实你所用链的具体要求。本文仅供教育目的。

参考资料

  1. Satoshi Nakamoto: Bitcoin Whitepaper
  2. Ethereum: The Merge and PoS Finality
  3. Casper FFG: Friendly Finality Gadget
  4. Solana: Transaction Confirmation
  5. Ethereum Classic 51% Attacks
  6. The DAO Hack and Fork
  7. Bitcoin Value Overflow Incident
  8. Flashbots: The Cost of Resilience
  9. Optimism Documentation
  10. Ethereum Wiki: Long-Range Attacks

相关术语