链资讯 链资讯
Ctrl+D收藏链资讯
首页 > SOL > 正文

为什么Polkadot的GRANDPA协议不够安全?

作者:

时间:

本文将讨论Polkadot为解决拜占庭容错问题而提出的共识协议——GRANDPA协议。在本文中,我们默认读者已经熟悉拜占庭容错问题,所以我们将直接介绍Polkadot的GRANDPA协议是如何解决拜占庭容错问题的。首先,我们将简洁明了地介绍GRANDPA协议的主要内容。然后,我们将讨论可能导致GRANDPA协议失效的攻击方式。最后,我们会就如何解决上述安全漏洞,提出可能的解决方法。

概率确定性与可证明确定性

经由Casper FFG(Friendly Finality Gadget)协议启发,GRANDPA是一种新的、拜占庭容错的(BFT)、确定性工具的(Finality Gadget)共识协议。确定性工具(Finality Gadget)是一套经由一定提议机制而最终确定一条区块链上内容的机制。由“确定性工具”最终确认的链上内容,具有最终性,即不可逆。

正如Polkadot Wiki上所说:“那种运行纯粹中本聪式POW共识协议的区块链,只能达到概率确定性并完成最终共识。”与之相对,像GRANDPA或Casper FFG之类拥有确定性工具机制的协议,则可以为我们提供更强大的保证,称为可证明确定性。GRANDPA的确定性工具机制带来的可证明确定性,保证了经过一定共识机制运作之后,那些被最终确认的区块里的内容将永不可逆。

Polkadot的GRANDPA

Polkadot,是通过一个提名权益证明(NPoS)系统,将BABE用作其区块生成机制的(BABE,即著名的Blind Assignment for Blockchain Extension,即区块链扩展盲分配)。这个系统使用提名权益证明机制(NPoS),顾名思义,这个系统会通过一个提名过程选出验证者。在这个区块链系统中,为了从一个普通的参与者变成一个提名者,参与者需要先将其代币作为抵押品。这之后,这个升级为提名者的参与者,就可以提名他/她认可的节点作为验证者了。当被他/她提名的验证者偏离协议,他/她抵押的权益就将被削减,作为惩罚;相反,当被他/她提名的验证者遵守协议时,他/她也会获得报酬,作为奖励。另外值得一提的是,在这个区块链系统中,当选了的验证者在共识协议中的投票权是同等的。

有了GRANDPA(GHOST-based Recursive Ancestor Deriving Prefix Agreement)作为它的确定性工具机制,Polkadot的中继链包含两个不同的协议,分别对应两种不同类型的网络。我们要讨论的是第一个协议。这个协议对应的网络,是部分同步的,并且最多可以有1/3的参与者是恶意的。我们生活中遇到的网络,通常都是部分同步的。这是一个分布式系统的专业术语,简而言之,是指:网络在大多数情况下是同步的,当网络不同步时,经过一定时间,也会回到同步的状态(同步也是分布式系统的专业术语,这个可以暂时理解成日常用语里的“同步”)。

关于GRANDPA,值得注意的是:1)只有被确定性工具机制最终确认的区块能影响区块的生成  2)可以同时为不同高度的多个区块投票,这与Casper FFG不同。

本文只讨论Polkadot的第一个协议。它专为部分同步网络设计,不能容忍网络分区或DoS攻击。另外值得注意的一点是,该协议假定在未知时间GST之后,网络变为同步。

每个参与者都存储一个由BABE产生的区块树,这个区块树的根区块是创世块。参与者可以对树上的一个区块投票。如果一个区块B获得X票,X票包括了B自己和B的子孙节点的所有票。然后,?-GHOST函数g(S)返回获得票仓S里绝对多数的区块中区块高度最大的那个区块,记作B。

然后,区块作者着手确定这个区块B在票仓S中获得绝对多数的可能性。GRANDPA协议的论文《Byzantine Finality Gadgets》这样定义:“我们说,如果至少有2t + 1张票是超额投票(即一个投票者投了多于一张票)或者投给了除B子孙区块的其他区块,那么区块B在票仓S中占据大多数是不可能的;否则,区块B在票仓S中获得绝对多数是可能的。”此外,论文还指出,“一个区块B在一个票仓S里获得绝对多数是可能的,当且仅当存在一个容错票仓T,T是票仓S的子集,并且区块B在票仓T中占绝对多数。”

这个协议在实践中会出现以下的几个问题:

如果我们假设区块B和C不一致,而t个恶意投票者加1个诚实投票者投票给了B,2t个诚实投票人投给了C,那么根据上述定义,B得到绝对多数是可能的。然而,因为诚实的投票人不会超额投票,所以票仓S里不总是有一个子票仓T使得T里有绝对多数。这就使得GRANDPA无法实现活跃性保证。接下来,我们将详细介绍这种情况。

假设我们保持相同的情况,以B和C作为在某个回合r中产生的两个子区块-也就是说,BABE在此回合经历一个分叉,并且结果产生了两个子块B和C。

在第r轮,t + 1个投票者(所有t个恶意投票者+ 1个诚实投票者)投票给B,其余2t诚实投票者投票给C。因此,对每个投票者i,我们的g()函数都会从前一个回合的estimate,E_ {r-1,i} [ E_{r,v} 表示投票者v在r轮的一个estimate,这个estimate包含了所有本可以在r轮最终确定却实际上没有被最终确定的区块的信息,详见论文《Byzantine Finality Gadgets》] 中输出一个向B、C的一个祖块。相应地,每个参与者都预先承诺(pre-commit)该祖块。(值得注意的是,即使是网络上诚实的节点,也可能由于网络延迟或异步而出现这种分裂的投票结果。一个诚实节点可以首先接收到区块B,因此它投票给B。其他诚实节点首先接收到C,因此他们投票给C。)

现在,每个投票者i估计从第r-1轮的E_ {r-1,i}来的祖块可能是哪个块。由于C_ {r,i} [ C_ {r,i}表示参与者i在r轮收到的所有预先承诺(pre-commits)] 可能导致E_ {r,i}的任何子级得到多数投票,因此回合r无法完成,整个共识过程失败。

即使可以通过修正GRANDPA中的语义定义来解决此处讨论的问题,我们也可以类似地将在Tendermint协议的讨论中提到的那些攻击用于GRANDPA。最终,我们只能得出结论,GRANDPA协议在上述网络中不安全。

标签:ANDRANADOPolkadotFaraLandAlgorandSEADOG价格polkadot代币

SOL热门资讯
技术周刊 | 波卡主网2020年中上线以太坊2.0规范安全审核完毕

本周,各社区发布信息较多,以太坊终于通过了安全审计,Polkadot则是web3基金会更新了grant名单,COSMOS发布了双周报,filecoin做了客户端更新。我们筛选了其中的重要内容,整理如下: 以太坊 以太坊2.0规范通过安全审核 以太坊2.0规范已经通过了安全审核。

金色前哨 | 神州信息2019年营收破百亿 已推出数字货币系列产品

神州信息于3月30日发布了2019年年报。报告显示,公司共实现营业收入101.46亿元,同比增长11.77%。实现归属于上市公司股东的净利润3.76亿元,同比增长792.26%,创上市以来净利新高。其中,金融科技业务实现收入38.99亿元,同比增长11.29%;金融科技软件和服务业务实现收入21.75亿元,同比增长62.34%。

金色观察 | 京东数科与国贸股份推进供应链数字化

京东数科与厦门国贸集团股份有限公司(以下简称“国贸股份”)在3月26日以远程签约方式达成合作,携手推进供应链行业数字化,助力企业更好地复工复产。根据合作协议,双方将在供应链领域、金融大数据生态建设、智能金融创新等方面展开合作;共同探索城市经济建设中的全新发展机遇和方向。

和外部金融市场走势高同步下 BTC能否独善其身?

BTC近期的走势,继续和美股保持高度同步性,特别是在美股开盘期间,K线走势几乎完全一样。 先来说美股,美股周二史诗级大反弹,道指涨逾2000点,涨11%,创下1993年以来最大单日涨幅。 美股上涨原因很好解释,源于美联储无限量放水和美国政府2万亿经济刺激计划的举措。

金色前哨 | 受行情波动影响 3月份稳定币市场新增发19.7亿美元

金色财经讯,受到疫情扩散、原油下跌等因素影响,3月12日-13日,加密货币市场出现腰斩式暴跌,加密货币总市值一度不足1200亿美元,在包括BTC在内的绝大多数加密货币出现暴跌时,稳定币市值出现了大幅上涨。根据DAppTotal数据,3月份稳定币市场新增发量达到19.7亿美元。

朱嘉明:数字货币已经成为理解现代经济中不可排斥的一个因素

为了深入解读数字货币对国内乃至全球宏观经济体系的影响,并对数字货币未来发展趋势进行合理展望、提出相应建议,3月27日,数字资产研究院、横琴智慧金融研究院与零壹财经·零壹智库联合举办了《数字货币对宏观经济的影响与展望》线上闭门研讨会。