分布式技术原理与算法解析之分布式共识 学习笔记 (4)

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

case study:分布式记账

关键问题:如何获得记账权 以及 如何使得所有节点或服务器达成一致

具体算法:

  • PoW(Proof of Work, 工作量证明):
    • 具体步骤
      • Step1: 客户端A产生新的交易,向全网进行广播,要求记账;
      • Step2: 每个记账节点收到请求后,将交易信息放入一个区块中;
      • Step3: 每个节点通过PoW算法,计算本地区快的哈希值,尝试找到一个具有足够工作难度的工作量证明。
      • Step4: 节点D找到了一个工作量证明向全网广播,当且仅当包含在该区块中的交易都是有效且之前未存在过的,其他节点才会认同该区块的有效性
      • Step5: 其他节点接收到广播信息后,若该区块有效,接受该区块,并跟随在该区块的末尾,制造新区块延长该链条,将被接受的区块的随机哈希值视为新区块的随机哈希值。
        image.png
  • 优点:相对公平,完全去中心化,有容错机制
  • 缺点:共识达成周期长,效率低,资源消耗大
  • PoS (Proof of Stake,权益证明):由系统权益代替算力来决定区块记账权。(权益:每个节点占有货币的数量和时间。货币就是节点所获得的奖励)

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

  • 具体步骤

    • 每个节点计算自己的权益,权益最大者广播自己的区块
      image.png
  • **优点:**资源消耗低,达成共识周期短,交易服务费低

  • **缺点:**易被垄断,无法处理分叉链的情况

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

    • 原理:持币节点投票选举,选举出一些节点作为代表来记账
    • 具体步骤;
      • 受托节点去社区拉票,获取信任
      • 节点按照自己的 持币量/总币量 加权投票,选出自己的受托节点
      • 通常选出K个受托节点,权力相等,彼此根据算力进行竞争
        image.png
  • 优点:能耗更低,交易速度更快,每隔一段时间调整受托人,避免受托人造假和独权

  • 缺点: 普通节点参与投票积极性不高;一旦出现故障节点,无法及时应对
    image.png