火星链 火星链
Ctrl+D收藏火星链
首页 > FTT > 正文

ALG:Qtum研究院:深度解析Algorand共识协议

作者:

时间:1900/1/1 0:00:00

*免责声明:该文仅代表研究人员个人观点,不代表Qtum量子链基金会立

概述

1.1引言

Algorand称其突破了”公链不可能三角“,项目创始人是图灵奖得主、MITCSAIL实验室的SilvioMicali教授。Algorand提出的共识协议是项目的一大亮点,本文主要分析Algorand共识协议的工作原理,并分析其优缺点。

1.2Algorand设计的初衷

Algorand想解决的核心问题是:去中心化网络中低延时和高置信度之间的矛盾。

其中,延时指从发起交易到确认交易所需要的时间;置信度指的是发出的交易不会再被更改的概率。

在比特币网络中,为了提高交易的置信度,用户必须等待6个区块确认的确认延时;而如果选择低延时,比如少于6个确认,甚至是0确认,则必然导致低置信度,增加“双花”攻击的可能。双花问题是绝大多数加密数字货币的核心问题。比特币中采用PoW共识来解决,但链本身仍然有分叉的可能,并且需要较长的共识达成过程和确认时间。

同时Algorand还想解决比特币中PoW挖矿耗费巨大资源、交易确认时间长、易分叉、网络呈中心化趋势,可扩展性差等问题。

1.3Algorand是什么?

根据官方描述,Algorand是一个采用permissionless的纯PoS共识的公链项目,结合改进的拜占庭共识协议,可实现快速的交易确认,几乎不会分叉,并且用户数可无限扩展,不会影响交易确认速度。同时兼顾“可扩展、安全性、去中心化”这个“公链不可能三角”。

可扩展性:Algorand通过可验证随机函数随机选择区块的生产者和验证者,一旦得知被选中,生产者或验证者只需广播一个简短的消息即可证明自己的身份。每产生一个新区块在网络中需要交换的消息不会随着用户数的增大而改变,,因此即使用户规模增大,系统仍可保持较高的TPS。Algorand的TPS是比特币的125倍。

安全性:由于采用了上述的VRF随机选取生产者和验证者,并且选取的过程完全由节点独立完成,因此Algorand网络中的攻击者无法预先得知下一个区块生产者和验证者,从而也就无法完成攻击。具体来说,生产者和验证者的身份只有在他们确定自己被选中并广播对应的证明信息时才会被披露,这时攻击者即使立刻采取各种攻击手段,也无法阻止关于新区块的正确消息在网络中的传播。

去中心化:Algorand中每一轮的区块生产者和验证者都是随机选取的,并且加入网络没有任何门槛,因此是完全去中心化的。

下面详细介绍Algorand的共识协议。

Algorand协议详述

几乎所有公链项目的区块产生和共识的过程都可以抽象为两个步骤:

Qtum承诺将为其新DeFi发展基金提供500万美元资金:金色财经报道,Qtum宣布将向其新DeFi发展基金分配500万美元资金。Qtum基金会最初为该基金分配了100万美元,但Qtum创始人Patrick Dai表示,最终可能会分配多达500万美元给DeFi开发人员,该基金专为有兴趣创建可扩展的去中心化金融应用程序的独立开发人员和团队而设计。去年8月消息,Qtum推出100万美元DeFi开发者支持计划。[2021/6/24 0:04:18]

选择出区块生产者,生成新区块

其他节点对新区块达成共识

以上步骤周而复始,最终形成一条“不可篡改”的区块链。

整个共识过程虽然简单,但在实际实现中,必须解决几个关键问题:

如何选择区块生产者,且保证公平和不可被预测?

如何对新区块达成共识?

如何避免分叉?

如何提高安全性?

如何扩展到更大规模的用户?

比特币采用哈希函数的随机性来确保公平,采用工作量证明达成共识,同时能够在一定程度上抵抗算力攻击。然而比特币仍然面临上述消耗计算资源、确认时间长、易分叉以及扩展性差等问题。以Qtum为代表的采用纯权益证明共识机制的项目,同样采用了哈希函数,并且不需要消耗大量的计算资源,然而仍然面临易分叉、安全性及扩展性的问题。

Algorand提出了一种新的共识机制解决上述5个问题。

2.1基础知识

正式介绍Algorand共识协议之前,本文假设读者基本了解以下名词的含义:

哈希函数

公钥/私钥

数字签名

交易

区块

账本

共识

拜占庭协议

诚实节点

攻击节点

P2P通信

如果读者对上述概念不理解,请先搜索相关关键词进一步了解,再阅读以下内容。

2.2Algorand的基本过程

Algorand协议可以按照时间顺序划分为不同轮次,每一轮都会达成共识并生成新区块。其典型的通用过程如下:

每一轮共识开始时,随机选出潜在的leaders,各自生成新区块,对新区块进行签名和广播

随机选出验证组,对leaders广播的新区块进行验证,达成共识后广播确认新区块,进入下一轮

接下来具体讨论Algorand共识协议细节,本节主要参考。

2.3保证Algorand的随机性:可验证随机函数

Qtum量子链基金会注资1000万美元成立风险投资基金:Qtum量子链公众号消息,Qtum量子链基金会日前成立了一只专注于新兴区块链项目的风险投资基金Qtum VC,目前该基金已得到1000万美元注资。基金管理者Antonio Saaranen说:“我们的初始资金是1000万美元。我们也非常欢迎加密世界里类似的机构来与我们进行合作。我们不会对投资项目设定背景条件,任何项目想要在任何区块链生态上进行建设都有机会得到我们的支持。”

Qtum量子链目前支持着一系列Dapp、智能合约、DeFi、NFT等应用。Qtum VC也将重点关注这些方向的初创项目。此外,Qtum VC还将开拓绿色区块链、Layer 0、Layer 2等方面的机会。[2021/5/8 21:37:05]

Algorand利用VRF来选择区块生产者和验证者,保证所有共识参与者都是随机地、公平地被选出的。可验证随机函数是由Micali教授等提出的一种伪随机函数,和普通的随机函数一样,对于不同输入,其输出也具有随机性。其独特之处在于调用者可以提供一个证明,表明这个随机输出确实由该调用者产生。

VRF可以有多种实现方式,Micali等人在其原始论文中提供了一种较复杂的实现方式。Algorand利用哈希函数和数字签名的特性,提供了一种较为简单的VRF实现。具体实现方式是调用者i将输入m通过数字签名和哈希函数映射为固定长度的输出H,即m->H。

对于任何输入m,不同的调用者i生成的数字签名SIGi(m)都是唯一的;而对于不同输入,哈希函数H的输出具有随机性,因此上述映射符合VRF的”随机性“要求。同时,由于i的数字签名SIGi(m)可通过其公钥对其身份进行验证,因此其也符合VRF”可验证“的特性,SIGi(m)就是VRF中提到的”证明“。

这个函数特别适合在所有节点中随机选择出共识的参与者,下面具体讨论。

2.3.1随机选出每一轮的区块生产者

每一轮共识开始时,每个节点都可以通过以下VRF独立地验证自己是否是潜在的leader:

.H<=1/SIZE(PK(r-k))

其中,H是哈希运算;SIG是签名运算;r是目前的轮次;Q(r-1)为与r-1轮的种子;SIZE(PK(r-k))是在r-k轮所有符合要求的公钥的数量;公式开始的.表示将哈希结果转化为小数位,从而保证结果为[0,1)的某个值。

节点通过自己的私钥计算上面签名的哈希值是否符合要求,从而知道自己是否属于候选的leader,在此过程中无需和其他节点交换信息。由于哈希函数输出的随机性,可以认为符合要求的候选节点都是随机选出的。候选节点随后可以生成新区块,并向全网提供签名证实自己的身份。如果有多个候选leader,最终上述哈希值最小的leader将在后续的共识中成为本轮最终的leader。Leader产生的区块Br包含了本轮的所有交易和上述的证明信息,由验证组成员进行共识验证。

火币BAT、QTUM和CRV永续合约已正式上线:据火币官方消息,火币BAT(BasicAttentionToken)、QTUM(Qtum)和CRV(Curve)永续合约已于新加坡时间8月24日16点正式上线。用户现可在平台进行划转、交易等操作。

据悉,在此三大币种上线前,火币合约已向其永续合约风险准备金余额中分别注入240,000个BAT、24,000个QTUM和19,000个CRV。

此次三大热门币同时上线后,火币永续合约已覆盖了包括LINK、COMP、LEND等14个热门优质DeFi资产在内的共计四十三大主流币种,支持用户在Web端、API端和APP端操作,最高125x倍数。其中BTC、ETH、LTC支持实时结算功能,已实现盈利部分(扣除

掉浮动亏损和占用保证金等)可随时提取。详情请查看火币合约官网公告。[2020/8/26]

2.3.2随机选出每一轮每一阶段的验证组

验证组成员的选择与上述过程类似,在每一轮和每一阶段,所有节点都可以独立验证自己是否属于验证组成员:

.H<=n/SIZE(PK(r-k))

其中s为本轮所处的不同阶段,Algorand在每一轮的各个阶段都有不同的验证组,从而进一步保证安全性;n为预期的验证组成员数量,可以人为设定;其他参数含义不再重复。

与候选leader一样,每一阶段的验证组成员均随机选出,验证节点在证实自己身份后,可以开始参与共识验证过程,揭露自己的签名即可证明其身份。

2.3.3引入权益证明机制

上述的随机选择过程没有考虑Token持有者的权重,恶意节点可能通过大量生成有效私钥从而有极大概率成为区块的生产者和验证者。Algorand在其公布的实现建议中引入了名为HonestMajorityofMoney的条件假设,其基本思想来源于PoS共识机制,即在上述随机选择过程中引入代币持有量作为权重,持有量多的节点被选中的概率较高,而代币持有者往往更倾向于保护网络的安全性。具体可以表示为如下公式:

.H<=(a(i,r)/M)*(1/SIZE(PK(r-k)))

其中,a(i,r)/M为节点所持有的币的数量占代币总数M的权重。其余过程与前面描述一直。

2.4Algorand如何对新区块达成共识:改进的拜占庭协议BA*

Algorand中验证者对新区块达成共识的过程,实际上是一种改进的拜占庭协议,Algorand称其为BA*。

BA*由一种改进的二元拜占庭协议和分级共识协议组合而成。

2.4.1改进的二元拜占庭协议BBA*

Algorand引入的BBA*是一个改进的二元拜占庭协议。BBA*可以在诚实节点超过?的情况下,快速达成共识。其具体过程是一个3步循环,循环中每一步都有?的概率达成共识。

Qtum量子链帅初:区块链作为技术变革和组织理念变革的结合体 很难被大众理解:Qtum量子链创始人帅初今日在全球第一区块链社群 “三点钟区块链”中说,2014年之前,在这个行业里面基本上没有区块链的说法,从2009年至2014年,行业从业者使用的都是比特币或者加密货币的名词,2014年以后,由于“币” 具备很强的金融属性,很难与主流社会融合,因此行业慢慢使用区块链技术(Blockchain Technology)来抽象出加密货币背后所使用的技术集合,作为一个中性词汇,开始慢慢走入主流视野。

区块链网络本身是一套复杂的软件系统和软件工程,所采用的数学原理,密码学原理,网络架构,共识机制,经济学模型,如果没有经过高等教育理工科背景的培养,是难以理解的。[2018/2/19]

节点之间需要进行P2P通信,假设被选中的验证节点中有t个恶意节点,验证组总的节点数为n>=3t1,即恶意节点不超过?。协议过程如下:

上述协议中各符号的具体含义可参考。所有验证节点i都有一个初始值bi,协议开始时,每个验证节点都会向其他验证节点发送各自的初始值,

协议第一步是归0过程:

如果某验证节点i收到0的总数超过总验证节点数的?,输出共识结果为0,共识结束,不再执行后面所有步骤

如果某验证节点i收到1的总数超过总验证节点数的?,则该验证节点把自己的bi设为1

如果收到的0或1都没超过?,则验证节点把自己的bi设为0

第一步结束节点再次向其他节点发送各自的bi

第二步为归1过程:

如果某验证节点i收到1的总数超过总验证节点数的?,输出共识结果为1,共识结束,不再执行后面所有步骤

如果某验证节点i收到0的总数超过总验证节点数的?,则该验证节点把自己的bi设为0

如果收到的0或1都没超过?,则验证节点把自己的bi设为1

第二步结束节点再次向其他节点发送各自的bi

第三步为重新设定初始值的过程:

如果某验证节点i收到0的总数超过总验证节点数的?,设定bi=0

如果某验证节点i收到1的总数超过总验证节点数的?,设定bi=1

如果收到的0或1都没超过?,则每个验证节点会对某个和本轮本阶段相关的信息进行签名,并对签名求哈希。bi被设置为这些哈希值中最小哈希的最低有效位

之后返回第一步,直到达成共识

在Algorand中,BBA*的结果是对是否接受某个区块达成共识,共识结果只有接受或拒绝两种情况。

2.4.2分级共识协议GC

上述BBA*只适用于二元情况,当需要对任意值达成共识,需要引入分级共识协议,将任意值问题转化为二元问题:

QTUM惨遭放弃:KRYPTONITE1最近宣布了一些投资组合更新,处置了Qtum项目的代币转而投资NEO。该公司首席执行官George McDonaugh称,Qtum令牌必须在第三方交易所保留好几个月,直到项目平台全面启动,这暴露了交易对手和监管风险。该公司董事认为,NEO项目的智能合约技术具有一系列令人信服的特性,可以使其成为全球区块链生态系统的重要参与者。[2017/12/22]

Algorand采用的GC分为两步,协议开始时,每个验证节点i各自都有一个初始值vi:

第一步,所有验证节点将各自的vi发给其他所有验证节点;

第二步,对于某个x值,当且仅当节点收到其他验证节点发来该x值的总次数超过总验证节点数的?时,这个节点会对其它节点发送值x:

经过GC,每个节点都会输出一个值对(vi,gi),输出规则:

当收到x的总次数超过总验证节点数的?时,设定vi=x,gi=2;

当收到x的总次数超过总验证节点数的?时,设定vi=x,gi=1;

否则,设定vi=空,gi=0;

简单来说,分级共识的作用是从多个可能的候选新区块中选择被大多数认可的一个作为最终候选的区块,再通过上面的BBA*最终达成共识。

2.4.3BA*=GCBBA*

改进的拜占庭协议BA*结合了上述GC和BBA*,先通过GC把任意值问题转化为二元问题,再利用BBA*达成快速二元拜占庭共识,从而可以快速对任意值达成共识,其共识过程如下:

BA*的第一步,和第二步,所有验证节点i执行2.4.2中分级共识GC,各自得到一个关于新区块的数值对(vi,gi),其中vi为验证节点i认为的候选区块哈希,gi=0或1或2。

第三步,所有验证节点根据各自的(vi,gi)设定BBA*的初始值,如果gi=2,则设定初始值为0,如果gi=0或1,则设定初始值为1。之后进行2.4.1中的BBA*共识过程:

若共识结果为0,则最终输出结果为vi

若共识结果为1,则最终输出结果为空

无论哪种情况,BA*都可以在验证节点中达成共识,从而确定新区块及其包含的交易。

2.5Algorand区块链分叉的可能性

Algorand实际采用的是经典拜占庭共识的升级版BA*,它和以比特币为代表的中本聪共识的最大区别在于分叉的可能性。后者由于完全去中心化,节点之间无法完全通信,因此可能仅在部分节点间达成共识,容易发生分叉。

Algorand可以通过设定最大可接受的错误概率F调整分叉的概率。在Algorand提供的两种实现中,其分叉概率分别为10^-12和10^-18,在现实中分叉仅存在理论上的可能。为给读者一个直观概念,假设Algorand每秒生成一个区块,10^-18的概率意味着从宇宙大爆炸至今的时间内,只有可能发生一次分叉,可见其概率极低。

即使真的发生分叉,Algorand仍可以从分叉中恢复:

Algorand遵守中本聪共识中的最长链法则

如果有多条最长链,则选择包含非空区块的最长链

如果仍相同,则可以具体根据区块哈希值进行排序选择

2.6Algorand如何保证安全性

上述的共识算法在理想情况下可以实现去中心化环境下较快速的拜占庭共识,数字签名和VRF本身的安全性也对系统安全提供了基本的保障。除此之外,Algorand还引入了以下机制,进一步提升安全性:

种子Q(r)

Algorand中的随机性主要靠VRF保证,每轮随机的选出leader及验证组。一个比较直接的想法是把上一区块B(r-1)作为随机函数的输入。但这种方法将给恶意节点带来一定的优势:因为区块和其包含的交易高度相关,恶意节点可以通过调整区块中包含的交易集,获得多个输出,并选择对其最有利的交易集产生新区块,从而提高自己在下一轮中成为leader或验证组的概率。

为解决这一问题,Algorand引入了一个随机的、不断更新的种子参数Q(r),Q(r)与交易集本身相互独立,因此恶意节点无法通过调整交易集而获利。

当区块非空时,Q(r)=H(SIG(Q(r-1),r)

当区块为空时,Q(r)=H(Q(r-1),r)

可以看出,Q(r)在每一轮都发生变化,且与交易本身无关。可以证明,当Q(r-1)是随机的,则Q(r)也是随机的。因此恶意节点无法通过改变交易集影响下一个种子的生成。其中,Q(1)的定义没有在相关文献中找到。

回溯系数k

种子参数降低了恶意节点预测leader的可能性,但拥有多个潜在leader的恶意节点仍可以有比普通节点更高的概率成为下一个区块的leader,但这个概率会随着区块的变多而逐渐变小。因此,Algorand引入了一个回溯系数k,第r轮的候选组只从r-k轮已存在的候选组中选取,恶意节点在r-k轮能够影响第r轮候选组的概率极低。

一次性公钥

上一节中提到,Algorand从协议层面的分叉仅在理论上可能发生。在实际中,如果恶意节点可以挟持其他节点,仍可以在验证组被公开的瞬间,强制这些节点重新签名新的区块,从而产生短暂的分叉。Algorand引入了一种一次性公钥的机制,以杜绝这种可能性。

具体原理是所有节点在加入Algorand网络时,都生成足够多的一次性公钥,并公布。这些公钥将用作后续所有轮次的签名验证,并且每个公钥只使用一次,一旦被使用后就销毁。一次性公钥的生成过程需要一定的时间,在Algorand的典型实现中,每个新节点需要约1小时来生成未来10^6轮的所有公钥。虽然这增加了节点加入时的门槛,但可以从根本上杜绝上述分叉攻击:因为一旦签名完成,公钥即被销毁,即使被恶意节点劫持,也无法再次签名产生分叉。

2.7Algorand的可扩展性

对于目前大多数去中心化区块链,如比特币,以太坊以及Qtum等,可扩展性的主要瓶颈在于所有链上计算都要进行全网验证,而达成全网共识往往需要一定的时间。Algorand采用PoSVRF机制进行随机选择区块生产者和验证者,无论网络中有多少节点,每一轮都只需要在少数节点上进行验证,大大提高了共识速度,提高可扩展性。同时,Algorand还采用了改进的拜占庭共识BA*,该协议可以减少共识节点之间的通信量,从而进一步提高共识速度。

此前Algorand发布了其性能测试数据,结果表明,在1000台EC2服务器、500,000用户场景下,Algorand网络确认时间稳定为1分钟,吞吐量约为比特币网络的125倍。且吞吐量不会随着节点数的变多而明显下降。

Algorand的优缺点

通过上述分析,Algorand基本解决了第2节开头提出的一系列问题:

通过PoS和可验证随机函数实现区块生产者和验证者的选择

通过改进的拜占庭共识BA*对新产生的区块达成共识

通过一定的参数设计,从数学上将分叉的概率降至极低值

引入种子参数,回溯系数以及一次性公钥等机制进一步增强安全性

每一轮都只进行局部验证,并通过减少节点间通信量进一步提升系统的吞吐量,提高可扩展性

Algorand在可扩展性,安全性和去中心化程度三个方面达到了一个很好的均衡,但这不意味着其真的打破了所谓的”不可能三角“。

可扩展性方面:本质上还是通过较少的验证节点对所有交易进行验证,当网络中全节点变多时,只能保证性能不下降太多,不是真正意义上的可扩展。另外,每一轮验证节点之间的通信依赖于所处的网络状态,网络不稳定将导致共识时间变长,影响TPS。官方称Algorand在Permissinoed环境下将有更好的性能,原因可能在于Permissionless环境下节点所处环境有太多不确定性,会在一定程度上影响可扩展性。

安全性方面:Algorand本质上采用的还是拜占庭共识,恶意节点不能超过?,而比特币可以在恶意节点数小于?的情况下保证安全。

去中心化方面:Algorand采用PoS共识和VRF决定区块生产者和验证者,拥有较多代币的节点在PoS过程中被选中的概率较高,且Staking奖励向大户集中,有一定的中心化趋势;而VRF选举机制的引入让链上计算只由部分节点进行验证,损失了去中心化系统全网验证的特性。

此外,Algorand的主网刚刚发布,此前所有结果均是理想环境下的数据,且部分代码未开源,虚拟机相关设计也暂未提及,其实现的复杂度、稳定性和实际性能还有待时间的检验。

总结

Algorand通过创新共识协议设计,同时实现了较高的可扩展性,较好的安全性和一定程度的去中心化,并且所有结论都有较为严格的数学证明,是一种较为创新和严谨的共识机制,目前较适用于有一定准入门槛的去中心化、高吞吐量加密数字货币项目。

参考文献

https://algorandcom.cdn.prismic.io/algorandcom/a26acb80-b80c-46ff-a1ab-a8121f74f3a3_p51-gilad.pdf

https://www.algorand.com/what-we-do/technology/core-blockchain-innovation

S.Micali,M.RabinandS.Vadhan.VerifiableRandomFunctions.40thFoundationsofComputerScience(FOCS),NewYork,Oct1999.

https://algorandcom.cdn.prismic.io/algorandcom/ece77f38-75b3-44de-bc7f-805f0e53a8d9_theoretical.pdf

https://algorandcom.cdn.prismic.io/algorandcom/218ddd09-8d6f-42f7-9db9-5cfbc0aedbe5_algorand_agreement.pdf

https://www.algorand.com/resources/blog/the-borderless-economy-is-here

https://www.odaily.com/post/5134308

https://www.algorand.com/what-we-do/technology/scalability/

https://www.algorand.com/what-we-do/technology/security/

https://www.algorand.com/what-we-do/technology/permissionless-blockchain/

标签:ANDRANALGOALGTigSwapCandyTRANSPARENT价格AlgoVestalgorand币种

FTT热门资讯
比特币:2019年币圈残酷物语与生存指南

币圈一天,人间一年。其他行业需要10年搞定的事情,币圈一年全发生了。从2018年初的完全蛮荒,黑暗森林,万马奔腾;到2018年末的冰封寒冬,死伤成堆,再到2019年暖春解冻,存量竞争,增量不足,

1900/1/1 0:00:00
NCE:Binance上市Cocos-BCX(COCOS)

亲爱的用户:Binance将于2019年08月21日19:00上线Cocos-BCX,并开通COCOS/BNB、COCOS/BTC、COCOS/USDT交易市场.

1900/1/1 0:00:00
BAN:【8/19LBK空投】对持有LBK空投BFC的数据公示

尊敬的LBank用户:???LBank于8月17日开启“持有LBK空投BFC”的相关奖励活动,在8月17日16:00-8月22日16:00期间的5天里对持有超过50.

1900/1/1 0:00:00
比特币价格:比特币与黄金相关性研究

OverView概述观点一比特币不是一种避险资产;相反,它是一种拥有贮藏价值且具有强不确定性的投机性资产。观点二在日线级别,比特币和黄金并无相关性,但却和活跃地址数呈中度正相关.

1900/1/1 0:00:00
tron:比特币目前的价格走势类似于2017年的抛物线前期 | Fun Twitter

2019年伊始,金色财经推出全新栏目:FunTwitter。推特是海外加密世界意见领袖们发表言论的重要场所。金色财经将为您收集每日加密世界中的海外意见领袖与知名媒体在推特上的有趣推文.

1900/1/1 0:00:00
VOL:「专访」涡轮网络开辟硬盘挖矿新世界

分享时间:2019年8月15日21:00分享主题:超越波场之路,涡轮网络VOL正在前行!微信社群:羊驼区块链VIP学习群主持人:邹文佳分享嘉宾:陈志强,涡轮网络VOL创始人.

1900/1/1 0:00:00