区块链共识中的三大加密对手

区块链

575人已加入

描述

想象我们生活在一个人人都诚实的世界。这难道不会达成共识的情况变得更容易吗?乌托邦离现实还很远,这就是为什么我们有计算机安全技术、加密货币原语以及最近的区块链协议。

人类本质上是复杂的,他们的行为也是如此。因此,处理许多交互的协议是一项相当具有挑战性的任务。每个人都受到一系列独特因素的刺激,因此对刺激的反应也不同。因此,找出适用于大多数人类的一套正确的方法,是设计一种算法以就共同世界观(即共识协议)达成一致意见的重要一步。

在协商共识协议中,任何超出节点预期行为且不遵守协议的行为都被认为是恶意的。大量恶意活动可能会破坏协议的基本假设,并阻止协议参与者达成一致意见。这导致共识或区块链协议在最好的情况下被迫停止(有时称为活性失败)。在最坏的情况下,恶意的参与者可能会对多个不一致的视图产生错误的协议,甚至会导致已经达成的协议(安全故障)的倒退。这种情况需要昂贵的外部干预来重新启动共识算法。因此,使用正确的假设集创建协议是至关重要的,以便避免昂贵的操作。

开发的第一套共识协议倾向于在简单的对抗性假设下运行。我们的目标只是通过假设一个没有恶意参与者的环境,让预先确定的节点集达成一致。这是一个微不足道的问题,一旦设计了这样的协议,下一步自然就是改进它们。不能处理任何类型的错误或恶意操作的协议在某些设置(如internet)中是不切实际的。这些协议要求提前知道所有参与的节点,并要求所有这些节点保持在线状态,同时始终诚实行事,以便协议正确终止。但这是不切实际的,因为即使一个节点因为不稳定的通信通道而离线,它也可能阻止共识。

无论是光缆还是互联网本身都无法提供足够可靠的通信渠道。在断电或网断开的情况下,系统将失效。

为了构建一个在不稳定环境中实际上更有利的系统,系统必须至少允许节点脱机。它不能假设所有节点都是完全诚实的。因此,通过创建被称为“对手”的恶意行为者,最早应该假定哪种类型的安全漏洞协议能够容忍。

对手的类型

对对手进行分类的第一种方法是基于对手所能采取的最有力的行动。这类最简单的对手只是会永久离线的节点。这种节点的协议偏离行为被称为崩溃故障。当互联网连接中出现任何形式的中断或终止时,节点就会脱机。期望全球多个节点在互联网上一直在线是不切实际的,因为任何断电都可能导致节点离线。如果互联网上的数据包被丢弃或延迟发送,节点也可能在几秒钟内失去同步。互联网本身还不够安全,只能以“尽我所能”的方式提供数据包。因此,期望所有的信息都能及时交换,所有节点都保持在线状态是不合理的。因此,容错协议在开发实际工作的共识算法方面发挥了重要作用。

下一个迭代的协议处理可能是窃听用户之间发送消息的对手。这些对手可能会通过阅读不打算与任何人分享的信息来侵犯通信各方的隐私。这些对手被称为被动对手。这种类型的对手的目标是在监听了多轮协议后冒充诚实的参与者。这些对手对那些本应传输机密信息的协议构成了威胁。这些敌人也是一种威胁,因为少数不诚实的人能够影响大多数诚实人所同意的价值,因为少数人可以模仿其他诚实的人。这些类型的对手在20世纪70年代和80年代被研究过。加密货币和其公钥基础设施是用于在被动对抗模型中保持隐私、数据完整性和安全性的技术。

很自然地,下一步是用协议来处理那些可以利用他们收集的信息来任意行动的对手。这可能包括发送错误或冲突的消息。这些对手被称为拜占庭或活跃的对手。拜占庭这个词来源于莱斯利·兰波特1982年写的一篇里程碑式的论文,叫做“拜占庭将军问题”。这篇论文描述了围绕一个城市的拜占庭军队面临的共识问题,他们试图就是否应该进攻或撤退达成一致。当他们试图达成协议时,他们面临着信息被删除、复制和修改的问题。不诚实的将军们的目的是为了确保军队在战争中败下阵来,他们使一部分进攻,另一部分撤退,或者干脆不采取行动。尽管存在所有这些挑战,但所有诚实将军的目标都是以一种共同的方式行事。

加密货币

攻击还是不攻击?

类似地,任何公共区块链共识协议都必须能够增长,并且在任意攻击的情况下保持一致。某些应用程序的用户可能不希望某些事务被记录在区块链上,也可能会积极采取恶意行动,并试图审查这些事务。这些例子包括前面运行的攻击、双重攻击和交易审查攻击,以防止支付渠道的结算。一旦有一个依赖于区块链的巨大金融生态系统存在,并且协议需要能够容忍这些攻击,才能使其在大范围内实际可用,那么也就是说这些攻击是可以预见的。因此,公共区块链共识协议必须是拜占庭容错协议。

然而,对手的力量不仅仅是对手所能采取的最激烈的行动。它还需要考虑对手的行动生效所需的时间,或者对手破坏不同参与者所需的时间。

另一种对对手进行分类的方法是,对手在决定了要腐败的对象之后,多久才能腐败另一个节点。如果对手可以瞬间腐蚀参与者,那么对手就被称为“强适应性”。在“静态”对抗性模型中,在协议执行开始之前,对手可以选择他们想要破坏的参与者。 在那之后,就不能做任何改变了。那些需要一段时间(比瞬时时间长,但比无限时间短)来破坏协议参与者的对手被称为“温和适应性”。对手破坏协议参与者所需的时间与选择验证器和委员会成员的过程有关。

对手的力量也与对手的计算和存储限制紧密相关。如果假设对手有一定数量的资源,那么我们可以假设一个计算安全的模型。大多数协议的共同假设是存在多项式有界的对手。这意味着一个对手不能在多项式数量的步骤/时间/空间中破坏协议的任何一个原语。这也意味着对手可以以很小的概率破坏协议的安全性。这通常就足够了,因为这意味着对手要花上50-60年的时间才能用这种级别的安全性来破坏原语。另一方面,如果对手被认为是非常丰富和强大的,协议必须在统计上是安全的。这意味着即使有无限的计算资源也需要花费10亿年时间,实践中使用的大多数加密原语都在计算上安全的。

经济对手

到目前为止,我们考虑了基于计算和存储考虑的假设。所有这些假设都聚焦于那些决定攻击系统的参与者。所有公开的区块链共识协议都是很复杂的,通常需要对付的对手比那些确定要攻击系统的对手多。从长远来看,对于公共区块链协议来说,与参与者如何应对激励措施相关的经济假设是一个重要方面。这些都是很重要的,因为它们决定了什么能激励一个人诚实行事,并从一开始就遵守协议。在任何系统中都有三种角色。

第一种是经济上的理性,第二种是利他的,第三种是非理性的恶意。设计的大多数区块链协议并没有使经济理性的参与者始终与遵循协议的动机保持一致,这导致了在协议级别上可能无法解释的几个攻击向量。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分