本稿について
本稿は、Tendermintホワイトペーパーの詳細版ともいえるTendermint現CTOであるEthan Buchman氏の執筆論文をもとにTendermintについて見ていくシリーズです。冒頭に筆者による「簡単まとめ」を入れ、その後にもととなった部分の日本語訳を載せるという順番で書いていきます。
論文「Tendermint: Byzantine Fault Tolerance in Age of Blockchain」の原文はこちら。
今回の対象範囲は第6章「Governance」のうち6.3「Punishing Byzantine Validators」で、これを読むとTendermintのビザンチンなふるまいをするノードに対するペナルティについてやや詳しい内容が分かります。
原文はこちらになります。
スポンサードサーチ
要点をまとめてみる
- TendermintはPoS型のシステムである。
- コンセンサスの参加にはステークの担保が必要である。
- 違反の証拠はトランザクションの形式で公表されて、アプリケーションステートにより違反者は除外されるとともに、違反者のステークは焼却されて二度と取り出せなくなる。
- Tendermintは不正が行われる前に、不正を強烈に示唆するシグナルに対して罰することも考えている。
- Tendermintの一連のプロトコルは、ゆるい正当性の形成と順番前に提案可能にすることの2点でCasperに通ずるところがある。
以下、今回取り扱った箇所の日本語訳なので詳細を知りたければどうぞ。
Chapter6. Governance(続き)
6.3 ビザンチンなバリデータに対する懲罰
プロトコルの目標が報酬によってバリデータが正しくふるまうようインセンティブを与えることである限りにおいて、Bitcoinの設計で際立った1つのポイントはそのインセンティブスキームである。Bitcoinのコンセンサスプロトコルの文脈ではこれは意味を成すが、上等なインセンティブは時としてバリデータがソフトの機会コストよりも現実の自己資金を注ぎ込む(skin-in-the-game)[95]ような強烈な阻害要因をもたらす。
Tendermintにおいて阻害要因はVitalik Buterinにより初めて提案された方法[12]、いわゆるプルーフオブステークを用いてなされる。本質的に、バリデータはコンセンサスに参加するために保証金を預け入れなければならない(いくらかのステークを担保に入れなければならない)。提案や投票に対するあるバリデータの二重署名が見つかった場合、他のバリデータはトランザクションの形で証拠を公表できる。アプリケーションステートはこの証拠を利用して違反者を除外することでバリデータの集団を変更することができ、違反者の保証金は焼却されることになる。これには、ビザンチンなふるまいを伴う明示的な経済コストに関する効果があり、1/3以上のバリデータに賄賂を贈ってビザンチンになってもらうことでセーフティを侵害するのにかかるコストを見積もることができるようになる。
コンセンサスプロトコルは単なる二重署名よりももっと多くの罰せられるふるまいを規定する可能性がある点には注意されたい。特に、Tendermintは不正なふるまいの前兆となるあらゆる強烈なシグナルに対して罰することに関心がある。典型的なものとしては、他バリデータの報告したステートに基づいていないステートの変更報告がある。例えば、事前コミットを正当化するためにポルカが付いていないといけないTendermintのバージョンで、正当化しえない事前コミットをブロードキャストしたバリデータは罰せられる可能性がある。だが、単にあらゆる予期せぬふるまいを罰することはできない点は注記しておく。例えば、提案の番ではないのに提案を行っているバリデータは、非同期性やクラッシュしたノードに先行する最適化に基づいたものかもしれないのである。
実際、1)ゆるい正当性の形成と2)順番が回ってくる前にバリデータが提案できるようにすることの2点を伴うTendermintの一般化は、Vlad ZamfirがCasperという名目で将来のEthereumのコンセンサスメカニズムとして提案したものと性質的に似通った一連のプロトコルを生じさせる[109]。プロトコル間の関係とアンチビザンチンな正当性の特徴の関係に関するより形式的な説明は将来の課題として残しておく。
翻訳範囲の参考文献
[95]Nassim Nicholas Taleb and Constantine Sandis. “The skin in the game heuristic for protection against tail events”. In: Review of Behavioral Economics 1 (2014), pp. 1–21.
[12]Vitalik Buterin. Slasher: a punitive proof of stake algorithm. https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-ofstake-algorithm/.
[109]Vlad Zamfir. Introducing Casper “the Friendly Ghost”. https://blog.ethereum.org/2015/08/01/introducing-casper-friendlyghost/.
(EthanのTendermint論文12 ←← 前)|(次 →→ EthanのTendermint論文14)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。