手机版

共识技术剖析系列1、ALGO币 共识算法

时间:2021-07-17 23:39:31|浏览:

出处:巴比特

存在潜在的安全问题

互联网用户需要连续访问其私钥,以确定其在每一轮中的VRF状况(即验证者、建议者,或者两者都不是)。

通常觉得,对于那些将很多资产存储在区块链上的个人,为了预防攻击,他们应该把私钥以冷存储的方法进行保存。而持续的验证(需要常常签名)会需要高频率地动用私钥,从而增加被攻击的风险。这显然将致使互联网中不少诚实的个体(出于安全的考虑)会防止参与验证过程,从而导致区块链缺少活力的问题。

没惩罚问题

ALGO币所存在的另一个问题是,没方法辨别“离线验证者”并惩罚它们。因此,在没惩罚手段来预防无效的状况下,没经济勉励就是一个问题,大多数人会选择不为共识做贡献,因此离开这个互联网。假设互联网中只有10%的诚信节点在不断地进行验证,而其余节点是离线的状况,与此同时,恶意的节点选择维持在线,那其就比较容易超越在线委员会节点。这使得恶意节点更容易控制共识。

总的来讲,ALGO币的VRF和加密抽签后验性给出了一个解决“三角悖论”的非常不错设计思想,但其在验证环节的设计更偏单纯的学术化理想化,致使其对互联网流量、有效通讯数据等实质工程落地考虑不够,紧急影响了公链运行性能、节点互联网规模、账本存储容量和去中心化程度。

1、ALGO币共识算法简介

ALGO币共识算法是图灵奖获得者Silvio Micali在2017年底提出。Michali是MIT的教授,是一位密码学家和计算机理论学家,在伪随机数与零常识证明范围非常有名。

ALGO币共识算法的论文的下载地址:https://people.csail.mit.edu/nickolai/papers/gilad-algorand.pdf

ALGO币使用了VRF函数,并结合竞价推广账户的余额比率,随机确定区块生成与投票人角色。

所谓VRF(Verifiable Random Function)就是可验证随机函数。

随机数对于区块链技术来讲非常重要。 本质上,分布式账本的核心问题就是随机选择出块人的问题,这个随机性要能被全网确认,并且不可以被操控,也不可以被预测, 不然恶意节点通过操控这个随机数就可以操控长链,从而达成双花攻击。

PoW的策略是让大伙进行算力竞赛,设置一个计算哈希的难点,哪个先算出来哪个赢,算力高的赢的概率高,算力低的赢的概率低,以如此的方法保证胜出者是随机的。投入的算力可以体目前哈希值上, 如此全网可以验证,并选择包含最多算力的那条链。恶意节点只能通过提高我们的算力来增加攻击成功的概率。

PoS的策略是选举,大伙不需要浪费电力去进行算力竞赛,而是文明一点,随机选举一个节点来出块,并且被选中的概率和它拥有些份额有关。 假如“随机”这一步没问题的话,恶意节点只能通过增加我们的份额,增加自己被选中的概率,从而增加双花攻击的成功概率。 这里有一点比PoW的策略要好就是,要达成攻击,先得成为持币大户,假如攻击成功币价暴跌,攻击者也会承受最大的损失。

那样下面的核心问题就是,这个不可以被操控不可以被预测的随机数从哪来。传统地PoS策略尝试从链上现有些数据入手,譬如用上一个区块的哈希值,上一个区块的时间戳等等来作为随机数的出处,但这部分会带来额外的安全风险。 由于区块本身的信息就是节点写进来的,然后又要依据里面的信息来选举后续的出块者,存在循环论证的嫌疑,安全性不会太好。 这也是传统地觉得PoS策略不如PoW靠谱的部分缘由。

ALGO币提出的VRF可以由私钥与讯息产生一组可验证的伪随机 数Y与证明 ⍴。其他人都可以透过Verify函数来检验这个随机字串是不是真的是该公钥对应私钥持有者,根据规定用Evaluate函数所产生,而不是自己乱掰的。更详细一点的VRF三个函示描述如下:

• Keygen → . On a random input, the key generation algorithm produces a verification key VK and a secret key SK pair. •Evaluate → . The evaluation algorithm takes as input the secret key SK , a message X and produces a pseudorandom output string Yand a proof ⍴ . •Verify → 0/1 . The verification algorithm takes as input the verification key VK , the message X , the output Y, and the proof ⍴ . It outputs 1 if and only if it verifies that Y is the output produced by the evaluation algorithm on inputs SK and X .

为何大家需要这么一个大伙自己产生,却又要可以被验证的随机字串产生器呢?这是由于在ALGO币的拜占庭演算法中,虽然也存在着每一轮不一样的区块生产者与验证委员会,但并非用「公开选举」的方法来选的,而是透过每一个用户自己对奖的方法来看看自己是否下一轮的Leader。

algorand就是通过随机算法从一群大范围的验证者中选取一部分验证者运行BFT算法,从而达到提升共识的成效。

无论是在何种BFT的共识机制中,都是由Leader与Committee来完成区块的发布与共识决议。比如柚子币的dPoS BFT是固定21个BP轮流担任Leader与投票者、Zilliqa透过PoW加入Committee进行PBFT共识算法。这部分比较直观的拜占庭共识演算法都有一个一同特点,就是大伙都可以看到下一个区块的Leader是哪个,与负责协议共识的Committee是哪个。这导致了一个可能的风险,就是这部分区块生产者与Committee成员容易成为DDOS或是贿赂的目的。

ALGO币为知道决这种潜在的风险,借助VRF来掩盖Leader Selection的步骤。可以想像成:普通的BFT在每一轮开始时公平公开选出Leader与Committee,ALGO币则是像在每一轮开始时公布中奖号码,每一个用户都可以自己拿我们的票根对奖,中奖的人即可成为下一轮的Leader,但在中奖者自己表明身分前,无人知晓哪个中奖,也就是无人能预测下一轮的Leader与Committee。当然中奖与否并非口说无凭,中奖者需要出示中奖证明,而这个证明是大伙都可以验证的,这正是大家刚刚说到的VRF。

2018年是公链技术爆发的一年,诞生了很多从共识方面革新的项目。因为现在大家常见觉得存在区块链“不可能三角”,这部分共识总是要在性能、安全、去中心化、勉励机制中做出取舍。比如,柚子币达成每秒数千次买卖速度是以牺牲去中心化为首要条件的。然而“不可能三角”从来没像FLP、CAP这部分分布式系统定理一样得到严谨的数学证明,因此有的人觉得打破“不可能三角”是大概的。可验证随机函数VRF被觉得是一个有前景的方向。本次为大伙带来近期热度特别高的ALGO币项目的剖析。

2、ALGO币共识算法缺点

现实环境的随机选择的空间并不大。

VRF是可以提供了公平且困难收到伪造和攻击的委员会随机选择方法,但任何随机数的生成需要依靠大的种子集合才可以有用途,在VRF中假设80%节点是诚实的,Committee需要2000个成员才够大,现实状况是不太可能有这么多成员的。

完全没考虑互联网延迟状况。

VRF Committee集合选举时依靠数目庞大的主机通讯的,主机之间相互交流导致的延迟,势必大大拖慢整个系统的处置速度。

没考虑节点的动态加入和退出状况。

ALGO币的下一个区块的发布者是从k个区块之前的所有参与者(在k区块之前的某段链上发过买卖的节点)里选。于是,恶意节点想影响下个区块的发布者,他得影响k个区块才行,当k非常大的时候,这个影响也是微乎其微。于是,ALGO币得到了一个无偏向的随机数产生器。不过,这个做法有一个问题——k区块之前的节点,大概已经不在线了。而对于这一点,虽然Micali做出知道释,但个人感觉并不符合实质状况。

签名数据庞大,导致存储浪费并影响性能。

ALGO币用VRF来确定提案组与验证组,这个方法充分发挥了VRF的可验证性优势,且后验优势使得ALGO币的共识体系更安全。但,ALGO币进入验证阶段,使用的是一种可扩展的拜占庭容错算法,即BA*算法,参与节点通过VRF秘密抽签选出。这一设计使ALGO币在验证前需要等待凭证(VRF prove)到来,才能知道参与节点。而且,因为用了可扩展的拜占庭容错算法,使得ALGO币的验证组规模需要比较大,这将致使签名数据异常庞大。依据大家的估算,在平均每组3000个验证节点的规模下,每组的签名数据长达126KB,加上其它信息,公告信息约300K,每块的签名数据可达2000*64*12=1M(共12组,每组3000人,至少2/3达成协议。ed25519签名数据长度是64。),远超通常门限签名几十个字节,紧急浪费存储和容量(因每块存储的买卖量将被占用,不存储签名又会干扰安全),不只导致存储浪费,而且更影响性能。

没办法构建非常不错的勉励机制

在POW中,提案者得到提案权需要预先付出算力本钱,若其提案区块有问题(买卖双花),则该提案区块在全网其他节点验证势必失败,从而不但没铸块收益,还付出了算力本钱。

ALGO币协议并没设计经济勉励机制,Micali教授曾回话”ALGO币协议仅需进行平凡的计算,因此无需勉励”。在没经济勉励机制下,高性能带宽和服务器势必不想参与(由于它本身要消耗成本),整个互联网会遇见互联网本身没办法解决的困难。

买断问题

在区块链的婴儿期,系统的通证价值一般较低,其市值也是处在相对较低的水平。Token的发行总是要经过私募-->基石-->公募 等逐步分散的过程,因此非常长一段时间里币是集中在少数人手里的,因此任何POS共识都面临着柚子币类似的中心化的问题。

Copyright © 2002-2021 okcoin比特币交易平台 (http://www.chinadovey.com) 网站地图 TAG标签