区块链共识算法 |
没有哪种共识机制是完美的,各共识机制都有其优缺点,有些共识机制就是为了解决一些特定问题而生 区块链中的共识算法分为:POW、POS、DPOS、PBFT、POOL验证池 1、POW:Proof of Work,工作证明。 一句话介绍:干的越多,收益越多。 优点: 算法简单,容易实现; 节点间无需交换额外的信息即可达成共识; 破坏系统需要投入极大的成本; 缺点: 浪费能源; 区块的确认时间难以缩短; 新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击; 容易产生分叉,需要等待多个确认; 永远没有最终性,需要检查点机制来弥补最终性 2、POS:Proof of Stake,股权证明。 一句话介绍:持有越多,收益越多。 优点: 在一定程度上缩短了共识达成的时间; 相对POW,一定程度减少了数算带来的资源消耗 缺点: 还是需要挖矿,本质上没有解决商业应用的痛点; 3、DPOS:Delegated Proof of Stake,委任权益证明 去中心化表示每个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。其挑战是通过及时而高效的方法达到51%批准。为达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块(当轮到他们时,没能生成区块)。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬。网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这不太可能发生,因为制造区块的代表可以与制造前后区块的代表建立直接连接。建立这种与你之后的代表(也许也包括其后的那名代表)的直接连接是为了确保你能得到报酬。该模式可以每30秒产生一个新区块,并且在正常的网络条件下区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。 优点: 大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。 缺点: 整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。 4、PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法 PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到R-1的整数表示每一个副本。为了描述方便,假设R=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。 系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。 共识的时延大约在2~5秒钟,基本达到商用实时处理的要求。 共识效率高,可满足高频交易量的需求。 缺点: 当有1/3或以上记账人停止工作后,系统将无法提供服务; 当有1/3或以上记账人联合作恶,且所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据; 介绍一个改进的算法:delegated BFT(DBFT,授权拜占庭容错算法) 将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式; 将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点; 为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点); 在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。 优点: 专业化的记账人; 可以容忍任何类型的错误; 记账由多人协同完成,每一个区块都有最终性,不会分叉; 算法的可靠性有严格的数学证明; 缺点: 当有1/3或以上记账人停止工作后,系统将无法提供服务; 当有1/3或以上记账人联合作恶,且所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据; 总结来说,DBFT机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。 5、POOL验证池 基于传统的分布式一致性技术,加上数据验证机制。 优点: 不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。 缺点: 去中心化程度不如bictoin;更适合多方参与的多中心商业模式。 从时间上来看,这个顺序也是按该共识算法从诞生到热门的顺序来定。 至于说算法的选择,共识最好的设计是模块化,例如Notary,共识算法的选择与应用场景高度相关,可信环境使用paxos 或者raft,带许可的联盟可使用pbft ,非许可链可以是pow,pos,ripple共识等,根据对手方信任度分级,自由选择共识机制,这样才是真的最优。
欢迎订阅「K叔区块链」 - 专注于区块链技术学习 博客地址: 简书主页: segmentfault主页: 腾讯云主页 |