什么是分布式共识
分布式共识就是在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。
分布式选举问题,其实就是传统的分布式共识方法
分布式在线记账一致性问题
- 只有一个节点有记账权
- 其它节点同意该节点的记账结果 (达成一致)
分布式共识方法
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 竞争记账权
- 广播
优点:
- 能耗低
- 交易处理快
- 一段时间调整候选节点, 避免垄断