本稿について
本稿では、Tendermint: Consensus without Miningの第6章「Consensus」のうち、6.3「Proof of Safety」、6.4「Proof of Liveness」、6.5「Cooperation」の日本語訳を掲載します。
原文はこちらになります。
※Tendermintホワイトペーパーの翻訳は第5回までで終了しますが、未完の部分があったり説明が簡潔過ぎると感じる部分があります。2016年6月にTendermintのCTOであるEthan Buchmanが発表している詳細な論文があるので、後日その論文からいくつか仕組み的に重要そうな部分を抜粋して翻訳するかもしれません。
スポンサードサーチ
6.コンセンサス(続き)
6.3 セーフティの証明
ビザンチンな投票パワーが1/3未満であって最低でも1つの良いバリデータがブロックBを決定するならば、良いバリデータはブロックB以外のブロックを決定しない。初期のラウンドRを考えてみよう。ここで、少なくとも1つの良いバリデータはラウンドRでブロックBをコミットするものとする。このバリデータは、ラウンドRのブロックBに対する2/3より多くの事前コミットを受け取った。1/3未満がビザンチンであることを考えて計算すれば、少なくとも1/3の良いバリデータがラウンドRでブロックBを事前コミットしているはずである。これらの良いバリデータはラウンドRでブロックBをロックしているはずである。良いバリデータが他のブロックをコミットできるとすれば、それはいくつかの良いバリデータがブロックBからロック解除される場合であるが、それは不可能である。
6.4 ライブネスの証明
ビザンチンな投票パワーが1/3未満であるならば、このプロトコルはデッドロックしない。コンセンサスプロセスがデッドロックしうる唯一の方法は、異なるラウンドの異なる2つのブロックが一部の良いバリデータによりロックされた場合である(アクティブでグローバルな攻撃者がいないとめったに起こらない)。一部の良いバリデータがラウンドRのブロックBを、別の良いバリデータがラウンドR'のブロックB'をロックしたとする。ここで、R < R'とする。この場合、良いバリデータが提案に取り込んだR'からのロックの証明は、最終的にラウンドRにロックされているバリデータのロックを解除するので、コンセンサスプロセスを続けることができる。
6.5 協力
ブロックHのトランザクション手数料はバリデータ間で分割されるので、欲張りなバリデータは次のブロックH+1提案時にいくつかの署名を除外したいと思うかもしれない。これは、他のバリデータがゲーム理論における最適な参加者であるとすれば、劣った戦略である。あるブロックで分割される手数料の総額がf1であり、署名と正常に署名のブロードキャストをしたバリデータの投票パワーをvi、そのようなバリデータ全ての投票パワーの合計を1とする。投票パワーがvp < 1であるような提案者Pがいるとして、Pは投票パワーがva < 1であるバリデータAliceの署名を含めるか否か考えているとする。ステークで、Aliceに分配される公平な手数料はf1・vaである。ゆえに、Aliceの署名を除外することで得られるPの利益は、次のようになる。
続いて、Aliceに次のブロックを提案する順番が回ってくると、AliceはPの署名を除外することで報復することができる。ここで、このブロックの手数料の総額はf2であるとする。この場合、Pの損失は次の通りである。
Pが金銭的なアドバンテージを得られるのは、利益がコストを上回る場合に限られる。その条件は次のように書ける。
従って、PとAliceはそれぞれ1ブロックしか提案できないようにインタラクションが制限されていれば、va << 1であるとして、Pの提案ブロックに報酬として含まれている手数料総額f1が後続のAliceのブロックに含まれている手数料総額f2よりも遥かに大きくない限り、Pは全く利益を得られない。Aliceの投票パワーが大きいとしても、Aliceは複数のアカウントにステークを分ければよい。PとAliceはそれぞれ1ブロックしか提案できないという制限がない場合、PとAliceは互いの署名を無制限に除外する可能性がある。この場合、Pの1ブロックあたりの期待利益は、次の通りである。
対して、Pの1ブロックあたりの期待損失は、次の通りである。
投票パワーの合計にかかわらず、2つのバリデータは互いの署名を無制限に除外することで利益を得ることはない。本質的に、2つのバリデータが互いに署名を除外しあっていると他のバリデータがいっそう得をするからである。
(Tendermintホワイトペーパー日本語訳3 ←← 前)|(次 →→ Tendermintホワイトペーパー日本語訳5(終))
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。