拜占庭协议——236357byzantine generals

Posted riko707

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拜占庭协议——236357byzantine generals相关的知识,希望对你有一定的参考价值。

本文是236357Distributed Algorithms-The byzantine generals文档的总结。

技术图片

fault VS Byzantine fault

一般来说,fault就是指一个replica在运行中因为各种原因发生了错误,无法参与接下来的消息交换。fault之后这个replica就退出消息传递过程。byzantine fault是指这个发生了错误的replica不仅不为系统安全性做贡献,反而恶意传递假消息来试图掌控系统中最后达成一致的value。
能忍受byzantine fault的系统一定可以忍受普通的crash,反之不成立。

两种协议

十字军协议(The Crusade Agreement)

达成十字军共识的条件是:

  • 如果transmitter是可靠的,那么所有可靠的processor都应该就transmitter发送的值达成一致
  • 如果transmitter是不可靠的,那么所有知道transmitter不可靠的processor都应该对同一个值达成一致(只要求是同一个值,并不指定具体的值)

拜占庭协议(The Byzantine Agreement)

达成拜占庭共识的条件是:

  • 无论transmitter是否可靠,所有可靠的processor都应该就同一个值达成一致
  • 如果transmitter可靠,可靠的processor们应该对transmitter发出的值达成一致

假设

  1. 所有processor组成一个k-顶点连通图(k-connected bidirectional network);——意味着任意去掉k-1个processor,也能保持联通;也意味着两个顶点之间至少有k个定点不相交。
  2. 每一个processor都知道整个网络的拓扑结构;
  3. processor们传递消息是通过连接(而非广播)传播;通过Link能捕捉到包吗,应该是
  4. 每一个processor都可以确定传给自己消息的邻居的身份;
  5. 每一条消息都包含着自己的确定的传递路径;
  6. 一个可靠的processor只会在看到这条消息的既定的传输路径中,自己将要发送给的邻居在自己之后,才会中继这条消息;
  7. 一个可靠的processor只会在看到这条消息的既定传输路径中,自己在自己收到包的邻居之后,才会中继这条消息;——也就是说,一个faulty processor如果想把自己的消息传给可靠的processor,一定要在后继者的身份之前加上自己的identity;尽管接下来可能有新的faulty processor抹去了前一个faulty processor的identity,这个新的faulty processor的identity将会在消息路径中;——即,一个经过了faulty的,现在在可靠的processor手中的消息,消息路径中至少包含一个faulty的identity;
  8. 可靠的processor收到消息后,不篡改、不窃听地将消息中继出去;
  9. 可靠的processor传递消息时间有上界;
  10. 系统中faulty processor数目有上界。

可疑的processor(Suspicious processors)

$V_a=a_1,a_2,...,a_r$是某一个processor收到的所有的value。(这些value可能由于各种原因可能并不相等)。可疑的processor集合定义为$U_x$,其中不包括transmitter,如果去掉了$V_a$中经过了$U_x$中的所有的processor的value,那么$V$中所有的值都相同。

以上是关于拜占庭协议——236357byzantine generals的主要内容,如果未能解决你的问题,请参考以下文章

Practical Byzantine Fault Tolerance and Proactive Recovery

拜占庭错误 与 非拜占庭错误

最新论文笔记(+21):Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems/ TIFS2022

共识协议PBFT实用拜占庭容错

CAPBASEd二阶段提交协议三阶段提交协议拜占庭将军问题paxosRaftZABNWR

CAPBASEd二阶段提交协议三阶段提交协议拜占庭将军问题paxosRaftZABNWR