DPOS(Delegated Proof of Share),代理权益证明共识机制,是一种 基于投票选举的共识算法,类似代议制民主。在 POS 的基础上,DPOS 将区块 生产者的角色专业化,先通过权益来选出区块生产者,然后区块生产者之间再轮 流出块。
DPOS 共识由 BitShares(比特股)社区首先提出,它与 POS 共识的主要 区别在于节点选举若干代理人,由代理人验证和记账。DPOS 相比 POS 能大幅 度提升了选举效率,在牺牲一部分去中心化特性的情况下得到性能的提升。
DPOS 共识机制不需要挖矿,也不需要全节点验证,而是由有限数量的见 证节点进行验证,因此是简单、高效的。由于验证节点数量有限,DPOS 共识被 普遍质疑过于中心化,代理记账节点的选举过程中也存在巨大的人为操作空间。
(1) EOS
EOS 系统中共有 21 个超级节点和 100 个备用节点,超级节点和备用节点 由 EOS 权益持有者选举产生。区块的生产按 21 个区块为一轮。在每轮开始的 时候会选出 21 个区块生产者。前 20 个区块生产者由系统根据网络持币用户的 投票数自动生成,最后一名区块生产者根据其得票数按概率生成。所选择的生产 者会根据从区块时间导出的伪随机数轮流生产区块。
EOS 结合了 DPOS 和 BFT(拜占庭容错算法)的特性,在区块生成后即进 入不可逆状态,因而具有良好的最终性。EOS 采用的石墨烯技术使其在理论上能够达到百万级别的 TPS,目前上线的测试网络的 TPS 达到数千量级。同时, 由于 EOS 的记账节点有严格的筛选制度,系统的安全性也很高。
DPOS 作为 POS 的变形,通过缩小选举节点的数量以减少网络压力,是一 种典型的分治策略:将所有节点分为领导者与跟随者,只有领导者之间达成共识 后才会通知跟随者。该机制能够在不增加计算资源的前提下有效减少网络压力, 在商业环境的实现中将会具有较强的应用价值。
DPOS 为了实现更高的效率而设置的代理人制度,背离了区块链世界里人 人可参与的基本精神,也是 EOS 一直被质疑的地方。
(2) Cardano
Cardano 实行的共识机制 Ouroboros 可认为是 DPOS 共识的一个变种, 而 Cardano 团队更愿意将其表述为 Dynamic POS。与 DPOS 共识的相同之处 是,只有 Cardano 的代币 ADA 持有量超过一定数量的地址(官方数据 ADA 前 2%的地址)才有资格参与区块生产者的选举,持有 ADA 越多的用户,被选为区 块生产者的概率越大。
Ouroboros协议将物理时间分为纪元(epoch),然后再将纪元划分为区块 (slot),每个纪元持续5天,每个区块持续约20s。每个纪元的区块生产者在上 一个纪元就已经选定,并在下一个纪元中随机选定某个候选人充当各个区块的生 产者,一个候选生产者可能在一个纪元中对生产多个区块。
Cardano 团队认为 Ouroboros 不同于 DPOS 之处在于,Cardano 记账 人的选举过程是完全随机的,而不是利益相关方选举而来。Ouroboros 共识算 法中引入了一种抛硬币协议(coin tossing protocol),可以保证选举过程的完全随机性。据 Cardano 团队称,Ouroboros 是目前为止唯一在数学上证明能够 达成近似纳什均衡的 POS 共识机制,但其有效性仍需实际运行效果来检验。