分散环境中当前共识构建协议概述

本文是对在分散环境中达成共识的关键方法的简要回顾。 该材料将使您了解解决所考虑的协议的任务,其应用范围,设计和使用功能,还将评估在分散的会计系统中其开发和实施的前景。

请注意,在分散式网络中,采用了冗余原理,该原理基于节点可以完成相同任务的事实。 对于集中式网络,这自然效率低下;对于分散式网络,这是先决条件。 让我们继续基本要求。

共识协议要求


协议应确保在相当恶劣的条件下用户的可靠操作,并同时满足最低要求。 主要列出如下。

缺乏中央信任党 。 网络由对等体组成。 如果攻击者或第三方尝试禁用一定数量的节点,则网络将继续正常工作,直到诚实的参与者控制了绝大多数网络节点为止。

诚实的成员不知道哪些站点由网络犯罪分子控制 。 假定其他节点可以在任意时间点发生故障或任意运行,包括由攻击者协调以对网络进行攻击。 同样,诚实的参与者不知道哪个节点是诚实的,哪个节点是坏的或不可靠的。

假定网络是已知不可靠的 。 某些消息可能会严重延迟地传递,而另一些消息可能会在网络上丢失并且可能根本无法传递。 在这种情况下,去中心化共识应继续正常运行:所有诚实节点应进入已确认交易数据库的相同状态。

协议应该是完全正式的 。 无需其他人员参与,也不需要其他数据。 所有诚实节点都必须完全遵循计算机运行的算法,采用相同的解决方案。

另外, 在某些假设下,协议保证正确的操作 。 诚实的节点应构成所有参与者的大部分:超过总数的½或1/3。 但是,决策时间不受限制。 该限制可能与做出决定的步骤数有关,但与时间无关。

共识协议领域


数字货币


首先,这适用于加密货币:比特币使用Nakamoto算法,以太坊使用GHOST的简化版本,比特股实现Delegated PoS,等等。

应该注意的是,支持某种数字货币的社区并不总是庞大且分散的。 还有许多其他集中式的数字货币。 但是,这并不意味着不需要共识机制。 例如,Ripple在集中式环境中使用BFT协议。

高度可靠和关键的系统


共识协议用于高度可靠的计算系统。 它们可以在构建集群时用于访问分布式数据库,并且还必须在关键技术系统中使用:它们可以是飞机设备控制系统,核反应堆控制系统以及空间技术。

2018年2月6日,猎鹰重型飞机发射升空。 看着他并阅读技术评论很有趣。 但是,了解团队使用哪种共识算法也同样有趣。 工程师被迫使用简单的电子产品,这些电子产品在普通商店出售,并且在困难的空间条件下不能非常可靠地工作。 因此,他们在工作中使用多个冗余,因此在这种情况下必须达成共识。

加密货币


加密货币在对等网络中工作。 在这种情况下,消息或事务在网络参与者之间的任意时间点传输。 假设网络上有位于美国的成员和位于澳大利亚的成员。 来自美国的付款将比来自澳大利亚的付款更早地被美国参与者看到。 这是由于按照计算机标准,从一个大陆到另一个大陆传递消息的严重延迟。 对于澳大利亚人而言,情况将类似,因为他们将比从美国更早地看到来自澳大利亚的付款。

上述情况意味着不同的网络参与者将在某一时刻看到他们将看到具有事务的数据库的不同最终状态。 由于交易是在不同时间从用户到验证者的,因此需要一种协议,该协议将允许每个节点(无论其位于何处)以相同顺序接收所有交易。

基本上,两种方法用于加密货币会计系统的操作:最常见的PoW和最近一直在积极开发的PoS。

在PoW中,需要完成大量工作,现在需要查找哈希函数的原型。 实际上,为了确保安全性,人为地降低了网络速度。 要执行恶意操作,攻击者将必须执行必要的工作量。 这需要大量的能量并且使得实施攻击不是很有效。 这种方法可确保网络可靠性。 但是,执行这样的资源需求任务的需求限制了在此协议上运行的网络的带宽。 但是科学家除了搜索散列函数的逆像之外,还继续致力于PoW方法,并提出替代方案以及其他资源密集型任务。 最近,提出了一种基于时空证明的算法。

PoS允许您提供更高的网络带宽,并且不需要像PoW这样的能源成本。 但是,PoS需要在加密货币的开发和实施中进行更认真的分析。

在基于PoS的计费系统中,假定拥有大量代币的用户攻击无利可图。 如果企业家在基于PoW系统的会计系统中将钱投资于设备并支付电费,然后成功攻击该系统,那么他将失去对采矿的投资。 在PoS中,采用了另一种方法:如果假设攻击者投资了他感兴趣的特定硬币,那么在对系统的成功攻击中,他会损失投资,因为硬币会贬值。 因此,最有利可图的策略被认为是对协议的诚实遵守。

简短词汇


安全性 -会计系统维护功能基本原理的能力以及在任何恶意影响下保持诚实参与者的利益的能力。
最终性 -表示决定或确认数据不可撤销的属性。
活动性是一项属性,可确保如果所有诚实成员都想向公共数据库添加条目,则将其添加到该数据库中。
持久性 -会计系统即使在其所有验证程序都失败之后仍能够维护数据库最终状态不变性的能力。
许可 -表示限制,即需要获得许可才能参与特定过程。
无权限 -表示可以自由参与特定过程。

衔尾蛇共识协议


Ouroboros是基于PoS的协议,可在Cardano数字货币交易验证程序之间达成共识。 此外,该算法本身是所有PoS替代方案中第一个证明稳定的算法。

首先,在假定硬币的现有分配不变的情况下,考虑一种基于静态股权的更简单的选择。
图片
存在一些创始块,用户形成了新交易,但它们不会显着影响分布。

Genesis块包含具有一些随机值的数据,借助该数据可以选择验证器。 它们使您可以在某个时间点释放该块。 收到此权限的验证者将收集交易,从另一个验证者接收交易,检查其正确性并将该块释放到网络中。 如果他看到几个链条,那么他会选择其中最长的一条并将其附加在上面。

在与静态股份相关的情况下,我们可以在一定时期内使用此方法,但是随后可以改变不同用户之间的股份分配(权益分配)。 换句话说,部分资金从一个用户转到另一个用户,您需要调整获得选择区块权限的可能性。

注意 :静态赌注意味着在一段时间内验证者赌注被认为是不变的。 验证人此时可以参与决策并付款,但是直到下一个时间段,他所持硬币的数量以及投票的权重将保持不变。

在动态放样的情况下,时间分为多个时段,而时段则分为多个时代。 一个时代的持续时间大约等于一天的持续时间。 该比率由以下事实决定:在这段时间内,硬币的分配不会发生明显变化。

在时代的末期,记录了每个用户的硬币的当前分布。 此外,将生成一个新的随机性值,以确保在下一个时代,确实有资格生成区块的用户将根据他们拥有的硬币数量被随机选择。

类似地,当特定用户可以对各种块选项,各种随机性选项进行分类以形成链,从而使自己的利润最大化时,可以防御所谓的“磨擦”攻击。 基于第一代PoS协议(例如Peercoin和NXT)的加密货币可能容易受到此类攻击。

该算法的创建者解决了上述问题。 验证者之间会启动一种特殊的协议,称为MPC(多方计算),并且可以一起生成随机性。 基于长期建立的方法,该协议也被证明是健壮的。

只要大多数诚实的验证者都在系统中,我们的Ouroboros协议就可以提供持久性。 如果从事区块问题的诚实参与者控制了系统中超过50%的硬币,则该协议可以被认为是受保护的。

已经开发出诚实行为的激励机制。 利用博弈论,证明了验证器遵循协议规则将获得最大的利益。 任何参与攻击的行为不仅不会增加参与者的利润,而且在某些情况下会减少利润。 因此,对于验证者来说,最有利可图的策略是诚实地遵循协议的规则。

计费系统的容量仅受网络同步期间的延迟限制。 与工作量证明相比,此协议可提供较高的能源效率,因为这里不需要采矿场。 现在,对于交易的收集和块的释放,普通的个人计算机就足够了。 将来,即使在普通智能手机上也可以进行这些计算。

Ouroboros协议的局限性包括该协议的第一个版本是同步的。 这意味着参与者之间的消息必须在有限的时间内传递。 如果网络上的延迟时间长于规则中规定的时间,则可能会降低安全性。 尽管如此,已经计划使用该协议的下一个版本-Ouroboros Praos。 其中,即使网络延迟增加,也可以确保完全的安全性。

比特币中的PoW问题


考虑作为比特币基础的共识。 诚实用户生成的部分块仍被丢弃-这些是所谓的孤立块。 这些块是与主链并行生成的,但是大多数网络都决定不应继续该链,并且将这些块丢弃。

当此类块很少时,无需担心。 但是,如果有很多,则网络没有时间进行同步,事实证明诚实的网络用户的计算能力的一部分被浪费了。 这意味着现在攻击者不需要为网络的51%的计算能力而战,而是为更低的百分比而战。 如果该值为20%,则具有20%的计算能力并且在传递网络消息方面存在较大延迟的攻击者可以实施双花攻击。

因此,在比特币中,在开采的区块之间设置一个持续10分钟的时间间隔。 由于这一点,网络设法进行了清晰的同步,并减少了出现此类块的可能性。 如果需要通过增加块形成的频率来增加网络吞吐量,则需要其他解决方案。

幽灵


第一个这样的解决方案是GWOST PoW协议。 它的简化版本用于以太坊平台。
图片
在这种情况下,攻击者可以拉他的链(图中红色标记)并使其最长,但不会赢。 诚实的用户将遵循他们之前建立的链条。

在这种情况下,诚实的用户可能有两个链。 最长(1B-2D-3F-4C-5B),但比攻击者链短。 GHOST的特殊之处在于该算法不关注最长的链,而是关注当前链所形成的树中的块数。 它不仅考虑了链条本身的长度,而且考虑了不同高度的块。 因此,结果不是线性链,而是一棵树。 考虑其中的块数。

如果查看链条1B-2C-3D-4B,则随附的块3E和3C可见。 根据块的数量和所花费的工作,此链具有最大的复杂性,并将被视为主要链。 尽管攻击者尝试攻击网络,但诚实的用户仍将继续将其视为主要攻击者。 在传统的中本聪共识中,这样的攻击本来是成功的,但它对GHOST没有构成威胁。

但是,GHOST的缺点是仍然丢失了部分块。 在这种情况下,2D-3F-4C-5B链仍将被丢弃。 因此,丢弃诚实用户块的问题仍然存在。

扬声器和幻像


为了增加块形成的频率并解决丢弃诚实用户的问题,提出了另外两种PoW协议:SPECTER和PHANTOM。
图片
它们甚至不再使用树结构,而是所谓的有向无环图(DAG)。 在这种情况下,验证器至少在其当前所处的网络状态下,在其块的标头中包括尚未由其他验证器引用的块的指针,然后进一步发送该块。

因此,获得一种结构,其中包括了验证者在当前时刻看到的所有块。 在这里,诚实用户的挖掘能力根本不会丧失。 此外,它提供了高网络带宽和高安全性。 这种方法的优点是系统是真正分散的。

让我们比较一下比特币网络和使用SPECTER和PHANTOM协议的网络的功能。 如果我们谈论比特币网络的当前状况,那么值得高度重视采矿池。 在现代比特币中,每天释放144个块。 如果将天数(分钟)除以10,就可以得到此数字。验证者很有可能购买了设备,长时间付费,但无法生成设备,在此期间设备已过时并使用了更多设备没道理 为了避免这种情况,将企业家验证器合并到采矿池中。 大多数采矿池都有一个主管(公司/组织),该主管倾向于使用现代比特币来集中验证新交易的过程。

对于SPECTER和PHANTOM,根本不需要采矿池。 如果我们将其与现代比特币网络相提并论,那么使用SPECTER和PHANTOM协议的网络用户将有机会每天释放一个区块。 因此,对矿池的需求通常消失了,我们来到了一个真正的分散网络。

因此,SPECTER和PHANTOM协议提供了高度的分散性和较高的网络带宽,但是您需要存储大量信息。

BFT协议


使用的下一类协议是BFT协议(拜占庭式容错)。
图片
, 80- XX . , - . , . , . , , , , . - , . . , .

对于BFT协议,假定对等交互。假设有一定数量的攻击者可以采取协调行动。他们是诚实成员不知道的。网络故障和延迟是可能的,也就是说,某些消息可能会消失,而某些消息可能会延迟很长时间到达。但是,对所有诚实验证者必须共同做出决定的步骤数量有所限制。在示例任务中,有两个选项:进攻或撤退。

假定诚实节点的参与人数超过1/3。保证BFT协议会成为将来无法撤消的通用解决方案。对于非BFT协议,决策被取消的概率呈指数下降,但不为零。

比特币和其他现代广泛使用的加密货币均基于非BFT协议。对于比特币,存在非零概率,这是可以忽略的,例如存在从前一个月,一年甚至从创世纪区块延伸的替代链。取消当前链的可能性呈指数下降,但它存在。在BFT协议的情况下,该决定不能撤消。

BFT协议的例子


实用的BFT


付诸实践的第一个协议称为实用BFT。它是在1999年提出的。它具有相当简单的操作。客户端访问由领导者选择的服务器。领导者将这些消息发送到其他服务器。此后,服务器相互告知某些消息已到达,需要将它们输入到联合数据库中。每个验证者都必须确认他已经从其他参与者中获得了确认。

当验证者从其他参与者中确认消息已包含在他们的数据库副本中时,它将被输入到该验证者的本地副本中。
图片
, , , , . , , , , . , , , . .

, , DoS- .

HoneyBadger BFT


HoneyBadger BFT . , , . . HoneyBadger : RBC (Reliable broadcast) BA (Byzantine Agreement).
图片
RBC- . , , ⅔ . BA- , .

. , , . . : - , . , , .

Algorand Hashgraph.

Algorand


Algorand 2017 . BFT-, , , . , .
图片
, , , ⅔ , ⅔ . , « » (DoS-). , , adaptive corruption.

假定攻击者可以选择一个任意的验证器,并声称正是他为自己的利益而努力。攻击者可以选择对他有用的那些节点(正确操作的条件是要有更多诚实的参与者⅔)。即使在这种情况下,该协议也可以提供持久性。

由于这是BFT协议,因此无论如何都提供安全性和持久性。其其他属性将取决于通过通信信道传输数据的延迟。

如果此协议在有问题的网络上运行,则存在与新交易可能未收到确认这一事实相关的活跃性威胁。如果网络上出现太多延迟,或者攻击者有机会抛弃为实现目标而需要抛弃的消息,那么这将不会影响旧的(已确认)交易。他无法取消他们。最重要的是,他将能够拒绝采用新交易。

哈希图


Hashgraph . , , , , .
图片
, : «», , , .

Hashgraph确保在有限数量的步骤(即协议操作回合)中,所有节点都成为一个解决方案。该协议工作迅速且可扩展。它比Algorand所需的流量更多,但同时非常有效。Hashgraph提供安全性和活动性,即添加新事务并提供单个解决方案。它甚至在完全异步的网络中也可以工作,这时消息可能会延迟很长时间甚至被丢弃。

另外,网络上没有领导者,这使攻击者可以禁用他感兴趣的那些节点,并可能使它们根据其意图工作。但是,在保留诚实用户的同时,该协议提供了高度的安全性。

BFT摘要


BFT-. . . , ⅔ . , Algorand Hashgraph, .

: permissioned . , . , . , .

permissionless , . . .

Distributed Lab , 罗马奥列尼科夫。

常见问题


-是否有可能在不久的将来引入全新的共识协议,并且有什么发展吗?

实际上,现在,共识协议的开发正在进行中。今天,我们讨论了其中的一些:BFT协议中的Algorand和Hashgraph,以及基于Ouroboros PoS共识的协议。在2018年初,引入了PHANTOM协议。这些是具有新原理的新协议。

-Ouroboros如何确保有权在特定时间间隔形成一个块的节点列表对于所有节点都相同?

这个问题与上面提到的打磨攻击有关。衔尾蛇提供了持久性和活跃性属性:如果交易在某个时间点到达并收到确认,则该交易将不再被取消或删除,因为替换此区块的可能性趋于零。换句话说,开发人员认为该事务不会从共享数据库中消失,因为任何人都可以使用它。

persistence . , , MPC . , . , MPC , , , . . - , , . . «» ( ), .

-您可以在哪本书中读到本章讨论的共识构建算法?

不幸的是,还没有这样的书。只有精选的科学论文和文章。您可以在PHANTOM,SPECTER和Ouroboros上看到文章。您可以看到可以按名称查找这些文章站点

-如果没有那么多的事务,为什么在PHANTOM和SPECTER中应该有这么多的块?大多数块将为空或包含很少的事务。

PHANTOM和SPECTER专注于缩放。对于比特币,当低佣金交易可能甚至几个月都无法在线确认时,情况屡屡出现。 PHANTOM和SPECTER保证所有交易都将包含在块中,并且网络带宽将增加。这些协议每秒可以提供数万笔交易,每笔交易都会收到确认。换句话说,它们可以在网络本身上提供非常低的交易成本。如果没有事务,那么您实际上可以发出空块。

-在BFT中如何选择领导者服务器以及由谁选择?

这取决于特定的协议。如果我们谈论的是PBFT,那么在这种情况下,特定用户将选择一个将负责其交易的服务器负责人。如果我们谈论的是Algorand或Hashgraph,那么根本就没有领导者。

-如果在PBFT中初始请求到达一个受到威胁的节点,将会发生什么?

在这种情况下,受损(或空闲)的节点可能不会对其进行处理。如果用户随机选择他要访问的节点,而我们拥有诚实节点的三分之二,那么在这种情况下,经过几次尝试,他的交易将获得确认。

-可以说Algorand就像DPoS(委托权益证明)一样吗?

不,这并不完全正确。委派的股权证明意味着用户必须选择验证者并委派其投票权。在这里,选择节点以真正随机地确认交易。如果您放眼未来,并考虑在Algorand上构建加密货币的选项,那么确实有必要开发委派选项,但是委派不需要为协议本身工作。

-哪些列出的协议尚未应用,但将来被认为很有希望?

SPECTER和PHANTOM是真正有前途的协议。SPECTER开发人员正在努力推出新的数字货币。

Source: https://habr.com/ru/post/zh-CN419185/


All Articles