[論文レビュー] Formal Verification of Blockchain Byzantine Fault Tolerance
この論文では、ByMCモデル・チェッカーを用いてブロックチェーンにおけるバシルト・フォールト・トレラント(Byzantine fault-tolerant)コンSENSUS部品の形式的検証を提案し、17分未塔の時間で64コアのマシン上で、バシルトブロードキャストプリミティブやRed Belly Blockchainのコンセンサスの変種といった重要なコンponentsを自動的に検証できることを示している。著者らは、形式的検証が生産用ブロックチェーンシステムにおける正しさを保証するために今や実用的かつ不可欠であることを示している。
To implement a blockchain, the trend is now to integrate a non-trivial Byzantine fault tolerant consensus algorithm instead of the seminal idea of waiting to receive blocks to decide upon the longest branch. After a decade of existence, blockchains trade now large amounts of valuable assets and a simple disagreement could lead to disastrous losses. Unfortunately, Byzantine consensus solutions used in blockchains are at best proved correct "by hand" as we are not aware of any of them having been formally verified. In this paper, we propose two contributions: (i) we illustrate the severity of the problem by listing six vulnerabilities of blockchain consensus including two new counter-examples; (ii) we then formally verify two Byzantine fault tolerant components of Red Belly Blockchain using the ByMC model checker. First, we specify a simple broadcast primitive in 116 lines of code that is verified in 40 seconds on a 2-core Intel machine. Then, we specify a blockchain consensus algorithm in 276 lines of code that is verified in 17 minutes on a 64-core AMD machine using MPI. To conclude, we argue that it has now become both relatively simple and crucial to formally verify the correctness of blockchain consensus protocols.
研究の動機と目的
- ブロックチェーンコンセンサスプロトコルにおける形式的検証の著しい欠如に取り組むこと。現状、これらのプロトコルは「手作業」で証明されているが、その結果、誤りが生じやすい。
- Casper FFGおよびHoneyBadgerに対する2つの新しい反例を特定することで、コンセンサスの脆弱性の深刻さを示すこと。
- Byzantine fault-tolerant部品の形式的検証が、最新のツール(例:ByMC)を用いることで、専門家でない者にとっても実用的かつ容易に可能であることを示すこと。
- 閾値オートマトンを用いて、ブロードキャストプリミティブおよびRed Belly Blockchainのコンセンサス変種の、機械で検証可能な仕様を公開すること。
- 生産システムにおける深刻な障害を防ぐために、形式的検証をブロックチェーン開発の標準的実践として採用するよう提言すること。
提案手法
- 著者らは、正しいプロセスの状態をメッセージの閾値に基づいて抽象化することで、状態空間の圧縮を効率的に行う、閾値オートマトンとしてブロックチェーンコンセンサス部品をモデル化した。
- ByMCモデル・チェッカーを用いて、t < n/3 のプロセスがバシルトであると仮定したもとで、ブロードキャストおよびコンセンサス部品の安全・活性性の性質を検証した。
- ブロードキャストプリミティブは116行のコードで記述され、2コアのIntelマシン上で40秒で検証された。
- Red Belly Blockchainのコンセンサス変種は276行のコードで記述され、MPIを用いて64コアのAMDマシン上で17分で検証された。
- 公平なスケジューリングをモデル化するため、ラウンド・リジッドな敵対者を仮定した。これにより、非同期バシルトコンセンサスの有限状態モデル・チェックが可能になった。
- 仕様は、低レベルのメッセージ順序を抽象化し、プロトコルの不変性に焦点を当てた、閾値オートマトン用のドメイン固有言語で記述された。
実験結果
リサーチクエスチョン
- RQ1ブロックチェーンにおけるバシルト・フォールト・トレラントコンセンサス部品は、自動化ツールを用いて形式的検証可能であるか。もしそうなら、どの程度の効率で可能か?
- RQ2Casper FFG や HoneyBadger といった広く導入されているコンセンサスアルゴリズムに、どのような脆弱性が存在し、なぜ終了しないのか?
- RQ3形式的検証の専門家でない者でも、最新のツール(例:ByMC)を用いて、複雑なブロックチェーンコンセンサス部品を成功裏に検証できるか?
- RQ4どの程度まで、ラウンド・リジッド性の仮定が、非同期バシルトコンセンサスの有限状態モデル・チェックを可能にするか?
- RQ5ByMCによる自動検証は、従来の「手作業」証明や、TLA+ や Coq といった他の形式手法と比較して、スケーラビリティおよび実用性においてどのように異なるか?
主な発見
- 著者らは、Casper FFG および HoneyBadger が特定の敵対的条件下で終了しない可能性があることを示す2つの新しい反例を発見した。これらは広く導入されているにもかかわらず、依然として問題を抱えていることを示している。
- バシルトブロードキャストプリミティブは、2コアのIntelマシン上で40秒で形式的検証され、t < n/3 のバシルト障害が発生する場合でも正しく動作することが確認された。
- Red Belly Blockchainのコンセンサス変種は、64コアのAMDマシン上で17分で検証され、実用的なハードウェア上で形式的検証のスケーラビリティが裏付けられた。
- 検証プロセスは、非形式的証明に潜む微妙な欠陥を明らかにした。これは、単に手作業で構築された議論に依存するリスクを強調している。
- 閾値オートマトンとByMCの使用により、形式手法の深い専門知識がなくても、体系的かつ機械で検証可能な検証が可能になった。
- 結果として、形式的検証が生産システムにおけるブロックチェーンコンセンサスプロトコルの正しさを保証するために、今や実用的かつ不可欠であることが示された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。