您现在的位置是:首页 > 项目集市 > 潜力项目网站首页潜力项目

C25 | Alorgand项目介绍

  • Genesis
  • 潜力项目
  • 2018-12-03
简介Algorand是一条公有链,采用VRF以及加密抽签的机制,具有能耗低、效率高、民主化、分叉概率极低、可拓展性等优点,旨在解决现有区块链项目存在的“不可能三角”问题,成为一个真正的去中心化区块链。

Algorand是一条公有链,采用VRF以及加密抽签的机制,具有能耗低、效率高、民主化、分叉概率极低、可拓展性等优点,旨在解决现有区块链项目存在的“不可能三角”问题,成为一个真正的去中心化区块链。


项目优点:

 

1、可拓展性好


对于每一笔交易的“区块”,Algorand以安全和公平的方式随机选择一组用户。 为了保护他们免受“攻击者”的攻击,在该块被确认之前,这些用户的身份将被隐藏。 随着网络的增长,这个用户组的规模保持不变。
 

2、安全


即使是面对用户级别,协议级别和网络级别受到攻击的袭击,Algorand仍然安然无恙。


3、无算力浪费,低交易成本


使用Algorand确认交易不需要像比特币一样解决加密难题。Algorand的共识协议既能节约算力,又能节约能源,可以降低交易成本。没有繁重的工作量验证,使小规模参与者也可以进行交易。


4、无分叉,迅速且不可更改


Algorand产生分叉的概率低至,是从大爆炸到现在的估计秒数,换句话说,如果每一秒都产生一个块,那么人们就必须等待宇宙的年龄那么久的时间才可能在Algorand看到一个分叉。交易能在几秒钟内得到确认,转账资金立即可用。
 

5、去中心化,实现交易中立

 
Algorand能实现真正的去中心化。 每一项交易都是通过用户共识达成的,代表了多数人的意愿。 无论大小如何,所有交易都是平等创建和处理的。
 

6.具有不断进化的空间

 
Algorand独特的共识协议具有充足的弹性,能允许系统发展并满足社区未来的需求,无论这些变化是技术性还是货币性的,都不会出现硬性分支。
 

Algorand采用的技术

 
1. 一种新的拜占庭共识(BA: Byzantine Agreement)协议,即BA*。
2. 采用密码学抽签:BA*协议中每一轮参与投票的用户都可以证明确实是随机选取的。
3. 种子参数:选取完全无法预测的种子参数,从而保证不被敌手所影响,上一轮的种子参数会参与下一轮投票用户的生成。
4. 秘密抽签和秘密资格:所有参与共识投票的用户都是秘密地得知他们的身份,投票后他们的身份被暴露,虽然敌手可以马上腐蚀他们,但是他们发送的消息已经无法被撤回,另外在消息生成后,用于签名的一次性临时秘钥会立刻被丢弃,使得敌手在该轮无法再次生成任何合法消息。
5. 用户可替换(player-replacable):在拜占庭协议中,每个参与共识者需要投票多轮以达成共识,而在BA*中这并不可行,因为一旦投票后自己就暴露了,会被敌手腐蚀。配合密码学秘密抽签,用户会秘密知道自己有且只有参与某特定时刻的投票的资格,只要在该时刻参与投票,因为接下来投票权会转移给别人,这就使敌手的腐蚀失去了意义。
另外,诚实的用户可以是懒惰的(Lazy Honesty),一个用户不需要时刻在线,可以根据适当的条件适当在线并参与共识即可。


加密抽签


简单来说,加密抽签用密码学的方法来产生一个随机数生成器,用来决定下一个区块的提议者或验证委员会成员,这其中将使用可验证随机函数(Verifiable Random Function,简称VRF)来实现随机数的产生,VRF作为一种基于密码学的函数,在区块链领域内能带来快速共识、抗攻击性、极低算力需求这几点优势。


VRF运行机制


每一轮的选举都将会将一个种子(seed)作为VRF的输入,随后VRF将输出一段随机哈希值(作为下一轮的种子输入)以及π(π是此轮次内被抽签选中的用户证明)。这里的种子也就是哈希输入值,创世区块的种子将使用分布式随机数生成器(Distributed Random Number Generation)来产生。VRF里的随机在这里定义为:一个理想的哈希函数,其值域应该是离散的、均匀分布的,给定不同的输入值,其输出应该没有规律,随机的洒落、分布在值域区间内。因此,可以达到完全的随机性。
当然,在进行加密抽签前,Algorand将预先决定需要抽取的人数τ。第r轮的种子将会被r-1轮的VRF所决定,并且每一轮的种子以及π都会被记录到此轮次内的区块中。这里每一个轮次的种子都与上一轮的种子信息一一相关并且绑定,VRF的存在也使得恶意者对于VRF的输出无法进行预测,使他们无法预知谁将成为下一个轮次的中奖者,很大程度提高了Algorand的安全性。
 
同时,一旦Algorand在第r-1轮的区块达成一致后,全网都将知道第r轮开始时的种子。如果第r轮的区块提议过程中有恶意者的参与并且打包了一些无效交易信息,那么大部分诚实用户都会将此区块认定为空(无效)区块,在第r轮的种子(seedr= H(seedr−1 ||r ))将重新通过加密哈希函数H(可假定为随机预言机)来决定。
 
Algorand的加密抽签机制使得每一个轮次的中奖者都具备不可预测的随机性,并且拥有加密哈希函数H作为备选的随机函数方案来保障Algorand系统内的安全性以及公平性。因为在每一个轮次内仅有一个区块将会被大家所公证并且达到最终性,如在第一时间内发现此区块存在被攻击的可能性或有恶意者进行了区块提议,则此区块还未进入到验证阶段即被否定,并且重新进行区块的提议过程。这也将Algorand主链分叉的可能性大大降低,同时缩短了区块确认的时间,使得类似小额支付等应用场景在区块链上变得不再遥不可及。


区块公式流程

 

1、区块提议


所有的Algorand网络用户都可以进行加密抽签的方法来决定谁将在这一轮次内进行区块的提议,用户的账户余额将决定被选中的概率(拥有越多数量的Token将拥有更高的概率被选中),并且给予每一个被选中用户一个优先级别(priority)以及拥有此优先级的证明。在加密抽签完成后,每个人的身份都是隐秘的,用户间都不知道谁被选中。直到每个被选中的区块提议者在全网公布了他们各自的区块提议后(公布的信息内同时包含区块提议者的优先级以及优先级证明),区块提议者的身份才会暴露。整个加密抽签的过程可以类比为一个人中彩票的过程:A去彩票店买彩票,当然他花的钱越多中奖的概率也越大(Pure PoS保证了账户余额越多选中概率越高)。等到开奖的那天(加密抽签结果公布),只有A自己知道有没有中奖,所有其他买彩票的人并不知道谁中了奖(仅有区块提议者知道自己被选中)。假设A中了奖,那么在领奖的那天A带着彩票去领奖并且出示他的彩票,届时大家都将知道A获得了大奖(提议区块并且公布身份)。恶意者在此时若想再对区块提议者进行DoS攻击、合谋等都将变得毫无意义,因为一旦区块提议者公布了区块提议后他的身份将恢复为普通节点。
被提议的区块随后将在全网内进行八卦协议传播,而这些被提议的区块中拥有最高优先级的区块将作为下一轮的待定区块在全网内等待着被委员会成员公证,最终以达到共识成为下一个区块,优先级低的区块将被全网内的节点所忽略,并且不会再次被八卦协议所传播。
由于拥有最高优先级别的区块提议者(这里简称Leader,即此轮区块的成功提议者)的身份在被揭晓后,网络已经完成了区块数据的广播,即使恶意者攻击了真正的Leader也无法改变区块内的数据信息,这也很大程度上保证了Agorand的安全性。
Algorand白皮书中提到区块提议者的人数将极大概率保持在(0, 70)人的范围内,而26人将会是一个较为合理的人数。具体的人数也视全网节点数而定,在节点数增加的情况下,为了保证Algorand扩容性的同时也需要足够的人数来提供安全性。


                                           图 1 加密抽签选举示意图
 
2、委员会对区块进行公证

Algorand将会选取一定数量的委员会成员作为验证者来对最高优先级区块进行验证,选取的过程也将采用加密抽签的方式。委员会成员对此区块的真实性进行验证签名,并且公布验证结果以及抽中作为委员会成员的证明,而这些信息将通过八卦协议进行全网内传播。信息一旦发布,委员会成员的身份才被曝光并且将立即恢复到普通节点。
Algorand独特的BA*共识需要达到全网2/3的节点公证签名,区块即完成最终性。若在上述的公证过程中,全网并未达到足够人数对区块的签名,则继续下一轮的加密抽签以及上述的公证过程直至全网2/3的节点达到共识,此刻区块达到最终性。
每一轮的加密抽签选举都是随机并且自愿选举的,因此选取的委员会成员人数在每一轮也都不相同,这样使得每次的委员会成员都无法预测,降低了验证者被攻击的可能性。因为加密抽签的快速性,通过重复地进行小范围内委员会共识以及八卦协议的传播能减少带宽,并且缩短区块的出块时间。
下图展示了全网在拥有7个节点的情况下,3个委员会成员对一个区块进行公证的步骤,当然后续若想达成共识需要(7*2/3=14/3)约4.66个节点的签名公证,因此需要再重复进行加密抽签以及公证直到全网达到BA*共识。


                                                                  图 2 公证流程图
 

去中心化


虽然并不会让全网节点参与区块的提议或公证,但是加密抽签的独特机制带来的随机性使得区块提议者以及验证委员会成员完全不可预测,作为节点都拥有参与加密抽签的权利。但是,PoS共识机制无法避免的是:Token权重越高的人拥有更高概率能被选中作为区块提议者,而这会让权利都集中在Token多的人手中。Algorand考虑到了这一弊端,在此环节做了优化:相较其他PoS共识的公链,Algorand抽取多个区块提议者,给予每个人的优先级别不同,但优先级别具体的机制尚且不清。这样的设计主要也是想在PoS的机制中能尽量做到更加去中心化。
Algorand节点的参与是无需任何许可的,也并没有对接入设备拥有高要求,即任何人拥有设备都可作为节点参与记账。全网内节点之间的交流是通过八卦协议(Gossip Protocol)来完成,也就是说在区块提议阶段每一个节点都将在全网内进行交易信息的监听行为,并且收集信息装入区块。因为节点预先是不知道自己将作为下一个区块的提议者,所以每个节点要随时进行全网的监听以及信息搜集以确定自己是否成为下一个区块提议者。这种与比特币相同的全网传播机制,网络遍历时间将会被拉长,但每个节点都参与记账的同时也保证了Algorand的去中心化。
但随着后期账本数据的增多,一些普通节点的服务器内存可能负担不起庞大的数据量,而一些大型服务器可能将主宰全网的节点,使得全网去中心化的程度被削弱。据Algorand首席科学家陈婧称,节点加入Algorand网络并不需要从创世区块开始同步所有的数据,因此可以将节点设备的门槛降低。
总体来看,目前Algorand区块链去中心化程度要高于任何DPoS共识的公链以及大部分PoS共识的公链。