CasperCBC-②(CasperTFG)
Casper The Friendly Ghost (Greedy Heaviest-Observed Sub-Tree)は将来的にEthereumでの実装が予定されているProof of Stakeのコンセンサスアルゴリズムです。
概要
Casper TFGは、CasperFFGと同じくバリデーターにデポジットを要求します。
これにより、FFGと同様TFGもnothing at stake 問題に対応することができます。
デポジットを配置したバリデーターはbonded-validatorとなり、ブロックの認証を行うことができます。また、デポジットは無効なブロックを生成した場合に没収されます。
コンセンサスアルゴリズムの分類
コンセンサスアルゴリズムの分類の一つとして、主観的、客観的というものがあります。
客観的なアルゴリズムは、(i)プロトコル定義と(ii)すべてのブロックのセット、および公開されているその他の「重要な」メッセージを持っていれば、新しいノードは独立して最新の状況のネットワークの他の部分とまったく同じ結論に達することができます。Proof of Work等が分類されます。
主観的なアルゴリズムにおいては、異なるノードが異なる結論になる安定した状態を持ち、参加するためには大量の社会情報(すなわち評判)が必要とされます。Ripple等に用いられるコンセンサスアルゴリズムが分類されます。
Casper TFGではバリデーターの署名はその時点でのbonded-validatorのものだけが有効になります。そのため、クライアントは最低でも一度はアウトオブバウンドで最新のbonded-validatorのリストを認証しなくてはなりません。つまり、Casper TFGは主観的アルゴリズムよりは少ない情報をプロトコル外で認証する必要があり、この特性は弱主観的と呼ばれています。
投票について
それぞれのバリデーターはブロック高が更新される度に、ブロックに対して保証金を振り分ける形でベットします。
この投票を通して、ブロックが生成され、無効なブロックへの投票や二重投票となるような投票を行った場合、デポジットは没収されます。
ファイナリティ
非常に多くの有効なバリデーター(プロトコルによって定義される、66〜90%)が非常に大きな割合を振り分けてベットされたブロックはファイナリティに達します。
一定の高さ以下のブロックが全てファイナリティに達している場合、そのブロック高以下のフォークは認められません。