欧易下载

欧易交易所
欧易交易所APP官网下载

欧易交易所(OKX)是最老牌的比特、莱特、以太交易所,欧易交易平台支持OTC法币交易,支持微信、支付宝和银行卡转账,安全方便快捷,欧易下载官方APP链接。

为什么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),顾名思义,这个系统会通过一个提名过程选出验证者。在这个区块链系统中,为了从一个普通的参与者变成一个提名者,参与者需要先将其代币作为抵押品。这之后,这个升级为提名者的参与者,就可以提名他/她认可的节点作为验证者了。当被他/她提名的验证者偏离协议,他/她抵押的权益就将被削减,作为惩罚;相反,当被他/她提名的验证者遵守协议时,他/她也会获得报酬,作为奖励。另外值得一提的是,在这个区块链系统中,当选了的验证者在共识协议中的投票权是同等的。

BTC突破51000美元关口 日内涨幅为4.93%:火币全球站数据显示,BTC短线上涨,突破51000美元关口,现报51000.56美元,日内涨幅达到4.93%,行情波动较大,请做好风险控制。[2021/2/24 17:48:24]

有了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协议在上述网络中不安全。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

欧易交易所

FTT比特币Liquid 侧链持有的 BTC 数量上超过公共闪电网络渠道

闪电网络可能是改善比特币网络的项目中宣传力度最大的一个。这个利用比特币智能合约构建的第二层协议能够实现更快、更便宜的支付,因为交易不必再记录在缓慢且昂贵的比特币主网上。 虽然闪电网络看上去是未来几年内把比特币支付扩展到数百万名新用户的关键角色,当前看来绝大多数用户对加密资产的兴趣在更大程度上是出于价格投机的目的。

币安下载金色观察 | 投资者逃离BitMex 期货市场或将迎来洗牌?

3月12日,加密货币市场发生了天翻地覆的变化。 当天,比特币价格在24小时内瀑布式暴跌50%,打得交易员们措手不及,最典型的表现就是在两天内进行了10亿美元的长时间清算。 数据显示,从那一天起,领先的比特币衍生品平台BitMEX遭受了损失,大量比特币从其所有的钱包流出。

[0:15ms0-0:703ms