概要
- Byzantine fault tolerant consensus algorithm
- Nakamoto Consensus等と異なり、ノード数Nが頻繁に変動する環境では使えないことに注意
仮定
- メッセージの送信者は識別可能(署名等により達成される)
- のノードがあるときに、台以上のサーバーがビザンチン故障しない限り、安全(Safety)
- Partially synchronous systemの仮定のもとで、Livenessを保証
- メッセージ遅延が有限
プロトコル
- 書き込み時にのQuorum Certificateをもらう
- このうち、個が書き込んでないのに嘘をついていて、さらに読み取り時に別の個が故障していても、1個は正しい値を持っている
性能
- メッセージ複雑性:
- View change:
- カスケード障害が起きているとまで悪化する
- View change:
- レイテンシ: 2-RTT
論文
- OSDI 99 : https://www.usenix.org/legacy/publications/library/proceedings/osdi99/full_papers/castro/castro_html/castro.html
- 翻訳: https://hazm.at/mox/distributed-system/algorithm/transaction/pbft/practical-byzantine-fault-tolerance.html
- A Correctness Proof for a Practical Byzantine-fault-tolerant Replication Algorithm