【问题标题】:How to implement Byzantine Single-decree Paxos?如何实现拜占庭单法令 Paxos?
【发布时间】:2022-11-01 10:56:29
【问题描述】:

我已经实现了 Single-decree Paxos,并在 Monte Carlo 网络模拟器中证明了它不会失败。我关注了“Paxos 变得简单”http://lamport.azurewebsites.net/pubs/paxos-simple.pdf

我读过:卡斯特罗,米格尔; Liskov,Barbara(1999 年 2 月)。 《实用拜占庭容错》http://pmg.csail.mit.edu/papers/osdi99.pdf

据我了解,该论文描述了一个拜占庭-Paxos 算法。它包括复杂性,我希望我不需要单一法令用例,例如视图和领导者。

将 Single-decree Paxos 协议转换为拜占庭 Single-decree Paxos 协议需要什么?

即在消息中添加公钥签名并等待f+1 接受者同意是否足够?还是我也需要一个预准备阶段?

【问题讨论】:

    标签: paxos


    【解决方案1】:

    您链接的论文(谢谢)有这样的声明“所有 副本知道其他人的公钥来验证签名”。这意味着该协议使用标准的公钥/私钥进行验证。

    pub/pri 方法在两个假设下是安全的:a)每个节点都有一种方法可以安全地了解其他节点的公钥;b)每个节点都有自己的私钥并且密钥是安全的。

    其余的方法是消息验证的标准方法:当节点 A 想要向节点 B 发送消息时:

    • 节点 A 创建消息
    • 节点 A 创建消息的散列
    • 节点A用自己的私钥加密散列(我们称加密散列-消息签名)
    • 节点 A 向节点 B 发送:[消息,消息签名,来自:节点 A]
    • 节点 B 接收所有三个部分并验证它们
    • 节点 B 创建哈希是消息
    • 节点 B 使用节点 A 的公钥解密消息的签名
    • 节点 B 比较消息的哈希值和解密的哈希值:如果它们相同,则消息肯定来自节点 A

    这几乎可以保证消息来自正确的节点。

    【讨论】:

      猜你喜欢
      • 2012-10-15
      • 2011-05-20
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多