什么是分布式共识

分布式共识就是在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。

分布式选举问题,其实就是传统的分布式共识方法

分布式在线记账一致性问题

  • 只有一个节点有记账权
  • 其它节点同意该节点的记账结果 (达成一致)

分布式共识方法

PoW (Proof-of-Work, 工作量证明)

过程:

  • 用计算能力竞争记账权
  • 最先计算出结果的节点对数据进行广播, 其它节点验证数据后同意该节点

缺点:

  • 共识达成的周期长
  • 效率低
  • 资源消耗大

PoS (Proof-of-Stake, 权益证明)

  • 解决 PoW 问题而出现

使用 “系统权益” 代替 “算力”. 权益越大, 记账的概率越大.

所谓的权益,就是每个节点占有货币的数量和时间,而货币就是节点所获得的奖励。

在股权证明 PoS 模式下,根据你持有货币的数量和时间,给你发利息。每个币每天产生 1 币龄,比如你持有 100 个币,总共持有了 50 天,那么,你的币龄就为 5000。这个时候,如果你发现了一个 PoS 区块,你的币龄就会被减少 365。每被减少 365 币龄,你就可以从区块中获得 0.05 个币的利息 (可理解为年利率 5%)。

优点:

  • 省电
  • 每秒处理交易多

缺点:

  • 持币少的人没什么机会, 安全性差

DPoS (Delegated-Proof-of-Stake, 委托权益证明)

  • 为解决 PoS 的垄断问题而出现

DPoS 算法的原理,类似股份制公司的董事会制度,普通股民虽然拥有股权,但进不了董事会,他们可以投票选举代表(受托人)代他们做决策。DPoS 是由被社区选举的可信帐户(受托人,比如得票数排行前 101 位)来拥有记账权。

过程:

  • 选举候选节点
  • 候选节点之间使用 PoW 竞争记账权
  • 广播

优点:

  • 能耗低
  • 交易处理快
  • 一段时间调整候选节点, 避免垄断

共识算法对比

image.png

总结

image.png