首页 百科 查看内容
  • 5432
  • 0
  • 分享到

EOS的共识算法(BFT-DPOS)具有哪(nǎ)些特(tè)点?

2018-4-30 21:27

EOS的共识(shí)算法(BFT-DPOS)具有(yǒu)哪些(xiē)特点?


EOS.IO软件(jiàn)采用了目前(qián)为止唯(wéi)一能够符合上述性能要求的去(qù)中心化共识算法(fǎ) — 委托权益证(zhèng)明Delegated Proof of Stake (DPOS).。根据这一(yī)算(suàn)法,在使用EOS.IO软(ruǎn)件构(gòu)建的区块链上持(chí)有通证的人,可以(yǐ)通过一个持续进行的投票系统来选择区(qū)块生产者。任何(hé)人(rén)都可以选择参(cān)加区块生(shēng)产,只要能够(gòu)说服通证持有人为其投(tóu)票,就会有机会参(cān)与(yǔ)区块生产。

EOS.IO软件可以让区块每0.5秒生成一个。任(rèn)何(hé)时刻,只有一个生产者被授(shòu)权产生区(qū)块。如果在计划的某个时间内没有成功出块,则跳过该块。如果有一个或更多的区块被跳过(guò),则在区块链上会有0.5s或者(zhě)更久的(de)空白。

使用EOS.IO软件,区(qū)块的产生(shēng)是以126个区块(每个(gè)出块者(zhě)六个区块,乘以21个出块者)为一个周期。在(zài)每(měi)个出块周期开始时(shí),会根据通证(zhèng)持有人所投(tóu)票数选出(chū)21个区块生产(chǎn)者。被(bèi)选中的区块生产(chǎn)者的顺序会根据15个及以上的区块生产者的同意(yì),制定出块顺序的安排。

如果(guǒ)出块者(zhě)错过了一个(gè)块,并且在最近24小时内没有(yǒu)产生任何块,则(zé)这个出块者(zhě)将被(bèi)剔除在(zài)考虑范围(wéi)之外,直到他们通知区块链(liàn)可以重新开始产生(shēng)区块。这确保了网络的顺利运行(háng),把被证明为不可(kě)靠的区块生产者(zhě)排除(chú)在出块排程之外,通过这一方式使(shǐ)得错过区(qū)块的数量最小化。

在(zài)正常情况下,DPOS块链(liàn)不会经历任何分叉(chā),因为(wéi)区块生产(chǎn)者(zhě)并非竞争关系,他们合作产生区块。如果有区块分叉,共识将自动切换(huàn)到最长(zhǎng)链(liàn)。这一方式之所(suǒ)以有效,是因为(wéi)区块链分叉(chā)上增加区块的速(sù)度,与具有相同共识的(de)区块生产者的比例直接相(xiàng)关。换句话说(shuō),具有更多生产者的区块(kuài)链(liàn)长度将比(bǐ)具有(yǒu)较少生产者的区块链增长速(sù)度(dù)更快,因为,有更多生(shēng)产者的区块(kuài)链分(fèn)叉(chā)上(shàng),丢块更少。

此(cǐ)外,没(méi)有(yǒu)块生(shēng)产(chǎn)者可以同时在两(liǎng)个区块链分叉(chā)上(shàng)生产块。如(rú)果一个块生(shēng)产者发现这(zhè)么做了(le),就可能被(bèi)投票出局。这(zhè)类双重生产的密码学证(zhèng)据,也(yě)可能会被(bèi)用来自(zì)动移(yí)除作恶者。

在传统的DPOS算法上增加了(le)拜占庭容错算法(Byzantin Fault Tolerance) ,所有的出块者都(dōu)要对所有区块签名(míng),以(yǐ)此来确保在同(tóng)一时间戳或者同一区块高度上(shàng),没有区块生(shēng)产者能够同时在两个区(qū)块上(shàng)签名。一(yī)个区块有了15个区块生(shēng)产者的签(qiān)名,该区块(kuài)就被认为是不可逆的。任一拜占庭区块生产者如(rú)果想(xiǎng)在同一时间戳或者同一区块高度的两个区块上签名(míng),就不得不留下密码(mǎ)学证据。在(zài)这一(yī)模式(shì)下,一秒(miǎo)之内就可以达成不可(kě)逆的(de)共识。
米兰平台-米兰MILAN(中国)
版权(quán)申明:本(běn)内容来(lái)自于互联网,属第三方(fāng)汇集(jí)推(tuī)荐平(píng)台。本文的(de)版权归原作者(zhě)所有,文章言论不代表链(liàn)门户的观点,链门户(hù)不承担任(rèn)何法律责任。如(rú)有侵(qīn)权请联系QQ:3341927519进行反馈。
相关新闻
发表评论

请先 注册/登录 后参与(yǔ)评论

    回(huí)顶部

    米兰平台-米兰MILAN(中国)

    米兰平台-米兰MILAN(中国)