在之前的文章中,我曾科普过区块链各主流共识算法解析。
区块链中最重要的便是共识算法,比特币使用的是POW(Proof of Work,工作量证明),以太币使用的POS(Proof of Stake,股权证明)的存在主要是从经济学上的考虑和创新,并使得算理便的不怎么重要了。因为专业矿机和矿工,并且大量算力集中在中国,而今POS的变体DPOS(DelegatedProof of Stake,股份授权证明)进一步削减算力的浪费,同时也加强了区块链的安全性。对于货币体系的许可链、联盟链或者私有链而言,绝对信任的节点,PBFT、DBFT成为首选。
以下是主流比种采用的共识算法:
POW:Proof ofWork,工作量证明。
比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。
它的优点是:
1)算法简单,容易实现;
2)节点间无需交换额外的信息即可达成共识;
3)破坏系统需要投入极大的成本;
它的缺点是:
1)浪费能源;
2)区块的确认时间难以缩短;
3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;
4)容易产生分叉,需要等待多个确认;
5)永远没有最终性,需要检查点机制来弥补最终性;
POS:Proof of Stake,股权证明。
POS:也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。 简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 = 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。
优点是不像Pow那么费电,它的缺点是:
1)没有专业化,拥有权益的参与者未必希望参与记账;
2)容易产生分叉,需要等待多个确认;
3)永远没有最终性,需要检查点机制来弥补最终性;
DPOS:Delegated Proof of Stake,委任权益证明
比特股的DPoS机制,中文名叫做股份授权证明机制(又称受托人机制),它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心比特币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。DPoS优点是在PoS的基础上,将记账人的角色专业化,先通过权益来选出记账人,然后记账人之间再轮流记账。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的
PBFT:PracticalByzantine Fault Tolerance,实用拜占庭容错算法
什么是拜占庭将军问题:拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。
拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。很多经典算法问题只有在n ≥ 3t+1时才有解,如拜占庭将军问题,其中n是系统中进程的总数。
拜占庭容错能够容纳将近1/3的错误节点误差,IBM创建的Hyperledger就是使用了该算法作为共识算法。
DBFT:Delegated Byzantine Fault Tolerance,改进实用拜占庭容错算法
是一种通用的共识机制模块,提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统。
DBFT主要做了以下改进:
1)将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;
2)将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;
3)为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);
4)在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题;
DBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识,这种方式的优点是:
1)专业化的记账人;
2)可以容忍任何类型的错误;
3)记账由多人协同完成,每一个区块都有最终性,不会分叉;
4)算法的可靠性有严格的数学证明;
缺点:
1)当有1/3或以上记账人停止工作后,系统将无法提供服务;
2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;
其中目前最火热的应该就是EOS采用的DPOS算法,但是EOS算法过于中心化,催生一些列腐败问题,最后形成超级节点集中利益。
在对于EOS的看法中,长江商学院曹辉宁有很多真知灼见,面对强大的利益集团,发表了文章揭露其中的种种问题,并创新性的提出了RPOW算法(基于身份的全新共识算法),其中有很多亮点,不妨我们深入了解一下。
RPOW算法(基于身份的全新共识算法)
1
RPOW将通行证主账户信息与可验证随机函数结合使用来生成一个可验证的随机数,这样能够很大程度地抵御黑客攻击;
2
随后可以将个性化随机数和一个公共随机数转换成预定的加权系统,以便根据随机数分配哈希难度。这样挖矿节点将减少,降低能耗;
3
此外,RPOW中调整了挖矿权重。挖矿与早期的成功案例相反,从而使算力在长期内相关性大大降低,达到真正的均等和去中心化。简单来说如果你以前从未挖过矿,那么你将有很大的概率获得下一次的挖矿权,避免了挖矿权的集中,避免了51%攻击。
通过这种方法,RPOW可以将每秒的交易速度提高到数千倍,并降低能耗。同时通过个人通行证进行分片分层,利用全链通行证加快主链子链、子链子链的信息交流,扩大规模。目前EOS的DPOS算法可以达到同样的速度,但牺牲去中心化的DPOS很容易被破坏,且容易受到黑客的攻击。
RPOW建立在Usechain身份映射系统之上,在传统技术框架之外,用身份赋能技术,是共识算法一次新的创新,让区块链能够实现中本聪的愿景,为社区服务。
Usechain首创性地以身份镜像协议MirrorIdentity Protocol(MIP)为基石,并结合多层次技术与设计创新,突破区块链发展瓶颈,为未来虚拟平行世界提供技术基础设施。构建面向未来的全新技术架构身份链系统,建立更广泛的去中心化应用,为如金融、支付、保险、消费、文化传媒、慈善公益、社会管理等各个行业的去中心化应用探索提供底层技术支持,赋能身份,为普通大众提供简洁、便利、实时的链上华尔街金融服务。
今年6月Usechain已经上线,我们期待Usechain未来能真正为区块链世界带来改变。
领取专属 10元无门槛券
私享最新 技术干货