ETH2.0 が登場しますが、Casper をまだ知りませんか?
今年の初めに、イーサリアムはコンスタンティノープルへのアップグレードを受けましたが、このアップグレードにより、イーサリアムがいつ PoS に切り替えられるかが、再び誰もが注目する問題となっています。周知のとおり、PoW アルゴリズムはリソースの無駄が多く、計算能力の集中などの問題があり、イーサリアムは 2017 年から PoS アルゴリズムへの移行を試みています。しかし、さまざまな客観的条件により、実質的な発展には至っていない。大多数のブロックチェーン愛好家を数年間放置した後、イーサリアム 2.0 はついに PoS アルゴリズムを使用することになりました。一人で幸せであることは他の人と一緒に幸せであることよりも悪いという伝統的な中国の美徳に沿って、フラクタルの職人たちは、次世代のイーサリアムコンセンサスプロトコルであるキャスパーに関する私たちの見解を皆さんと共有することにしました。
副題
Casper FFG ——PoW+PoS
Casper には実際には 2 つのバージョンがあり、1 つは Vitalik 氏が率いる Casper FFG で、もう 1 つは Vlad 氏が率いる Casper CBC です。それらの違いは、FFG はむしろ移行プロトコルであり、イーサリアムが PoW から PoW に正常に移行できるようにすることです。 CBC はイーサリアムが PoS に切り替わった後のより良いバージョンですが、現在の観点から見ると、CBC にはさらなる研究と議論が必要な詳細がまだ多くあります。
FFG の主なアイデアは、PoW によって生成されたブロックの最終確認を支援するために PoS を使用し、それによってマイナーの報酬を削減しながらシステムのセキュリティを向上させることです。
画像の説明

図 1 チェックポイントに圧縮されたブロック
画像の説明

図 2: チェックポイント高さ関数
まず、Casper のコンセンサスプロセス全体について説明します。コンセンサスに参加するバリデータは、上記のチェックポイントに投票します。各バリデータは、正当化されたチェックポイントから開始して、いくつかのチェックポイントを経た後のチェックポイントまでチェックポイントをキャストします。最初の正当化されたチェックポイントはジェネシス ブロックであると規定しており、チェックポイントが正当化されたチェックポイントからの投票の 2/3 以上を受け取ると、このブロックは正当化されます。
副題
バリデータの投票
で:
vote=
で:
v : バリデーターの ID 情報。
s : 正当化されたチェックポイントのハッシュ。ソース チェックポイントとして理解できます。正当化の定義については後ほど詳しく説明します。
t : 子孫ノードのハッシュ。ターゲット チェックポイントとして理解できます。
h(s) : s の高さ。
副題
チェックポイントの2つの関係
投票ルールを定義した後、任意の 2 つのチェックポイント間の関係を定義します。
超多数派リンク: チェックポイントのペア (a、b) について、(a→b) と書き込みます。2/3 を超えるバリデーターの投票がある場合、vote= を呼び出すことができます。(a→b) は超多数派リンクであり、h (b) ≧h(a)+1
画像の説明

図 3: Casper 構造の模式図
副題
2 つの状態をチェックポイント
チェックポイント間の関係を定義した後、チェックポイントの 2 つの状態を定義します。c:
-c は正当化されます。
1) c = ルート: チェックポイント c はルートです。
2) または存在します (c'→c)。つまり、c' から c への超多数リンクがあり、c' が正当化されます。
-c が完了します:
a) c は正当化されます。
b) (c'→c)、つまり c' から c への超多数リンクがあります。
c) c , c' not conflicting;
d) h(c')=h(c)+1;
副題
罰のメカニズム
Validator が実行プロセス中に悪事を働くのを防ぐために、Casper は次のような一連の罰メカニズムを策定しました: 同じ Validator に対して、2 つの異なる投票が発行されます =そして投票してください=, 以下の2つの状況に該当する場合、住宅ローンの持分にペナルティが課せられます。
1. h(t1)=h(t2): 同じターゲットの高さに対して、2 つの異なる投票を開始することはできません。
2. h(s1)
画像の説明

副題
フォーク選択機構
PoS が PoW チェーンのセキュリティを向上できるようにするために、FFG はフォークを選択するときに最も重いチェーンにいくつかの変更を加えました。まず、ビュー内で最も高い高さの正当化されたチェックポイントを見つけ、チェックポイントの後でブロックします。最も重いチェーンの選択は次のとおりです。に実行されます。これには 2 つの利点があります。1 つ目は、元のゴースト アルゴリズムと比較して、ブロックの確認が確率的であることです。十分な高さまで待機した後、前のブロックをひっくり返す可能性は非常に低いですが、確率は非常に低いです。しかし、その可能性はまだあります; FFG のブロックが確定する前である限り、それらはすべて確定しており、覆される可能性はありません。
副題
バリデータの交換
冒頭で述べたように、バリデーターは固定されていることが前提とされていますが、実際のブロックチェーン システムでは参加者が自由に出入りできる必要があるため、FFG には独自のバリデーターの入り口と出口の原則があります。まず、ブロック b のダイナスティを、創設ブロックと b の親ブロックの間の確定されたチェックポイントの数として定義します。
モーゲージ:
Validator になりたいユーザーは、一定量のステークを抵当にする必要があります。ユーザー v の抵当取引が dynasty=d のブロックに含まれる場合、開始王朝を定義し、SD(v) = d+2 と書き込みます。
償還:
Validator v が約束されたステークを取り戻したい場合は、償還トランザクションを開始する必要があります。このトランザクション情報が王朝のあるブロックに含まれている場合、終了王朝を定義し、ED(v) = +2 と書き込みます。複数の SD および ED の処理を避けるため、ユーザーは引き換え後にバリデーターになるためにステークすることはできません。同時に、悪者が悪事を行った直後にステークを償還するのを防ぐために、償還トランザクションが実行された後も一定期間ステークをロックする必要があります。
ブロック b については、その王朝が d であると仮定すると、d が ED と SD の間にあるバリデータのみが投票できます。
この記事の紹介はここまでです。疑問がある場合は、公式の Fractal グループ ディスカッションに参加してください。Fractal 技術者がオンラインで質問に答えます。次の記事では、イーサリアムで使用される Casper の主な機能を紹介します2.0. 合意プロセス。


