【问题标题】:What's the difference between Raft and Casper consensus algorithm?Raft 和 Casper 共识算法有什么区别?
【发布时间】:2020-08-22 13:14:22
【问题描述】:

Raft 是一种共识算法,许多分布式系统都使用它,Casper 共识协议包括基于权益的绑定、解绑定和下注循环,从而产生共识。

而且通常我们在区块链中使用 Casper,那么 Raft 和 Casper 共识算法有什么区别?

【问题讨论】:

    标签: consensus raft


    【解决方案1】:

    Casper 是一种专注于加密经济学的共识协议。它被设计为一种基于保证金的经济共识协议。区块链网络中的特定 bonded 验证器 节点必须在称为 bonding 的过程中放置​​保证金以生成块。它是对 Greedy Heaviest-Observed Sub-Tree (GHOST) 协议原则的改编。

    目前有两种 Casper 变体:Casper(Friendly Finality Gadget)FFG 和 Casper Correct by Construction (CBC)。 Casper FFG 将首先实施。 Casper CBC 的五个参数是验证者的名称和权重、容错阈值、共识值和估计器。验证者根据其当前状态(根据收到的消息定义)做出单独的决定。

    在 Casper 中,任何人都可以通过发布债券来参与区块生产。放置债券后,将押注文本中包含哪个区块。激励措施的设计使得对最终共识的投注有回报,而对共识的投注则有损失。所有恶意和不诚实的行为都将导致保证金被没收。

    一般意义上,Casper 是一种最终一致的共识协议。也许我们可以说它有利于活泼而不是安全。它始终可用,并且尽可能保持一致。它对不可预测的消息传递时间是稳健的,因为节点通过重新组织事务达成共识,最终收到延迟消息。它具有 50% 的最终容错率,即由 >50% 正确节点创建的分叉得分高于其余潜在故障验证器创建的任何分叉。

    随着区块链扩展到更多节点,对区块链中不同的最终确定阶段进行了有趣的比较。它由 Vlad Zamfir 在三角形图中表示,如下所示。

    虽然它最终是一致的,但它更多的是概率而非确定性。从这个意义上说,它不同于 Raft 的确定性。此外,Casper 中的验证器在理论上与 Raft 共识中涉及的复制状态机不同。验证者比简单的复制状态机拥有更多的特权。在 Raft 共识中,我们复制了引用日志的状态机。

    在 Casper 共识中调用了一个最小同步假设。这意味着节点至少每三个月上线一次,以避免他们的存款被削减,这意味着除非有三分之一的验证者积极攻击区块链,否则总会有足够的选民来保证区块链的安全。

    Casper 能够从除一个节点之外的所有节点的崩溃故障中恢复。在任何情况下,验证者从生产区块中获得的回报比从根本不生产区块中获得更高的回报。此外,似乎离线时间过长的绑定验证者将被解除绑定,随后将允许新的绑定者加入验证集。因此,Casper 可以准确地恢复它在大规模崩溃失败之前所拥有的安全保证。考虑到这种设计,Casper 很有可能比 Raft 共识实现更具崩溃容错性。

    以太坊研究论坛上有 Vitalik 对 Casper FFG 和 PBFT 的最终确定时间的比较。它说 Casper FFG 的最终确定时间将与 PBFT 完全相同,但存在一些细微差别。它假设 Casper CBC 的终结速度越来越快。请在此处参考此讨论。

    Finality Times of Casper FFG and CBC

    这个答案只是对 Casper 与 Raft 和 pBFT 等主流共识算法的比较的有趣讨论的介绍。请在此主题中找到我的参考资料以进行进一步研究。

    1. Casper Conversations in Ethereum Exchange
    2. Introduction to Casper by Vlad Zamfir
    3. Formal analysis of Casper CBC

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 2010-12-26
      • 2017-07-11
      • 2010-10-27
      • 2011-02-12
      • 2021-03-27
      • 1970-01-01
      • 2011-02-22
      相关资源
      最近更新 更多