ホワイトペーパー

COSMOSホワイトペーパー日本語訳13

更新日:

本稿について

COSMOSのホワイトペーパー、最終更新日: 2018/4/7時点のものを対象とします。本稿では「Appendix」の日本語訳を掲載します。

原文はこちらになります。

スポンサードサーチ

Appendix

フォークアカウンタビリティ

うまく設計されたコンセンサスプロトコルは耐性の許容範囲を超えてコンセンサスが失敗した場合にもある程度の保証を与えるものであるべきだ。これは特にビザンチンなふるまいが十分な金融面での報酬を持ちうる経済システムにおいて必要である。このような保証で最も大切なものはフォークアカウンタビリティの形式である。ここではコンセンサスを失敗に導いたプロセス(つまり、プロトコルのクライアントを違う値の承諾に導いたプロセス。分岐。)を特定し、プロトコルのルールに従って、あるいは可能であれば法的機構に基づいて罰することができる。法的機構が信頼のおけないものだったり利用するにはあまりにもお金がかかりすぎる場合は、参加のための保証金の預け入れをバリデータに強制し、悪意あるふるまいが検出された際にはその保証金を失効させたり削減したりできる[10]。

ネットワークの非同期性や部分的なハッシュ衝突が見つかる確率的減少のせいで日常的にフォークが発生するBitcoinとは異なるという点を注記しておく。非同期性のせいで悪意あるフォークを判別することは多くの場合不可能なので、Bitcoinはマイナーがオーファンブロックをマイニングするのに支払う暗黙的な機会コスト以外には確実にフォークアカウンタビリティを実装することはできない。

Tendermintのコンセンサス

私たちは投票の段階を事前投票(PreVote)と事前コミット(PreCommit)と呼んでいる。投票は特定のブロックに賛成するか、あるいはNilに賛成するかである。同一ラウンドにおいて一つのブロックに対する>2/3のPreVoteの集まりをポルカ(Polka)といい、同一ラウンドにおいて一つのブロックに対する>2/3のPreCommitの集まりをコミット(Commit)という。同一ラウンドにおいてNilに対する>2/3のPreCommitの集まりがある場合は次のラウンドに進む。

プロトコルにおける厳密な決定論性は故障したリーダを検出してスキップせねばならないことから弱い同期性の仮定を置いている点には注意されたい。従って、バリデータはNilに事前投票を投じる前にTimeoutProposeで定められる一定時間待機し、各ラウンドでTimeoutProposeの値は増加する。ラウンドの残りの部分を通じた進捗は、バリデータがネットワークの>2/3から返答を受け取った場合のみ進むという点で完全に非同期である。実際には弱い同期の仮定を無制限に妨害する極めて強力な攻撃者を想定し(以降のブロックのコミットに対してコンセンサスの失敗を引き起こす)、各バリデータに対して乱数のTimeoutProposeを利用することでそのような攻撃をいっそう困難にすることができる。

さならる一連の制約条件、あるいはロックルールにより、最終的にネットワークが各ブロック高で1ブロックだけコミットすることが約束される。任意のブロック高で2つ以上のブロックをコミットを引き起こそうとする悪意ある試行は全て特定することができる。まずブロックに対するPreCommitには、ブロックに対するPolkaという形で正当性が伴わなければならない。バリデータが既にラウンドR_1でブロックをPreCommitしている場合、そのバリデータはそのブロックにロックされており、ラウンドR_2で新たなPreCommitをするのを正当化するのに用いるPolkaはR_1 < R_polkaR_2を満たすラウンドR_polkaでなくてはならない。次に、バリデータは自身がロックされるブロックを提案かつ/または事前投票しなければならない。これらの条件を組み合わせることにより、バリデータが十分な正当性としての証拠なく事前コミットできないことと、既に事前コミットを行ったバリデータは他の事前コミットについての証拠に貢献できないことが確約される。これによりコンセンサスアルゴリズムのセーフティとライブネスどちらもが守られる。

プロトコルの全体の情報はこちらに記す。

Tendermintのライトクライアント

全ブロックヘッダを同期する必要性は、別のチェーン(フォーク)が存在することは担保として預け入れたステークの≥1/3が削られてしまうことと同義であることから、Tendermint-PoSではなくなる。当然ステークの削減には誰かがフォークの証拠を共有することが必要なので、ライトクライアントは確認したブロックハッシュコミットを保存しておくべきである。さらに、ライトクライアントはロングレンジ攻撃を避けるために、バリデータの集合に対する変更と継続的に同期するのがよい(だが他の解決法もある)。

Ethereumの精神と同様に、Tendermintはアプリケーションが各ブロックにグローバルなマークルルートハッシュを埋め込むことができるようにすることで、アカウントの残高やコントラクトに保存されている値、未使用トランザクションのアウトプットの存在、アプリケーションの性質依存などに関して容易に検証可能なステートクエリが実現できる。

COSMOSホワイトペーパー日本語訳12 ←← 前)|(次 →→ COSMOSホワイトペーパー日本語訳14

免責

邦訳には誤りがある場合がございます。予めご承知おき下さい。

確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。

-ホワイトペーパー
-, , , , , , , ,

Copyright© 暗号通貨界隈のメモ書きなど。 , 2019 All Rights Reserved Powered by STINGER.

%d人のブロガーが「いいね」をつけました。