第一篇:亦来云共识

2019-11-06 17:43 

混合共识与区块的确定性

Elastos使用的混合共识机制本身就具有非常独特的优势,因为它增加了多层安全性。通过其混合共识算法,Elastos建立了一个弹性网络,而不会牺牲过程中的可扩展性。

背景与历史

在区块链行业中,项目的价值很大程度上取决于其区块链采用的共识机制。比特币是第一个区块链,它引入了革命性的工具来保护数据和交易,这就是工作量证明(PoW)共识机制。

在工作量证明(PoW)共识机制中,允许首先找到有效哈希的矿工向区块链添加新的交易块。这种挖矿过程非常费力。

在权益证明(PoS)共识机制中,该机制基于参与者对区块链Token的所有权,投币者拥有的Token越多,投币者就越有可能向区块链添加新的交易区块。这种挖矿过程的能源消耗较低,并且这种类型的系统适用于具有静态Token供应的平台。

在PoS的变体形式委托权益证明(DPoS)共识机制中,Token持有人可以使用其余额选择节点列表,以允许将新的交易块添加到区块链。Token持有人也可以对更改网络参数进行投票。虽然PoS可以比喻为赢得彩票,但DPoS可以使所有Token持有者在网络中拥有更大的影响力和所有权。工作量证明(PoW)可以比喻为真正的民主国家,权益证明(PoS)可以比喻为寡头,而委托权益证明(DPoS)可以比喻为民主共和国。

还有其他晦涩但有趣的共识机制仍在试验中,例如实用拜占庭容错(PBFT),有向无环图(DAG)和以太坊的新型混合PoW / PoS系统,称为Casper Friendly Finality Gadget(FFG)。

工作量证明(PoW)的工作原理

权益证明(PoS)的工作方式

委托权益证明(DPoS)的工作方式

Elastos混合共识

虽然各种区块链项目正在实施和尝试许多共识机制,但每种机制都有其自身的优缺点。没有“一个共识能解决所有问题”的方法,因为各个项目和行业都面临许多不同的问题,尽管一个解决方案可能对某些人有用,但对其他人却可能不起作用。Elastos在其主区块链上采用AuxPoW + DPoS的混合共识机制,其中每个区块由矿工打包,然后由DPoS超级节点签名,从而为区块创建了终结点,从而防止区块链分叉。在Elastos的混合共识机制的简单性之下,是一个高度复杂的多利益相关方解决方案,该解决方案提供了最大的安全性和最佳的网络分散性。

AuxPoW + DPoS如何在Elastos上一起工作

打包区块的矿工实际上是同时合并BTC和ELA的比特币矿工。这意味着Elastos能够从比特币网络借用大量的哈希算力来保护自己的币。同样值得注意的是,Elastos上的超级节点不像其他区块链项目的超级节点。在大多数采用DPoS共识的区块链平台上,超级节点都打包并签名。但是,在Elastos上,超级节点的工作是对块进行签名和验证。因此,DPoS超级节点可以共同选择拒绝合并矿工打包的恶意区块,还可以为已解决区块提供最终的验证印记,称为“最终确定”。

在Elastos上,每年的通胀约为1,320,000 ELA,加之总供应量。其中,将35%(约462,000 ELA)分配给PoW矿工,再将35%(约462,000 ELA)分配给DPoS超级节点,其余30%(约396,000 ELA)分配给Cyber Republic,由Cyber Republic Consensus(CRC)管理,以资助各种生态系统项目。Elastos的出块时间为2分钟,并且每回合之后都会分配奖励。在大约72分钟的过程中,每轮包含36个区块。因此,DPoS的奖励将以大约72分钟的间隔分配。

Elastos--块的终结性

PoW共识的主要问题(除了计算量大)还在于,当矿工社区分裂时,分叉的可能性很高。例如,比特币分叉成比特币和比特币现金。最近,比特币现金进一步分叉为比特币ABC和比特币SV。每当社区分裂并无法就在区块链上实施或消除哪些功能和升级达成共识时,就会发生这种情况。当双方都有足够的支持时,矿工就会分裂,导致区块链分裂成多个区块链。为了防止发生这种灾难性事件,Elastos采用了一种混合共识机制,即矿工社区必须始终遵循由民主投票决定的大多数社区成员的声音。不遵守这些规则的矿工被视为无效,在这种情况下,DPoS超级节点将不会对这些特定块进行签名。通过将打包块和签名块的功能分成两个不同的过程,Elastos创建了一种巧妙的方法来确保每个块的终结性。这样,Elastos可以防止在其区块链中发生任何形式的派生。当然,没有哪种共识机制是绝对安全的,但是Elastos所采用的混合共识机制无疑会增加安全性,从而进一步增强了网络。

此外,有12个CRC(Cyber Republic Consensus)超级节点始终处于活动状态,并且始终包含在参与共识机制的36个活动超级节点中。因此,在任何一次社区中,只有36个活动超级节点中的24个由超级节点选举产生。由于Elastos区块链的DPoS共识要求活动节点签名的1/3,因此一个块必须至少由25个超级节点签名。这为Elastos所采用的混合共识创造了另一层安全性。PoW节点不仅必须受到损害,DPoS超级节点也必须受到损害。由于它已经天文数字般昂贵,并且难以积聚超过50%的比特币算力,因此同样难以积聚超过50%的Elastos算力。此外,在混合共识中添加DPoS层意味着即使PoW节点受到某种程度的损害,也将由DPoS超级节点最终决定在哪些块中签名和忽略哪些块。因此,DPoS超级节点可以集体忽略发送到区块链P2P网络的恶意区块。另外,如果我们假设最坏的情况——所有合并的矿工和所有24个超级节点都受到破坏—恶意行为者可以做的最好的事情就是停止生产和标记区块。在这种情况下,恶意实体将受到限制,因为它将无法获取必要的25个签名来验证故障块。由12个CR委员会成员持有的私钥控制的12个CRC超级节点将始终诚实行事,绝不接受任何恶意阻止,因为这样做符合他们的最大利益。毕竟,每个理事会成员必须交纳5,000 ELA才能参加Cyber Republic选举,并且如果他或她的行为不符合集体社区声音的最大利益,则可以在任何时候被投票出去。

三层安全

最坏的情况是不能将区块添加到区块链中,因为区块无法获得25个签名,并且区块链停止。如果发生这样的事件并持续一个小时而没有将任何块添加到区块链中,则将投票淘汰这12个不工作的仲裁员,并由参与DPoS共识的下一批12个当选超级节点替换,从而解决此问题并确保始终有36个活动超节点。

Elastos区块链的DPoS共识与典型的DPoS共识机制的工作方式不同,社区在共识过程中扮演着重要角色。PoW挖矿是通过合并挖矿进行的,该过程利用比特币矿机将交易打包到一个区块中。然后,超节点通过对每个块进行签名来采取行动。社区可以向“Cyber Republic”提交不同的建议,并可以包括更改当前针对新侧链的共识机制,或者提议创建专用于特定应用的新侧链。该建议还可能包括要在主链代码上实施的体系结构更改。如果该提议被CR委员会接受,那么超级节点将升级以说明上述更改。不久之后,如果任何PoW矿工无法相应地升级其客户端,则矿工打包的块将不被超级节点接受。通过这种方式,大多数权力被赋予了CR社区,而不是矿工本身,这从一开始就防止了分叉发生。

Elastos生态系统中的社区力量

如何将每个区块添加到区块链?

比特币矿工使用特殊机器来开采比特币。他们还通过“联合挖矿”开采ELA。每个块均受PoW共识保护,然后将每个块广播到P2P网络。

仲裁者节点接收每个PoW挖出的块。如果仲裁员在值班(36名仲裁员中只有一名在值班),则它将为每个块发送建议给其余35名仲裁员,每个仲裁员都使用其私钥在该块上签名。仲裁器网络是连接所有36个仲裁器的另一个P2P网络。每个仲裁员检查交易,然后在每个块上签名。每个仲裁员签名的每个块也将广播给仲裁员网络中的所有仲裁员,以便对其进行验证和确认。

每个仲裁员还将每个签名的块广播到PoW矿工P2P网络中的所有节点。当PoW矿工节点发现该区块具有来自仲裁员的⅔签名时,它将已签名的区块放入区块链,并开始将下一组交易打包到一个新区块中。每个仲裁员将其签名的块广播到PoW P2P网络的原因是,它效率更高,并且可以防止如果仅值班的仲裁员广播该块可能会发生的某些问题。

问题以及Elastos如何解决它们

我们知道,每个仲裁员都将其签名的块广播到PoW P2P网络。让我们看一个例子,它不仅有效,而且更具弹性。让我们假设仲裁员在相同的高度和相同的视图编号处签署两个不同的块,并且两个块都广播到区块链P2P网络。这种情况会产生分叉,因为仲裁员不应在相同的高度和相同的视图号处对两个不同的块进行签名。这可能出于恶意目的,希望产生区块链及其所有侧链的分支。如果这样做的话,网络中的每个节点都可以检测到证据,并且有罪的仲裁员将被处以5,000 ELA的罚款,因为这是一个非常严重的问题。此外,新的仲裁员将更正所创建的临时派生。

首先,该恶意仲裁者将立即失去对其存入的超级节点之一的5,000 ELA的访问权限。最初存放超节点的5,000 ELA时,会将其转移到特殊地址。此特殊地址的私钥由仲裁员的所有者持有,但要从该特殊地址中检索这5,000 ELA,需要遵循一些规则。即使仲裁员具有与特殊地址相对应的私钥,如果认为它是恶意的,也无法检索到5,000 ELA。这可以比喻为烧掉5,000 ELA,因为没有人可以取回这些资金,因为它们不再可用。如果仲裁员没有做任何不好的事情并尝试退出超级节点选举,则将退还5,000 ELA。每个普通的PoW矿工都可以通过查看区块链上的每个区块提案来验证哪个仲裁员是恶意的。反过来,此机制也为超级节点提供了诚实运行的更多动力。

双重签名问题

当值班仲裁员出于恶毒目的而试图有选择地支持特定矿工生产的区块时,也可能会出现这种情况;它甚至可能尝试打包自己的块。如何防止这种行为?假设有两个仲裁器A1和A2和两个块B1和B2。假设值班仲裁员接收B1所花费的时间为t1,而对于B2所花费的时间为t2。我们还假设B1花费了更长的时间,所以t1> t2。最后,让我们说两次之间的间隔超过5秒。如果值班仲裁员(A1)尝试先发送针对B1的建议(即使它应该先发送给B2,因为它先发送),其他仲裁员也会知道这是非法的,因此他们将拒绝B1建议A1和网络会将视图从A1更改为A2。现在,A2被转换为值班仲裁员,因此它参与了按顺序发送针对B2和B1的冻结提议。如下所示,视图再次改变,并选择了新的值班仲裁员(A3),共识再次恢复正常。

仲裁员和非法块

我们简短地提到了在任何时候都有12个CRC超级节点,它们总是诚实地运行。我们假设其他24个中的任何一个或全部可能是恶意的。例如,当ELA从主链转移到侧链时,它被锁定在主链地址上,而在侧链地址上被解锁。由于侧链不一定与主链具有相同的共识,因此重要的是要防止用户通过侧链退出ELA。出于这个原因,我们绝对需要侧链的共识以尽可能地安全。如果我们知道12名CRC仲裁员始终诚实行事,即使所有24个当选的超级节点都是恶意的,并试图互相勾结,它不满足启动交易的要求(请记住,需要超过⅔个签名)。与所有24个超级节点以及CRC超级节点合谋是非常困难的,因为12个超级节点中的每个超级节点的私钥都由12个不同的理事会成员控制。

最后一点是,可能会出现最后一个问题。每个回合持续72分钟,因为这是选举仲裁员充当活动超级节点的时间段。72分钟后,重新计算投票数,并且如果新的超级节点集获得足够的票数来替换活动的超级节点,则它们可以加入活动池。假设一名仲裁员处于不活动状态,因此连续两天(大约40轮,1,440封禁令或48小时)未提交封禁建议。在这种情况下,该仲裁员将无法在7天之内参与超级节点共识,这也意味着它将不会获得任何奖励,无论其获得多少票。因此,将阻止不活动的仲裁员7天内的任何工作。可以识别此仲裁器,因为每个块都有映射到它的块建议,其中包含有关应该由谁创建该特定建议的信息。在这种情况下,特定的仲裁员不发送有关该块的提议,该任务将传递给下一个仲裁者,然后由后者发送该块的提议,依此类推。

发送提议的超时罚款阈值为5秒。每个建议都包含一个区块哈希和签名。如果原始仲裁员没有连续40轮发送建议,则第一项处罚是被残障7天,并从其股份中获得5,000 ELA减刑10%。如果在7天后,同一位仲裁员仍未再次提出连续40轮的建议,则适用同样的处罚,即再被禁用7天,并对其剩余的4,500个ELA处以10%的罚款。请注意,确切的数字将来可能会更改。如果仲裁员继续缺席,并且其剩余的ELA总数降至4,000以下,则它无法参与超节点共识,直到它再次存入1,000 ELA,以再次达到5,000 ELA阈值。请注意,被禁止7天的不活动仲裁者在其禁令解除后需要等待至少720个块(大约再增加24小时),然后应向区块链发送特殊交易,以通知网络其已准备就绪再次参加共识。当超级节点决定再次激活时,该超级节点在禁令期内累积的选票仍然保留。

关于无效仲裁员的最后一件事要提到的是,有时DPoS共识不会收到至少25个签名(⅔表决)。当只有24个超级节点签署特定块时,会发生这种情况。在这种情况下,如果剩余的12个超级节点中的任何一个都没有签署该特定块一个小时以上,则他们将被带走100个ELA,作为不签署一个小时以上块的惩罚。然后这些节点将立即变为非活动状态。请注意,不活动的仲裁程序在其不活动后至少需要等待720个块(大约24小时),然后应向区块链发送特殊交易,以通知网络其活动并准备再次参加共识。当它决定再次处于活动状态时,此超节点在此期间累积的选票仍然保留。

不活跃的仲裁员

尚未确定如何处理仲裁员恶意活动无法访问的ELA。当前有两种选择可以采用,但尚未决定,并且将来可能会更改:

1.烧毁因惩罚而无法使用的ELA。

2.将因惩罚而无法访问的ELA发送给Cyber Republic基金。

Elastos的侧链

如果您想更详细地了解侧链,请参阅我们的侧链和可伸缩性聚焦文章。

DID侧链,Token侧链和NeoVM侧链具有PoW共识,因为它们都基于Elastos主链代码和共识。另一方面,以太坊侧链使用DPoS共识, 可被视为授权证明(PoA)。每个仲裁员都与以太坊侧链上的两个地址有关系,并且对其他任何侧链也是如此。例如,如果存在一个ELA主链地址,但同一主链地址也具有对应的以太地址,则这两个地址通过主链上的事务相关联,因此SPV模块可以识别该关系并标识仲裁程序。这就是网络如何知道谁有权生成以太坊侧链区块的方式。用户可以将ELA从主链转移到以太坊侧链,并使用以太坊侧链上的ELA来运行智能合约。在以太坊侧链上运行智能合约的下限为10,000 ELA,但如果有需要,此数字将来可能会更改。此外,以太坊侧链的区块大小与以太坊公共区块链相同。结果,侧链具有气体限制而不是固定的块大小。由于以太坊侧链也是DPoS,因此与公共以太坊区块链相比,它可以支持更高的TPS(每秒事务数)。以太坊侧链的区块大小与以太坊公共区块链相同。结果,侧链具有气体限制而不是固定的块大小。由于以太坊侧链也是DPoS,因此与公共以太坊区块链相比,它可以支持更高的TPS(每秒事务数)。以太坊侧链的区块大小与以太坊公共区块链相同。结果,侧链具有气体限制而不是固定的块大小。由于以太坊侧链也是DPoS,因此与公共以太坊区块链相比,它可以支持更高的TPS。

将主链地址映射到侧链

可以有多个相同类型的侧链。这不仅适用于以太坊侧链,还适用于Token侧链和NEO侧链。例如,用户可能有一个使用Token侧链1的DApp,另一个使用Token侧链2的DApp。这在Elastos体系结构上在理论上是可能的。需要注意的一件事是,Elastos的所有三个侧链(Token侧链,以太坊侧链和NEO侧链)都能够向在Elastos生态系统中运行的DApp发行可替代和不可替代Token。唯一的区别是Token侧链不支持智能合约,而以太坊和NEO侧链则支持。

还要注意的是,在Elastos上可能不会有两条DID侧链运行的情况,因为这对DID侧链的设计目的没有任何好处。DID侧链仅记录用户的交易和KYC信息。交易不会经常更改,并且侧链将主要用作只读侧链以进行验证。因此,对这个侧链的共识也不必太快。因此,为DID侧链选择了PoW共识,因此将其与Elastos合并。但是,这也可能会发生变化。如果需要,将来可以轻松地将共识从PoW更改为DPoS共识。

仲裁员如何工作?

每个仲裁员必须运行多个节点:一个用于ELA主链的节点,一个用于DID侧链的节点,一个用于令牌侧链的节点,一个用于NEO侧链的节点,一个用于以太坊侧链的节点,等等。通过这样做,仲裁器将自身配置为连接到各个节点,从而使自身能够为每个侧链生成块。这并不意味着所有侧链节点都必须在一台机器上运行。每个侧链节点甚至主链节点都可以在不同的机器上运行,而仲裁程序通过适当的配置连接到这些在不同机器上运行的各个节点。甚至实际数据也可以存储在不同的计算机上。通过这种机制,AWS,Azure和Google Cloud等云服务

运行不同节点/机器的超节点

只有值班仲裁员才能打包并签署每个侧链的块。这适用于所有侧链块(PoW和DPoS侧链)。在PoW侧链的情况下,值班仲裁员对块进行打包和签名,然后将其发送到主链以进行联合挖矿PoW。确认后,将这些块添加到其各自的侧链中。在DPoS侧链的情况下,值班仲裁员打包每个块,并发送要由所有其他仲裁员签名的块建议。该区块一经获得(25个签名),便会确认DPoS侧链区块并将其添加到区块链中。其他每个仲裁员都可以验证值班仲裁员打包并签名的块是否有效。如果签署了无效或恶意阻止,

PoW侧链挖掘的工作原理

DPoS侧链挖掘的工作方式

如果有3位仲裁员,则它们必须彼此连接。在任何给定时刻,每个仲裁员始终存在两个连接。因此,如果有36位仲裁员,则每个仲裁员始终存在35个连接。在仲裁器网络上,每个人都相互连接,因为只有36个节点-这意味着开销并不大。但是,在PoW网络中,并非每个节点都与其他每个节点都连接,因为在网络中成千上万个节点的情况下这样做是不可行的。

普通节点如何知道哪个仲裁员当值?每隔72分钟就会有一系列值班的仲裁员前进。这由每个仲裁员的公钥确定。每个提案都是由不同的值班仲裁员提出的,因为仲裁员在每个程序段之后轮换。每回合由36个区块组成,每个区块持续约72分钟。因此,事先确定将值班的仲裁员。每72分钟进行一次选举,该选举确定值班仲裁员的顺序。在每个人均可访问的每个PoW节点中缓存了一个仲裁员及其各自的投票列表。通过此资源,可以很容易地在任何时间点检查哪个仲裁员将当值。

DPoS侧链挖掘的工作方式

每个仲裁员都可以随时投票或撤回投票。在第n轮开始时,将收集n + 1,n + 2轮的票数,因此节点事先知道值班仲裁员的顺序。

结论

如果从所有这一切中获得一个容易消化的收获,那就是Elastos所采用的混合共识机制就其自身而言是非常独特的,因为它增加了多层安全性。通过其混合共识算法,Elastos建立了一个弹性网络,而不会牺牲过程中的可扩展性。最重要的是,它仍然是完全去中心化和自主的。平衡区块链行业的两难困境是非常困难的:安全性,可伸缩性和去中心化。Elastos通过独特的方法有效地平衡了这三者,这是加密体系中其他任何地方都看不到的。尽管完美仍然是无法实现的目标,但Elastos着眼于开发一种系统,该系统以它可以创建的最强大,最安全的共识机制为后盾。

本文地址:https://crherald.com/?p=1470
版权声明:本文为原创文章,版权归 lizhengkaka 所有,欢迎分享本文,转载请保留出处!
相关文章 关键词:

发表评论


表情