区块链数字货币的5种共识机制对比
ccbcity
发表于 2022-11-28 18:54:23
139
0
0
在了解共识机制之前,先来看两个古老的引入问题:类两军问题、拜占庭将军问题。
古代有两个相距很远的军队要传递信息,- v" J2 `: w) R x) Z
蓝军派遣一个信使去跟红军说:有本事把意大利炮拿过来!
红军收到后回复蓝军说:收到指令。
蓝军要给出确认答复:知道你收到指令了!
红军继续给出答复:知道你知道我知道指令了!
拜占庭将军问题:4 }& x! m; Z! D
拜占庭罗马帝国在军事行动中,采取将军投票策略来决定进攻还是撤退,即如果多数人决定进攻,就整体确定进攻策略。但是军队中如果有奸细(将军可能反水、传令官可能误传),如何保证最后投票真实反映忠诚将军的决策? S$ h3 P j) k
拜占庭帝国周围有10个小国,它们饱受拜占庭欺压,却只有同一时间有6个以上国家进攻才有可能打败拜占庭帝国,非则一定战败。
难点在于:古时候军队之间的通信完全依赖于人,如果军队中有奸细,无论是将军反水还是传令官误传,都会使另外9个国家收到假消息,从而造成作战失败。如果你是国王,该如何判断一定会有另外5个以上国家与你并肩作战?毕竟一不小心,就亡国了。
由于类似于以上这样的问题存在,共识的必要性浮现出来。. _/ e( R: K+ F; I9 o
九种共识机制比较
区块链上的共识机制有多种,但任何一种都不是完美无缺,或者说适用于所有应用场景的。" e) l0 f! @% f6 E' d! o6 q7 H
1. 工作量证明(POW)
工作量证明(Proof of Work,简称PoW)通常只能从结果证明,因为监测工作过程通常是繁琐且低效的。
比特币在区块的生成过程种使用了PoW机制,一个符合要求的区块哈希值由N个前导零构成,零的个数取决于网络的难度值。要得到合理的区块哈希值需要经过大量的尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的区块哈希值,说明该节点确实经过了大量的尝试计算,但是并不能得出计算次数,因为寻找合理的哈希值是一个概率事件。当节点拥有占全网n%的算力时,该节点既有n%的概率找到区块哈希值。
PoW依赖机器进行数学运算来获取记账权,资源消耗大、共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方便允许全网50%节点出错。
PoW的优点:完全去中心化,节点自由进出。
PoW的缺点:目前比特币已经吸引全球大部分的算力,其他再使用PoW共识机制的区块链应用很难获得相同的算力来保障自身安全;挖矿造成大量的资源浪费;共识达成的周期较长。% b$ S3 l6 T; W) K2 p2 A3 e& s3 l
使用PoW的项目有:比特币、以太坊的前三个阶段(Frontier前沿、Homestead家园、Metropolis大都会)。以太坊的第四个阶段 Serenity宁静将采用权益证明机制(POS)。
2. 权益证明(P0S)' l" Q. G9 _: u# Y5 n* E
权益证明(Proof of Stake,简称PoS)由Quantum Mechanic 2011年在比特币论坛讲座上首先提出,后经Peercoin(点点币)和NXT(未来币)以不同思路实现。
PoS的主要理念是节点记账权的获得难度与节点持有的权益成反比,相比PoW,其在一定程度上减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算,竞争获取记账权的方式,可监管性弱。该共识机制的容错性和PoW相同。它是PoW的一种升级,根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找到随机数的速度。) M3 ^( u" [% ]* f' {
在PoW中,一个用户可能拿1000美元来购买计算机,并加入网络来挖矿以此产生新区块,从而得到奖励。而在PoS中,用户可以拿1000美元购买等价的代币,并把这些代币当作押金放入PoS机制中,这样用户就有机会产生新区块而得到奖励。
总体而言,这个系统中存在一个持币人的集合,他们把手中的代币放入PoS机制中,这样他们就变成验证者。比如对区块链最前面的一个区块而言,PoS算法在验证者中随机选择一个(选择验证者的权重依据他们投入的代币量,比如一个投入押金为1W代币的验证者被选择的概率是一个投入1K代币验证者的10倍),给他权利产生下一个区块。如果在一定时间内,这个验证者没有产生一个区块,则选出第二个验证者代替产生新区块。与PoW一样,PoS以最长的链为准。) R9 o" E0 d. r4 B, _7 G, u; d$ G
随着规模经济(指扩大生产规模引起经济效益增加的现象)的消失,中心化所带来的风险减小了。价值1000万美元的代币带来的回报不多不少,是价值100万美元代币的10倍,不会有人因为负担得起大规模生产工具而得不到成比例的额外回报。
PoS的优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源去挖矿。; h5 C: m( ?9 k3 p
PoS的缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响,例如以太坊的DAO攻击事件造成以太坊硬分叉,而ETC随之出现,事实上证明了此次硬分叉的失败。3 S4 c- W6 J8 Z1 O i0 v( `
3. 股份授权证明(DPOS)1 H$ e8 @- O% y# M0 z
BitShares(比特股)社区首先提出了股份授权证明(简称DPoS)机制,它与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账,但其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,进行代理验证和记账。
DPoS的工作原理如下:每个股东按其持股比例拥有相应的影响力,51%股东投票的结果将是不可逆且有约束力的,其挑战是通过及时而高效的方法达到“51%批准”;
为了达到这个目标,每个股东可以将其投票授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每位代表分配到一个时间段来生产区块。7 W$ g2 f' T6 k9 l
所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块用100股作为交易费,一位代表将获得一股作为报酬。4 i8 R8 G3 N; ^- E1 a g$ i" L
网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这不太可能发生,因为制造该区块的代表可以与制造该区块前后的区块的代表建立直接连接。建立这种与你之后的代表(也许也包括其后的那名代表)的直接连接是为了确保你能得到报酬。2 R. u% H# C/ Z" A7 ^4 S+ b
DPoS的投票模式可以每30秒产生一个新区块,并且在正常的网络条件下,区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。执行该模式的基本步骤如下:* h+ G2 v! V3 \3 W$ q
成为代表。成为一位代表,你必须在网络上注册你的公钥,并获得一个32位的特有标识符。该标识符会被每笔交易数据的“头部”引用。
授权投票。每个钱包有一个参数设置窗口,在该窗口里用户可以选择一位或更多的代表,并将其分级。一经设定,用户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。一般情况下,用户不会创建专门以投票为目的的交易,因为那将耗费他们一笔交易费。但是在紧急情况下,某些用户可能觉得通过支付费用这一更积极的方式来改变他们的投票是值得的。7 O% V( }3 B( d' b" `! w$ T$ ?" ^; Q1 J
保持代表忠诚。每个钱包将显示一个状态指示器,让用户知道他们的代表表现如何。如果他们错过了太多的区块,那么系统将会推荐用户更换一位新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每个钱包进行更多交易前要求选出一位新代表。
抵抗攻击。在抵抗攻击上,前100位代表所获得的权利是相同的,即每位代表都有一项平等的投票权,因此,无法通过获得超过1%的选票而将权利集中到单一代表上。由于只有100位代表,不难想象一个攻击者可以对每位轮到其生产区块的代表依次进行拒绝服务攻击。幸运的是,由于每位代表的标识是其公钥而非IP地址,这种特定攻击的威胁很容易被减轻。这将使确定DDoS(分布式拒绝服务)攻击目标更为困难。而代表之间的潜在连接将使妨碍他们生产区块变得更为困难。
DPoS的优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。) {- O$ I5 V; }7 }$ Y2 i
DPoS的缺点:整个共识机制还是依赖于代币,而很多商业应用是不需要代币的。
0 ^+ y# t9 r' z' Z& W" y U- E' P* O
4. POS+POW
POS+POW双共识机制在现今区块链主流共识机制上,可以说的上是一大创新,其优势既有POW的稳定性,又有POS的确认机制的快速性。该机制的项目方也不多。目前在在能够查到的应用也只有优罗链(EULO)在使用。' W7 Q9 L% l1 j- o1 t/ T
5. 授权拜占庭容错
2016年4月,小蚁公司发布共识算法白皮书,描述了一种通用共识机制——授权拜占庭容错,提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统。授权拜占庭容错算法在使用拜占庭容错算法的基础上,进行了以下改进:3 F1 l5 g' |" f( V, m
将C/S架构的请求响应模式改进为适合P2P网络的对等节点模式;
将静态的共识参与节点改进为可动态进入、退出的共识参与节点;
为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);9 a/ V+ b3 `8 k$ L# V* p3 V
在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。9 L7 R& e1 I$ S1 g8 y, G7 n3 i
授权拜占庭容错机制的优点:专业化的记账人;可以容忍任何类型的错误;记账由多人协同完成;每一个区块都有最终性,不会分叉;算法的可靠性有严格的数字证明。
授权拜占庭容错机制的缺点:当1/3及以上的记账人停止工作后,系统将无法提供服务;当1/3及以上的记账人联合作恶,且其他所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据。
总而言之,授权拜占庭容错机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。
成为第一个吐槽的人