LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > Polkadot:共识如何运作,局限性和存在的挑战有哪些?

Polkadot:共识如何运作,局限性和存在的挑战有哪些?

2020-11-12 洁sir 来源:区块链网络

收集者

收集者为特定的平行链维护“全节点”;这意味着它们保留了所有必要的信息,以便能够创作新的区块并执行交易。在正常情况下,他们将整理并执行交易以创建未密封的区块,并将其与状态转换证明一起提供给一个或多个负责提出平行链区块的验证者。协作者还将在BABE中观察块生成和共识协议的进展,并在他们认为是最终定稿的最新中继链块的基础上进行开发。收集者不会直接参与中继链的共识,因此绝不会参与DOT。每个平行链都可能拥有自己的代币,并向收集者提供激励以使其在平行链上运行。

验证者

验证者通过抵押DOT,验证来自收集者的证据,并与其他验证者达成共识来保护中继链。这些参与者将在为中继链以及所有旁链添加新区块方面发挥关键作用。这允许各方通过中继链完成跨链交易。


少量验证器被随机分配给每个平行链并在给定的时间间隔内旋转。验证器执行两个功能。首先,验证一组分配的平行链区块中包含的信息是否有效(例如交易方的身份和合同的主题)。他们的第二个角色是参与共识机制,以基于其他验证者的有效性声明来生成中继链块。任何不遵守共识算法的情况都将因删除验证者的部分或全部DOT而受到惩罚,从而阻止不良行为者。但是,良好的表现将得到奖励,验证者将以DOT形式获得整体奖励(包括交易费用)以换取其活动。

提名人

提名人是为验证人的保证金出资的持股方。除了放置风险资本外,他们没有其他角色,因此,它们表示他们信任特定的验证者(或其一组)在网络维护中负责任地采取行动。他们根据所贡献债券的增长按比例增加或减少存款。


通过指定验证人押注你的DOT时,它们被“锁定”(绑定)。Kusama有7天的无担保期,而Polkadot上有28天的无担保期,然后才能转移担保资金。


如果验证者的行为不正确,他们将被削减,提名人也将失去DOT。对于攻击,这可能导致100%的股份被削减,这意味着可能会丢失所有DOT,因此请明智地选择。

渔民

渔民与区块创作过程没有直接关系。相反,他们是独立的“赏金猎人”,其动机是一笔一次性奖励。渔民正在检查网络每个部分中的拟建区块。理想情况下,一些渔民专注于一条平行链,另一组应对另一条平行链,而一组渔民则检查中继链验证程序。如果他们找到了一个被破坏的区块,那么该区块的创建者将被削减,而渔夫将获得一部分削减后的股份作为奖励。当有一组验证者勾结并提出受损的旁链区块时,渔民尤其重要。要求渔民投入少量的DOT,以防止重复进行的sybil攻击浪费验证者的时间和计算资源。


共识如何运作?

整理者将观察BABE中块生成和共识协议的进展,并以他们认为将要完成的最新中继链块为基础。他们将整理并执行平行链的交易以创建未密封的区块,并将其以及状态转换证明提供给负责提议平行链区块的一个或多个验证者。


中继链中验证者的数量由治理确定,目前有197个验证者,希望将其扩展到1,000个。在一段时间(称为当前时代)之后,当前是每24小时,将举行一次选举,以使用提名权益证明(NPoS)来确定谁将成为验证者。提名人将资金与他们信任的验证人放在一起,而奖励计划和选择方法旨在让每个验证人得到相似数量的股份作为后盾。


由于出于性能原因可以参与共识的验证器总数有限,因此会随机分配少量验证器来验证每个平行链。



当验证者从整理者那里收到未密封的区块和有效性证明时,它将检查区块是否遵循平行链的状态转换规则。平行链的状态存储在Merkle树中。如果某些值发生更改,则可以仅通过查看新值和受影响的树中的路径来验证更改。基于此属性,验证器可以验证状态转换,而无需访问整个状态。它只需要:


块(状态转换列表),
该区块所修改的平行链数据库中的值,以及
Merkle树中未受影响点的哈希。


这套信息构成了有效性的证明。 Polkadot不保证有效状态。它保证了有效的状态转换。 Polkadot验证程序不会检查平行链状态中的每个值,而只会检查已修改的值,以确保修改有效。


如果通过,它将签名并向分配给该平行链的其他验证者传播有效性证明。一旦超过一半的分配验证者同意该区块代表有效过渡,他们将构造一个“候选接收者”。

验证者通过签署以下内容来构造平行链区块的候选收据:
旁链ID
整理者的ID和签名
父区块的候选收据的哈希值
区块移除编码的Merkle根
任何传出邮件的Merkle根
区块的哈希
执行区块前的平行链状态根
执行区块后的平行链状态根


在这一点上,不能保证除整理者和旁链验证者以外的任何人都可以看到有效性证明块。如果这些相互勾结,那么其余的顺链网络就不必具有顺链区块,那么大多数整理者就无法构建新的区块,并且可能不会发现该区块的无效性。与其将有效性证明块发送给中继链中的每个验证器(希望达到1000个验证器),还是出于性能原因而使用了移除编码。


移除编码采用了顺链块和有效性证明,并创建了一组较小的消息,这些消息可以重构为原始消息。较小消息的数量等于验证程序的总数,并且重构消息所需的分数为三分之一。例如,如果Polkadot有1000个验证器,并且每个验证器都得到一个块,那么他们可以使用334个验证器来重构一个块。此外,它还将候选收件人发送给每个验证器,以便将其包括在中继链事务队列中。每个副链同时发生此过程。


中继链块是使用针对块链扩展的盲分配(BABE)协议生成的。 BABE使用块产生的随机性将验证者随机分配给块生产时隙。验证器将证明它已分配给插槽,并创建一个中继链块,其中包括来自各个副链的候选接收者。


区块作者将只包括在较早的中继链区块中具有父候选收件人的候选收件人,以确保平行链遵循有效链。它还将仅包括验证者具有移除编码块的那些,确保可以在下一轮执行可用性和有效性检查。


附加检查由随机分配的验证程序执行。为了确保足够的安全性,验证平行链的验证器的最小数量为14。因此,如果将10个验证者分配给每个平行链进行初始检查,则至少需要另外4个隐藏的随机分配的验证者,才能对所产生的中继链块中包含的所有候选接收者执行附加检查。对于已收到渔民和整理者报告的平行链,则将分配其他验证者进行验证。


每个选定的验证器都将请求区块中包含的每个副链的擦除编码块(如果有1000个验证器,则将请求来自334个验证器的块),并重建副链块和有效性证明。


验证者将验证候选收据和parachain区块,如果这些检查通过,它将为每个parachain签名候选收据,并向其他验证者宣布其签名。


只有包含已执行足够检查的候选收据的中继链块才可以被投票以最终确定链。同时,整个过程不断重复,并且其他中继块已添加到中继链,但尚未最终确定。由于可以通过BABE的随机性选择多个提议者来为一个插槽生成块,因此中继链可能存在多个分支,并且如果不在最长链上,则可以在此时还原事务。


GRANDPA是为Polkadot中继链实现的终局性小工具,它通过遵循一些更简单的分叉选择规则,努力在众多可能的分叉中达成一致。与其在每个区块上投票,不如在链上达成协议。一旦超过2/3的验证者证明包含某个区块的链,立即导致最终到达那个区块的所有区块。


Polkadot中的所有平行链都遵循中继链的终结性。未来的顺链区块必须始终以最终中继链中的候选收据为基础。从编写块到完成为止,所有可用性和有效性检查应在不到一分钟的时间内进行。


一旦完成,该块将从共享安全环境中受益,该安全环境允许链以不信任的方式彼此交互。如果在完成无效块后检测到无效块,则中继链将需要与每个副链一起还原。当连接到外部区块链时,这一点尤其重要,因为它们不共享中继链的状态,因此无法回滚。


安全性

在Polkadot的设计中,中继链的安全性至关重要,如果这会受到损害,那么所有连接的链也将受到损害。


DOT ICO于2017年10月举行,在以太坊筹集了超过1.45亿美元。不到两周后,由于利用Parity(Pokkadot的制造商)multisig钱包代码中的漏洞,ICO期间永久冻结了超过9000万美元的资金。尽管一直在努力取回资金,但至今仍超过500,000 ETH被锁定。

四个月前,这个平价钱包曾遭到攻击,消耗了3000万美元的ETH。最近,以太坊由于Parity的以太坊客户端漏洞而受到攻击,迫使他们脱机。尽管GETH以太坊客户端不受攻击,但它并没有设法关闭整个以太坊网络。


尽管上述内容是相关的,因为它是制造Polkadot的同一家公司,但这并不是说Polkadot平台不安全。 Polkadots安全性通过多个有效性检查过程来支持,我们将在下面更详细地介绍这些过程。

有效性检查1 —每个平行链的指定验证者的安全性

Polkadot与以太坊2.0不同的方式之一是每个分片/副链的安全性。以太坊2.0每个分片至少需要111个验证器才能运行网络,每个分片至少需要256个验证器才能在一个时期内最终确定所有分片。两者都在分片之间旋转分配验证器,并使用类似的finality小工具协议。

Polkadot的每条平行链使用数量很少的验证器来实现可伸缩性(每条平行链大约使用10个验证器,最少5个),同时声称其与下面详述的其他点同样安全。


分配给每个平行链的少数验证器之间勾结的可能性要高得多,要么是等待攻击者控制的节点被分配给平行链的节点,要么是更简单的方法是让恶意收集器贿赂验证器,以使他们验证无效的Blob。需要进行其他检查。

有效性检查2 —渔民

为了帮助找到已经合谋并包含如上所述的无效区块的验证者,渔民是赏金猎人,他们执行检查并报告他们以获取奖励。但是,没有动力继续进行检查。“如果长时间没有妥协的区块,那么渔民将停止从事他们的工作,因为他们没有得到任何回报,这使他们的业务无利可图。但是,网络上操作的渔民越少,验证者破坏区块的动机就越高。

为了在定案之前找到一个无效的区块,渔民目前只有60秒的很小时间。相比之下,以太坊在每个时期(6分钟)敲定区块,但建议完全敲定的时间是2个时期(12分钟)。时间周期越长,网络越安全,因为有更多的时间执行和报告其他检查,但要牺牲最终性。

如果在完成交易后检测到无效块,则必须回滚所有平行链和所有交易的状态,这也将破坏轻客户端,“所有平行链共享安全性和状态,这意味着如果一条链中的一条消息已还原,所有链都被还原”,这意味着该时间段内的所有事务都被还原,这给网络带来了巨大的不确定性和不安全性。另一种方法是不回滚状态,并且其中一个平行链的无效块可能会破坏其他连接的平行链。

有效性检查3-由一些随机和私人分配的验证者执行的其他检查

验证平行链的验证器的最小数量为14,以确保等待将恶意验证器随机分配给相同的平行链检查的可能性是不现实的(50年)。如果介绍的“检查1”中有10个验证者执行检查,那么至少需要4个其他验证者才能执行其他检查。验证者需要在附加检查中做更多的工作,要求为每个副链从网络的1/3请求删除编码块并执行验证,因此将限制中继链的可伸缩性。如果所有分配的验证者都在支票1中串通,下图显示了攻击成功的可能性以及附加支票的数量(?)。再增加一张支票可将成功几率降低到50%,带有2张支票的概率略高于25%,带有3张支票的概率为13%,带有4张支票的概率为7%。


但是,如果选择了恶意验证程序以在中继链中生成一个块,则它们可以首先在中继链块中包含来自旁链的合法块,然后发现谁是隐藏的其他验证程序,从而消除了被捕获的风险和潜在的勾结,消除了它们被隐藏在其他支票中的优势。然后,他们可以模棱两可(在同一插槽的另一个区块上投票),其中包括旁链上的恶意区块,攻击将成功。模棱两可的图块也不能无效,因为这将使最终性受到攻击。

Polkadot的进攻成本

当发现验证者的行为不当时,将根据严重性削减一定比例的股份。对于共谋等4级安全威胁,包括无效的封锁,则将削减100%的股份。真正重要的是要知道,验证者将同时拥有股份和指定的股份,因此,如果验证者恶意执行,可能会失去对验证者所拥有的所有DOT。


在游戏中拥有皮肤对于阻止攻击非常重要,但是结合使用0%的佣金率,将奖励分配给所有验证者的动机以及不需要最低限度自己拥有的奖励,这可能会导致潜在的危险情况。


从下方可以看到,楚格资本(Zug Capital)的197位验证者中有19位参与共识,并拥有总股份的10%。他们没有赚取任何佣金,每个验证人只拥有自己的股份的10个DOT,其余的301.1万个DOT是委托给他们的人。这意味着,如果他们进行攻击,他们只会损失190 DOT(目前的成本约为855美元),并控制了全部股份的10%。因此行贿的恶意行为不必那么大,特别是与做空DOT并进行攻击的金钱相比。提名者承担了绝大多数风险。 (我想其中很多人甚至都没有意识到他们会损失100%的DOT)。检查验证者使用的设置的安全性也非常困难,并且尽管有注册服务商来确认身份,但这些注册服务商也可能屈服于提供的贿赂/虚假信息。在Zug Capital的示例中,他们已经使用自己的网站在链上验证了身份,可以从polkadot.js UI中看到该网站。但是,如果单击zugcapital.com网站,它只会重定向到提名UI!因此,他们甚至是匿名的。

共享状态和共享安全假设

Polkadot的主要卖点之一是中继链和所有连接的平行链之间的共享状态基础结构。如果中继链由于某种原因必须还原,那么所有平行链也将还原。这是为了确保整个系统的有效性可以持续存在,并且各个部分都不会损坏。

每个副链都具有与本文上文详述的相同的信任假设,因此中继链可验证状态转换并实现它们之间的无缝互操作性。


作为这种利益的回报,他们必须购买DOT并赢得其中一个可用旁链插槽的拍卖。由于可用的平行链插槽数量有限,获胜者必须持有大量非常易变的资产,因此购买量可能非常大,因此,如果失去了续约期限,则在收回DOT的同时,价值可能与最初存入的资金有显着差异。


但是,平行链不仅可以依靠中继链来确保其安全性,还需要实施抵抗审查的措施。

审查制度的攻击和前锋


在开篇我们讨论了共识的工作原理,最开始是由每个平行链整理交易的整理者和提出要在中继链上验证的区块组成。建议收集者将其转向哪个区域是由链条本身决定的。因此,每个平行链将需要在每个平行链上实施工作量证明或权益证明,以提供审查抵抗力并防止遭受sybil攻击。


Collator并不押注DOT,而是在每个平行链本机代币中获得奖励,因此``共享安全性''的概念是有缺陷的,人们不必担心为自己的区块链拥有足够的抵押权/散列权即可支付安全性。

整理者可以选择不将某些交易包含在平行链中,以对其进行审查或通过自己的交易进行前期处理。整理者还可以对分配的验证者进行DOS操作,以防止他们能够向中继链提出区块。此外,通过创建中继链块(不包括某些平行链块)进行检查的机会也较小。


通过发送伪造的不可用性报告来增加验证所需的额外验证器数量,从而延长流程并消耗更多资源,也可以减慢该过程。

对于parathreads,即使每个parathread实现pos / pow,也更难以解决该问题,因为在拍卖中有一组parathread相互竞争,以将其parachain块包含在中继链的下一个插槽中。允许从其他商品的交易中抢占先机,并支付高额交易费以确保首先被选中,或者只是通过收取更高的交易费来阻止其他人对其链进行验证。


审查/前端攻击会影响所有用例,但特别是金融,交易,**,预言*用例。

结论

毫无疑问,Polkadot是一个优秀的项目,拥有一支才华横溢的团队和强大的应用率。与所有区块链项目一样,尽管存在局限性,需要权衡的问题和需要解决的问题,但在该领域仍处于难以置信的早期阶段,一些解决方案正在研究中。

Polkadot的发布进一步大大改善了区块链的当前状态,使其更接近主流应用。但是,不会有一个平台可以将它们统统统治,有些用例更适合一个平台而不是另一个平台,而且它不是零和游戏。区块链将彻底改变行业和互联网本身。研究和交付突破性技术的项目越多,彼此之间就会互相学习,并相互推动,早日实现这一目标。就价值和应用率而言,目前的市场很小,几乎看不到什么,看到它的发展将令人兴奋。

原文链接:How Consensus Works

—-

编译者/作者:洁sir

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...