本文探讨了区块链安全中的核心问题,即对手可以控制的验证者百分比,而区块链仍然安全且保持活跃。研究这些百分比的答案取决于客户模型,并在该模型上标定了共识协议的安全性和活跃性韧性。文章对状态机复制(SMR)共识协议进行了详细介绍,并分析了不同模型下的韧性可能性。
区块链安全的一个核心问题是对手可以控制多少百分比的验证者,同时区块链仍然保持安全和活跃。是 50%?33%?还是正如Vitalik Buterin所述,99%?答案关系重大。如果存在一种方法可以在对手几乎控制区块链安全关键资源的情况下实现弹性,为什么几乎所有部署的区块链都满足于较低的百分比?
答案取决于客户端的建模。客户端是昏昏欲睡还是始终在线的?它们是沉默不语的还是可以沟通的?验证者也可以昏昏欲睡吗?网络是同步的还是部分同步的?在一篇新的论文中,我们(与Common Prefix的Dionysis Zindros,斯坦福大学和BabylonChain的David Tse合作)系统化了共识模型,涵盖这四个维度。系统性地研究客户端的特性使我们能够紧密刻画对应每个十六种模型的可达成的安全性和活跃性的弹性以及匹配的可能性和不可能性。我们能够统一民间传说和早期结果,并用新的协议和不可能性定理填补文献中留下的空白。
我们的一个关键发现是,当区块链系统中的客户端能够可靠地通信(尤其是如果客户端能将收到的消息转发给彼此——这在使用 gossip 风格的点对点网络的许多区块链中是可能的)时,即使对手控制了区块链的所有安全关键资源,系统仍然可以保持安全。
状态机复制(SMR)共识协议是区块链系统的基础。这些协议提供了一种机制,使区块链的各方能够就执行传入交易请求的顺序达成共识。想象一下,这就像每个参与方在每个时刻输出一系列它认为是_确认_的交易,然后按照该顺序执行这些交易。通过以相同的顺序执行交易,每个参与方实际上运行着区块链执行引擎的状态机副本。SMR共识协议是安全的,如果它提供两个属性:安全性,意味着交易在诚实参与方和时间上按照相同的顺序确认(即,一个参与方的确认交易序列是任何其他参与方的前缀,反之亦然);以及活跃性,意味着诚实的交易请求最终会包含在每个参与方的确认交易顺序中。
区块链中使用的SMR共识协议必须具备拜占庭容错性(BFT),即即使一部分参与方表现出对抗性,它们也应提供每种安全属性。对处于安全性和活跃性可保证的_验证者_的对抗者比例——无论是33%,50%,还是Vitalik的99%——分别称为协议的_安全弹性_和活跃弹性。
问题是:任何区块链协议能够期望达到的最佳安全/活跃弹性是多少?是33%,50%还是99%?几十年前,研究人员展示 了答案取决于连接区块链验证者的通信网络的可靠性:如果网络保证在短时间内将消息传递到诚实的验证者(我们称之为_同步_设置),那么能够实现的弹性可能更高,而如果网络可能会遭受如网络分区之类的中断,使得网络延迟变得极大(即_部分同步_设置),那么建立的弹性将受到限制。这解释了一些难题——即,一些协议之间33%和50%的弹性的差异。
但答案也在于_客户端_建模的细节。客户端建模假设决定了99%弹性的可达成程度。
但是,客户端到底是什么?区块链不仅包括验证者——参与共识协议的活跃参与者,例如权益证明区块链中的利益相关者。还有客户端。虽然它们不会积极参与共识,但它们代表了系统的用户,例如,可能运行钱包软件,监控链以获取支付,并响应发货。那些客户的特性非常重要:这些客户是昏昏欲睡——偶尔长时间不关注链,还是始终在线的?他们是沉默的,还是可以与其他客户端沟通?谈到昏睡:验证者也可以昏昏欲睡吗?这些问题的回答决定了99%弹性是否可以实现、以及如何实现。
在我们的新论文中,我们从四个维度系统化了BFT SMR共识模型:昏昏欲睡/始终在线的客户端,沉默/沟通的客户端,昏昏欲睡/始终在线的验证者,以及网络同步/部分同步。然后,我们紧密刻画了可实现的安全性和活跃性弹性,并为这16个模型的每一对搭配提供了匹配的可能性结果和不可能性结果。这意味着,对于每对安全/活跃弹性,我们要么展示一个能够实现它的协议,要么数学证明不存在能实现它的协议。下图总结了结果(参见论文中的图1,以了解这些图中哪个区域是新的或在早期工作中发现的)。
具体而言,图中展示了针对所考虑的每个模型能够或不能够实现的安全/活跃弹性对。活跃弹性位于水平轴,安全弹性位于垂直轴。蓝色阴影区域是可以实现的弹性对,红色阴影区域则是无法实现的。早期的工作集中在第一和最后一行(昏昏欲睡的沉默客户和始终在线的沟通客户),以及左右两列(经典的同步和部分同步网络,这两者都具有始终在线的验证者)。例如,经典的50%和33%结果分别在子图(a)和(c)中展示,而Vitalik Buterin的99%结果出现在子图(j)中。我们的贡献集中在第二和第三行(始终在线的沉默客户和昏昏欲睡的沟通客户)以及中间列(昏昏欲睡的验证者)。(在与昏昏欲睡的验证者相对应的四种剩余情境中,由于可用性-最终性困境,在这些情况下无法实现任何弹性,因此相应的图将全部为红色,并在图中省略。)
结论是什么?当区块链系统中的客户端能够进行通信时,这是使用gossip风格的点对点网络的许多区块链的情况,那么在某些情况下,安全/活跃弹性可以超过50%——例如,在子图(g)中,具有同步、始终在线验证者和昏昏欲睡但能够沟通的客户端,其中一个弹性(安全或活跃)可以增加到99%,而保持50%另一个弹性(活跃或安全)。这是一个示例,说明如何通过更仔细的分析建立在民间传说上,并结合50%和99%。
如果你想了解更多,请查看IACR ePrint上的论文。
Joachim Neu 是 a16z Crypto Research的博士后研究员。此前,他在斯坦福大学获得博士学位,导师是David Tse。他目前的研究重点是区块链时代的共识和分散系统的安全性。他的广泛兴趣包括分布式计算与系统、应用密码学以及网络与通信。
Srivatsan Sridhar 是斯坦福大学的博士生,导师是David Tse,同时也是BabylonChain的高级研究员。他还曾在Mysten Labs、Protocol Labs和Subspace Labs实习过。
Ertem Nusret Tas 是斯坦福大学电气工程的博士生,指导教授是David Tse。他还曾在Celestia、BabylonChain和a16z加密研究中实习过。
内容仅显示截至所指日期。材料中表达的任何预测、估计、预测、目标、前景和/或观点均可能会有所变化,恕不另行通知,并且可能与他人表达的观点不同。有关额外重要信息,请参见 https://a16z.com/disclosures._
- 原文链接: a16zcrypto.com/posts/art...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!