简评三个基于VRF的共识算法

如题所述

上交所技术公司  朱立

Algorand、Dfinity和Ouroboros Praos三个共识算法(Dfinity虽然是项目名,这里用来称呼其共识算法也应无不妥)近期较受关注,而且都是基于VRF(Verifiable Random Function) 设计,可以对照学习。Algorand的版本很多,以下单指  1607.01341v9 ,暂称其为Algorand'(笔者手中另有Algorand的 最新版本 ,其中已对下文提及的几处问题完成了修正,可与本文参看)。

一、VRF的共性

VRF的意义很好理解——用以完成出块人(群)的随机选择。为此,VRF的返回值应尽力难以预测。先看Algorand'和Dfinity的套路是怎么做的:大体上是先将前一个随机数(最初的随机数却是协议给定的)和某种代表高度、轮次的变量进行组合,用某种私钥对之进行签名(或者是先签名再组合),最后哈希一下得出最新的随机数。这样产生的随机数旁人很容易验证其合乎算法,"V"就这样得到了;而哈希返回值又是随机分布的,“R”也因此得到保证。在此过程中,为降低操纵结果的可能性,有两个注意事项: A) 签名算法应当具有唯一性,也就是用同一把私钥对同样的信息进行签名,只有一个合法签名可以通过验证——普通的非对称加解密算法一般不具备这个属性,如SM2。如果用的签名算法没有这种uniqueness属性,那在生成新随机数的时候就存在通过反复多次尝试签名以挑出最有利者的余地,会降低安全性。 B) 避免在生成新随机数时将当前块的数据作为随机性来源之一,比如引用本块交易列表的merkle root值等等,因为这样做会给出块人尝试变更打包交易顺序、尝试打包不同交易以产生最有利的新随机数的余地。在设计和检视新的共识算法时,以上两个注意事项是要特别留意的。

考察一下VRF的返回结果应该如何运用。目前所见用法中,VRF的返回结果可以用来公开完成节点或节点群体的选择,也可以私密地完成选择。以Dfinity为例,它是利用mod操作来唯一、公开地确定一个Group。Algorand'、Ouroboros Praos是私密选择的范例,大致套路是对VRF的最新返回值,配上轮次等变量后用私钥进行签名并哈希,如果哈希值小于某个阈值,节点就可以私密地知道自己被选中。这种方法很可能在网络节点数较多时的表现会更稳定,否则幸运儿个数上下波动会较大,进而影响协议表现,包括空块和分叉。

二、简评强同步假设版本的Algorand'

私密选择提供了较强的抗击定点攻击的能力,但由于幸运儿的总数对于任何一个幸运儿都是不能预知的,也因此给后续共识算法的设计和区块链的优化带来了困难。Algorand‘采用了很强的同步网络假设(同步网络假设下的共识算法当然容易做一些),要求预先知道网络消息传播时间的上限:在固定时间内完成对固定比例的用户的网络传播。比如要知道,1KB消息,在1秒钟内完成全网95%的传播,而1MB消息需要1.5分钟完成全网95%的传播。但这个传输上限应该如何选择? 通过一段时间的统计结果再乘以一个系数这种经验统计?只能说“感觉上可以”,但如果要严谨和安全,Algorand‘算法应该补充证明即使在遭遇DDOS或互联网拥堵的情况下消息传播严重超限后算法仍然能够保证安全——然而这个证明是缺失的。作为对照,Ouroboros Praos公开承认之前在同步网络假设下设计的Ouroboros协议在异步网络条件下会出错,所以才又做了Ouroboros Praos;新版本的Algorand承认在弱同步网络时会在不同的块上达成共识(后续网络恢复强同步时分叉可以得到解决)云云,这些都可资参考。

即使我们暂且认可Algorand'算法可以通过设定一个很大的传播时间上限来回应上述问题,但随之而来的是此时可以看出此算法缺乏一个非常好的特性:Responsiveness。这个特性指的是:若一个协议被设计为在一个较大的传播时间上限DELTA下工作,但若实际传播时间是较小的delta,则协议的实际推进步调将只和delta有关,这种协议被称为Responsive的。具有Responsive特性的共识算法再配以同步网络假设会非常理想——出于安全,上限可以设置很大,然而协议执行速度只和当时网络条件有关。Algorand'并不具有这种特性。平均而言,Algorand'完成共识所需的消息传送次数是11轮,每轮如果要确保安全,完成共识的时间就会很长,单个分区的吞吐量就不会太高。当然,架构设计涉及很多取舍,最终评价一个算法好还是不好还是要回到初心——准备拿来实现的目标是什么。上述分析只是尝试客观地指出Algorand'算法的几个少为人知的固有特征,供读者自行评估。

三、简评Dfinity的可扩展性问题

私密选择并且立即上任的做法,也给系统分片带来了极大挑战。Dfinity是明确要做分片(Sharding)的,所以必须直面挑战。可扩展性问题非常复杂,完整解决这个问题需要通盘考虑网络、存储、计算三方面的可扩展性——时下大多数区块链3.0项目只注意到计算的分片和可扩展性,忽略了其余二者,从而不可能真正实现理想的扩展。由于公链节点网络带宽的制约,计算合约所需的数据通常很难迅速地从一个节点拷贝到另一节点,所以就算用VRF实现了飘忽来去的出块节点选择,存储节点是没法同样飘逸如风的。明显的选择有那么几个:全部节点存储全部数据,不同节点静态地分配用来存储不同分区。前者的可扩展性很差,对于后者而言,如果出块节点漂浮不定且出块节点还需要完成合约运算,就意味着基于P2P网络来回远程访问存储,性能多半急剧下降;动态决定的出块节点只完成排序共识,计算能力和存储捆绑,通过静态分区提供可扩展性,可能是合理的应对。然而,最可恨的就是“然而”二字——即使如此,系统还存在一处对存储和网络构成压力的所在:最终用户提交的待打包交易。普通公链(先不考虑EOS那种)的带宽有限,如果用户提交的待打包交易必须粗放型地全网泛滥传播,那现有网络带宽可以提供多少TPS?如果出块节点是静态分区或者至少提前一段时间公开知晓,事情尚有回旋余地;如果出块节点是如此飘忽不定,而且直到最后一刻也只有这些节点自己知道,那无论是用户还是出块节点候选人看起来最直接的应对之道就是全网泛滥传播全部待打包交易、保存全部待打包交易,这样带宽和存储仍然成为系统瓶颈。

所以这里碰到的,本质上还是安全、可扩展性、去中心化的不可能三角。

四、简评Ouroboros Praos

BM怼 Ouroboros的文字已经流传广泛。BM的话当然有些明显是不对的,比如Ouroboros的DPOS是指"Dynamic [stake distribution] POS"而不是BM的Delegate POS,但其关于Pareto分布的评论则值得玩味。如果我们仔细浏览后出的Ouroboros Praos,可以发现协议的安全假设和安全证明完全没有考虑经济博弈因素,因此洋洋洒洒的证明很可能会不得要领而错过真正需要防护的方向——毕竟一直以来POS/DPOS这些协议的血管里面流淌的就是基于经济博弈和人性进行设计的血液。最明显的例子是在forward secure signature的实现方法上,协议目前的设计是要求每个好的节点自觉主动地安全删除用过的私钥,而完全没有考虑近乎零的私钥保存成本如何面对bribe attack的诱惑,然而这却是值得考虑的。除了形式化证明之外,Ouroboros Praos本身并没有太多值得关注的协议特征,总体上就是用VRF抽签结合POS算法并针对某些安全假设进行了形式化证明,其做事的态度是非常值得赞赏的。

五、总结

这几个算法本身颇有创意,也很值得学习。与此同时,在看过以太坊CASPER目前披露的分区技术后,笔者的体会是:区块链3.0的竞争才刚刚开始,从以太坊团队的技术路线看,他们的技术考量和选择要比很多宣称要超越以太坊的团队来得深刻和全面。如果当真要超越以太坊,还是应该先从理解以太坊开始。

顺便感谢趣链邱炜伟博士对本文的贡献!
温馨提示:内容为网友见解,仅供参考
无其他回答

简评三个基于VRF的共识算法
Algorand、Dfinity和Ouroboros Praos三个共识算法(Dfinity虽然是项目名,这里用来称呼其共识算法也应无不妥)近期较受关注,而且都是基于VRF(Verifiable Random Function) 设计,可以对照学习。Algorand的版本很多,以下单指  1607.01341v9 ,暂称其为Algorand'(笔者手中另有Algorand的 最新版本 ,其中已对下文提及的几处问题...

Insight Chain(INB)公链有哪些技术创新呢?
一、全球首个基于VRF的VDPoS共识 瑞策科技自主研发的区块链基础平台使用一种全新的共识算法:VDPoS(Validated DPoS,可验证的DPoS)共识,该算法是DPoS+BFT+验证节点的有机结合,在DPoS共识的基础上引入验证节点,基于VRF随机抽签机制选择验证节点,验证节点使用BFT共识对区块进行二次验证。二、全球首个DPoS...

PoS共识机制对比
三、 Tendermint Consensus Tendermint共识机制采用PoS+BFT结合,通过选举机制选择出块人,采用BFT投票过程确保最终一致性。选举过程通过Round-robin算法执行,理论上可预测结果,但需通过sentry机制隐藏验证者IP以抵御DoS攻击。四、 Ethereum 2.0 Ethereum 2.0向权益证明转变,目标实现绿色节能、降低硬件门槛...

Taylor(泰勒)的共识算法是什么?
Taylor提出了开创性的LPoS(Liquidity Proof of Stake)共识算法,基于可验证随机函数 VRF 设计,LPoS具有以下特点:(1) 不存在矿工垄断,回归初心像中本聪设计的 PoW 共识一样,确保所有参与共识的节点都是公平的。(2) 无论网络中参与共识的节点数量有多少,所需的计算量都不会太大,以防止像 PoW共识...

SOT算法剖析
3Dimensional是基于SOT算法理论的DAPP体验版,有助于用户在体验中形成共识和作为公链和主网上线前获得早期布道奖励。DS网络代币是基于SOT共识算法自定义的体验版项目3Dimensional的Token,并在主网和公链上线后1:1映射。SOT的产币机制,是基于对POW的改进,它也不是可以直接发行的POS币,所以是无法使用...

FileCoin: 有用的工作量证明
有用的工作量证明(Proof of Useful Work)是由著名的去中心化存储项目 FileCoin 在它的白皮书里提出来的一个概念。工作量证明,Proof of Work,POW 是实现区块链的一个重要共识方式,FileCoin 要实现一个基于区块链的存储平台。所以它也要做共识,它选择的就是工作量证明共识。 首先我们来解释一下常规的工作量证明。它...

区块链怎么证明工作量?
有用的工作量证明(ProofofUsefulWork)是由著名的去中心化存储项目FileCoin在它的白皮书里提出来的一个概念。工作量证明,ProofofWork,POW是实现区块链的一个重要共识方式,FileCoin要实现一个基于区块链的存储平台。所以它也要做共识,它选择的就是工作量证明共识。 首先我们来解释一下常规的工作量证明。它是区块链实现...

Insight Chain(INB)有什么技术支撑吗?
共识,该算法是DPoS+BFT+验证节点的有机结合,在DPoS共识的基础上引入验证节点,并基于VRF随机抽签机制选择验证节点,然后验证节点使用BFT共识对区块进行二次验证,充分保证了INB公链的去中心化程度、安全性和可扩展性。使用多主链+多子链的混合架构,为全球第一个使用此种混合架构的公链。

智度股份是元宇宙概念股吗
据了解,此次国光电器等三家合作也是各有所长。合资公司将充分利用智度股份在互联网媒体、数字营销、游戏开发、区块链、品牌营销等领域的经验,智度集团的资金优势和资源整合能力以及国光电器在VR设备产业链中的地位和作用,三方强强联合,致力于发展元宇宙相关业务,最大限度地满足用户的沉浸式体验需求。

企图解决区块链的不可能三角?Algorand 共识算法全剖析
Algorand的核心算法流程分为三部分:加密选举、区块提案与执行BA*共识。选举算法流程如图所示,选举过程涉及选举种子的选择、区块提案阶段的时间设置与BA*共识的细化为两个重要子算法:Reduction与BinaryBA*。Reduction通过投票达成区块优先级共识,BinaryBA*算法则在达成共识后,对区块进行多次投票,以在较短...

相似回答
大家正在搜