传统的区块链共识算法总体上可以分为三类:基于工作量证明的PoW,基于权益证明的PoS和拜占庭容错(BA)算法。通俗来说,PoW就是比拼算力的强弱,PoS就是比拼余额的多少,而拜占庭容错算法是一种分布式系统中常用的状态机副本复制算法,用于同步各个节点的状态和数据,确保最终一致性。
共识算法的核心问题,就是解决安全、性能和规模的问题。而这三个方面又是不能同时满足的。对于PoW,满足安全和规模要求,但性能上,表现为运算开销大,从而造成整体吞吐量低;PoS性能和规模的要求,但在安全性上存在不足;BA算法的代表之一,pBFT满足安全和性能的的要求,但不能适应大规模网络节点环境,当节点规模增大时,网络开销问题就会变得非常突出。
比特币在区块的生成过程中使用了PoW机制。要得到满足条件的结果需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当节点计算出满足条件的结果,说明该节点确实经过了大量的尝试计算,但不能推论出计算次数的绝对值,因为寻找结果本身是一个概率事件,但计算出结果的概率与算力是成正比的,也即当节点拥有占全网50%的算力时,该节点即有50%的概率找到结果。
PoS就是“股权证明”,即直接证明你持有的份额。通常意义上的PoS共识算法是没有挖矿过程的,初始的股权分配已经固定,之后只是股权在交易者之中流转,非常类似于现实世界的股票。股权从创世区块中流出,被交易者买卖而逐渐分散化。。在现实世界中股权证明很普遍,最简单的就是股票。股票是用来记录股权的证明,同时代表着投票权和收益权。股票被创造出来以后,除了增发外,不能增加股权数量,要获得股票只能转让。PoS的新增机制是“利息”,即持有一定的PoS币一定时间,将获得一定量的固定“利息”,这部分“利息”是新增的PoS币。如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000.
pBFT(Practical Byzantine Fault Tolerance),实用拜占庭容错算法,是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。
为了克服上述经典的算法的不足,工业界和学术界提出了各种各样的共识算法,但究其本质,大都是以上述算法为基础进行的扩展和组合。大家熟知的DPoS,这里的D就是代理或代表的意思,类似于将分散的节点投票权集中托管给少部分节点,由它们来进行集中统一的共识。DPoS极大的提高了共识的性能,并且能适应更大规模网络节点的要求,但在安全性上存在严重不足,因为这些节点客观上形成了单点故障。在学术界比较知名的 Algorand共识算法,就是将拜占庭容错算法, 可验证随机函数和PoS进行组合而成,以期获得更高的性能和安全性,并且在大规模网络节点下也能达到良好的容错性和高性能共识。
绿色区块链的共识有三种类型:链外数据上链共识,链内资产交易共识和跨链资产交易共识。
链外数据上链共识,即对采集到的环境数据,使用根据方法学和标准化流程形成的智能合约进行数据的共识验证,确权后上链成为有效的环境资产。对于跨链共识,分为绿色区块链各子链之间的共识和绿色区块链与其它区块链系统之间的共识。
对于上链数据的共识,要解决的核心问题即是如何确保验证流程的标准化,即根据方法学的理论和标准化体系来实施,从而将链外线下的验证过程计算化、合约化、自动化。我们采用DPoD算法(Delegate Proof of DOE),即将链外的第三方核准认定机构验证方法和流程合约化,由绿色验证节点集群运行DPoD共识算法来对环境数据进行验证和共识;链上交易采用PoWS共识算法,它是一种结合PoW和PoS的混合型共识算法,兼顾算力、安全性和效率。对于普通用户,特别是移动端用户,PoWS算法也可以帮助其减少对算力的依赖和能量的消耗,提高普通用户参与的积极性,随着普通用户积累的上链资产越多,其共识话语权也会越大,积极性也会越高,形成良性循环。
链外数据上链和链上资产交易共识算法,共同构成了全新的共识引擎 - Distributed Adaptive Consensus Engine (DACE),以实现分场景共识、多种共识算法整合、满足不同的需求、调动不同用户的积极性的目的。
绿色区块链的DACE共识框架主要的亮点主要体现在:
1、绿色节能
共识过程没有复杂运算,对参与节点的性能要求低,实现高效绿色共识。
2、参数可调节
自动收集当前网络情况,动态调整相关参数,获得最优的系统效率,提升系统整体性能。
3、兼容多种网络结构
对于传统的链结构和DAG结构都有很强的适应性。
同时DACE共识框架在安全性也具有良好的表现。对于女巫攻击,根据参与共识的用户所持有的通证价值,为其分配权重,组合使用多次局域随机采样逐步特征覆盖,只要女巫结点拥有的总通证值少于总价值的一半,算法对女巫攻击就具有绝对的抵抗和免疫力,避免分叉和双花。
对于共识过程中的节点随机选择,使用随机可计算函数,用户根据其私钥计算得知其是否被选择中,并将结果反馈和广播给其它用户,这种随机选择的过程是非交互的,攻击者无法提前知道哪些节点被选择。在每一轮的共识过程中,被选择中的节点都是随机和不同的,这也增加了攻击的代价和成本。