エコー: Casper FFG と Casper CBC の Yuliang Complex
編集者注: この記事は以下から引用しましたイーサリアム愛好家 (ID: Ethfans)編集者注: この記事は以下から引用しました
この記事は、2018 年 8 月に Casper の開発を紹介した Vitalik による長いツイートを Taipei Ethereum Meetup コミュニティのメンバーである Qiu Jun が翻訳したものです。 1年後、Eth2.0のフォーク選択ルールはIMD GhostではなくLMD Ghostに決定され、Vitalikはこの長いツイートでその好みを表明しましたが、記事で言及されたCasperの進化の歴史は依然として洞察に満ちています。

序文
副題
序文
次の文章が始まります。
導入
導入
一連のツイートを使用して、FFG 対 CBC の議論、ハイブリッド モデルの完全な PoS への変換、ランダム性の役割、設計上の考慮事項など、イーサリアム キャスパー コンセンサス合意の研究の歴史/方針/進捗状況を説明します。コンセンサスメカニズムやその他の問題。
副題
危険なものは何もなく、リモート攻撃も可能
イーサリアムにおけるプルーフ・オブ・ステーク研究は、2014年1月のスラッシャー合意から始まりました。 Slasher アルゴリズムはあまり理想的ではありませんが、いくつかの重要な概念、特に「何も問題がない問題 (Nothing-at-Stake 問題)」を解決するためのペナルティの使用を導入しています。ただし、私が使用したペナルティはかなり最小限で、投票の報酬をキャンセルするだけです。 Vlad Zamfir 氏は 2014 年半ばに加わり、バリデーターにステーキングを義務付ける方法をすぐに導入しました。デポジットは報酬よりも大きな数字であり、間違った行動をするとデポジットが取り上げられてしまいます(ここでのヴラドの言い換え)。
私たちは、2014 年後半の大部分を「長距離攻撃」の解決に費やしました。この攻撃では、攻撃者がメイン チェーンからデポジットを引き出し、より多くのシグネチャを持つ別の攻撃チェーンを形成することができます。このようにして、新しく参加したノードがだまされて攻撃されます。攻撃チェーンがメインチェーンであると考えます。攻撃チェーンとメイン チェーン フォークの時点が現在時刻に比較的近い場合、検証者が両方のチェーンで 2 つの矛盾するメッセージに同時に署名すると、この署名が使用できるため、攻撃チェーンは問題を引き起こしません。検証者の証拠に対する罰としてデポジットを没収しますが、フォークがずっと前に発生した場合 (そのためリモート攻撃という用語が使われます)、攻撃者は没収を避けるためにデポジットを引き出すことができます。
私たちは、PoW 支持者が言うのとほぼ同じ理由で長距離攻撃は避けられないと結論付けました。しかし、私たちは彼らの結論を受け入れませんでした。リモート攻撃を解決するには、次の 2 つの追加のセキュリティ前提を導入できることがわかったためです: 1. ノードは少なくとも 4 か月に 1 回ログインする必要があります (デポジットの引き出しには 4 か月かかります); バックトラッキング。
保証金と罰金の用途を確立したら、次にそれらが何であるかを決定する必要があります。私たちが望んでいることは「経済的なファイナリティ」であることを知っており、バリデーターは次の方法に基づいてブロックに署名します。ブロックがファイナライズされたら、競合するブロックをファイナライズする場合は、バリデーターの過半数が署名する必要があります。競合するメッセージを送信します。以前のメッセージ。しかし、そのようなメッセージの場合、チェーンによって検出され、処罰される可能性があります。
Casper CBC
臭くて長くて的外れな「ベットコンセンサス」の記事を書きました。コンセンサスのステーキングは興味深い提案です。バリデーターはどのブロックがファイナライズされるかに賭け、ステークによってどのチェーンがコンセンサスに達するかを決定します。マイニングはステーキングであるため、PoW にもこの特性があります。正しいチェーンに賭けると報酬が得られますが、間違ったチェーンに賭けるとマイニング コストが失われます。しかし、PoS では、より高いオッズを得ることができます。バリデーターのオッズは低く始まりますが、バリデーターがブロックに対する互いの信頼が徐々に高まるのを確認すると、全員のオッズが並行して指数関数的に増加し、全員が同じブロックに賭けるまで、これが確定します。
副題
同時に、ヴラドは機構設計、特にキャスパーの寡占に対する耐性を高めるための多くの研究を開始しました。また、Tendermint などの古典的な Byzantine Fault Tolerance (BFT) に触発されたコンセンサスへの取り組みも開始しました。 Vlad は、古典的な BFT は説得力がないと考えており (特に、BFT のハードしきい値が嫌いです。たとえば、PBFT ノードの 2/3 は正直なノードでなければなりません)、彼が「Correct by Construction (CBC)」と呼ぶものを使用したいと考えています。このメソッドは、BFT (Vlad の元の言葉: リンク 1 / リンク 2 / リンク 3) を再発明しようとします。
ファイナリティを検出するために、ノードはメッセージ内のパターンを探します。これらのメッセージは、バリデーターの大多数が一方向で確実にブロック B に投票したことを証明でき、B から逸脱するにはバリデーターの過半数が不正に投票を切り替える必要があります。たとえば、すべてのノードが B に投票した場合、すべてのノードは「B に対する全員の投票を含むブロック」に投票したことになります。これは、ノードが B を支持し、他の全員が B を支持していることを知っていることを証明するため、変換の法的根拠はなくなります。
Casper FFG
このアプローチは根本的に危険だと思われたため、最終的に私はコンセンサスを確保することを諦めました。また、戻って PBFT がどのように機能するかを理解しようとしました。時間はかかりましたが、数か月後に理解できました。
副題
ファイナライズは非常に重要な開発です。ブロックがファイナライズされると、ネットワークがどんなに遅れてもセキュリティが保証されます (複数のブロック確認が必要な PoW とは異なります)。また、バックトラッキング ブロックでは 1/3 以上の検証者が不正行為を行う必要があります。 、缶が検出され、堆積物が破壊されます。その結果、遡及的な最終処理のコストは数億ドルに達する可能性があります。 Casper CBC と FFG は両方とも、この機能をさまざまな方法で実現しています。
FFG vs CBC
Casper CBC と FFG は両方とも抽象オーバーレイであり、両方とも既存のフォーク選択ルールの上に構築する必要があることに注意してください。専門用語では、Casper CBC は、フォーク選択ルール (下位層) に適応するようにカバレッジ レイヤー (上位層) を最終化することを意味し、一方、Casper FFG は、最終化されたカバレッジ レイヤー (上位層) をフォーク選択ルール (下位層) に適応させることを意味します。 )。
副題
Vlad のフォーク選択ルールに対する最初の好みは、「最新のメッセージ駆動型 GHOST (LMD GHOST)」、つまり PoS 用の GHOST の修正バージョンでした。私の最初の好みは「最初にハイブリッド PoS (ハイブリッド PoS) を採用することでした。」、「PoS)」、基本フォーク選択ルールとして PoW を使用します。
FFG のオリジナル バージョンでは、PoW がブロックごとにチェーンを実行し、PoS が続いてブロックを終了しますが、Casper CBC は最初から完全な PoS です。その間、ヴラドと私はそれぞれコンセンサスのインセンティブについて理論化しました。
ここでの非常に重要な違いは、「一意に起因する過失」 - 何か問題が発生して罰せられる場合に誰が責任を負うのかを知ることができることと、「一意に起因しない過失」 - エラーは多数の当事者のうちの 1 つによって引き起こされる可能性があることです。一意に起因しないエラーの典型的なケースは、オフライン対シールド (検閲) であり、「スピーカーとリスナーのエラーの等価性」とも呼ばれます。誰のせいであるかを判断することは不可能です)。
一意に起因するエラーを罰する(Casper FFG がデポジット条件をカットする)のは簡単ですが、一意に起因しないエラーを罰するのは困難です。少数のノードがオフラインになったためにブロックのファイナライズが停止したのか、それとも大多数のノードが少数のノードをブロックしたためにブロックのファイナライズが停止したのかが分からない場合はどうなるでしょうか?この問題には現在 3 つの解決策があります: 1. 両方の側にわずかにペナルティを与える; 2. 両方の側に厳しくペナルティを与える (ヴラドの好み); 3. チェーンを 2 つに分割し、2 つのチェーンの片方をそれぞれ罰し、どちらを市場に決定させるかチェーンの方が価値があります(私の好み)。または、私が書いたこの記事を参照してください。
2017年11月、「Quadratic Leak」によりCasper FFGと1/3ノードのデポジット条件をカットしました。オフラインの問題の解決策が論文として書かれています。
もちろん、51% 攻撃を解決するためにソーシャルな側面に頼るのはあまり良いことではないことは重々承知しているので、少なくともチェーン上のノードが「合法的なチェーン」と「攻撃チェーン」を自動的に検出できるようにする方法を探し始めました。これは初期のアイデアです。これは良いアイデアですが、ネットワークに遅延がない限り、ノード間の疑いスコアの差の上限しか保証できず、すべてのノードが完全に一致するわけではないため、最適とは言えません。
上記の問題はすべて PoS に固有のものではないことは言及する価値があります。実際、PoW では、人々はただ諦めて、51% 攻撃を防ぐのはほぼ不可能であり、51% 攻撃は黙示録であり、何としてでも回避しなければならないと考える傾向があります。しかし、イーサリアムの場合と同様、ヴラドと私は「野心的」という言葉を褒め言葉と勘違いし、51% 攻撃を軽減し回復するためのさまざまな方法を調査し続けました。
2018 年初め、CBC でのヴラドの研究は、安全性の証明の進歩を含め、急速に進み始めました。 —2018 年 3 月までの研究の進捗状況を把握するには、この壮大な 2 時間のブリーフィングをご覧ください。その間、Casper FFG も大きな進歩を遂げており、契約によって実装するという決定により、開発が容易になります。 2017 年 12 月 31 日に、テストネットの Python バージョンをリリースしました。
副題
Casper とシャーディング開発ルートの統合
残念ながら、FFG の開発は減速しています。コントラクトを使用して FFG を実装すると、いくつかの作業が簡単になりますが、将来的には EVM から EWASM へ、およびシングルチェーン Casper からシャード Casper への移行がより困難になります。また、チームの研究開発作業は「Main Chain Casper」と「Shard Chain Casper」に分かれており、両チーム間で多くの無駄な作業の重複が発生していると考えられます。
2018 年 6 月に、私たちはコントラクトによって実装される Casper FFG を放棄し、代わりに独立したチェーンとして動作する Casper を追求するという大きな決定を下しました。このような設計により、シャーディングが容易になります。
完全な PoS への切り替えにより、PoS のフォーク選択ルールについてより真剣に考えるようになりました。 Casper FFG と CBC は両方とも、ブロックを最終決定するためにすべての検証ノードが各「エポック」で投票する必要があります。これは、毎秒数万の署名が各検証ノードに送信されることを意味します。 BLS 署名集約により、計算コスト的に実現可能になります。しかし、これらの追加の署名を使用してチェーンをより安定させ、数秒で「100 回の確認」と同等のセキュリティを達成したいと考えています。私の最初の考えは次のとおりです (リンク 1/リンク 2)。
しかし、これらのフォーク選択方法にはすべて欠点があります。どの方法も検証ノードを「認証者」と「提案者」に分割しており、ブロックの生成を担当するブロックプロデューサーが大きな権限を持っています。これはあまり良いことではありません。主な理由は、ブロック ノードを公平に選択するために非常に安全なオンチェーン乱数ジェネレーターが必要であり、オンチェーン乱数ジェネレーターは難しく、RANDAO などのいくつかの単純なメソッドには問題があるようです。そしてさらなる質問。 Justin Drake と私はこの問題の解決に着手しました: Justin は確定的で検証可能な出力を持つ関数である VDF を使用していますが、動作するには並列化できない大量のシーケンス時間を必要とするため、早期の改ざんは不可能です; Vlad は GHOST を使用して妥協を教えますベースのフォーク選択ルールにより、ブロック プロデューサーへの依存が大幅に軽減され、悪意のあるブロック プロデューサーが 90% を超え、誠実な監視ノードが 50% を超えている場合でもチェーンが平穏に成長することが可能になります。ヴラドは幸せですが、あまり幸せではありません。彼は LMD GHOST を好み、私は IMD GHOST を好みます。
同じ頃、私は Casper FFG を「パイプライン化」して、ファイナライズ時間を 2.5 エポックから理論上の最適値である 2 エポックに短縮する方法を考え出そうとしていました。 RPJ フォーク選択ルール (後に IMD GHOST に名前変更) が FFG でうまく動作することを嬉しく思います。また、非常に重要な「安定性」も備えています。フォークの選択は、将来のフォークの選択を適切に予測します。これは明白なようですが、この特性を持たないフォーク ルールを作成するのは非常に簡単です。最新の進歩は次のとおりです。技術的な詳細により、LMD GHOST は 2 ラウンドで 25% のフォールト トレランスしか持たない可能性がありますが、IMD GHOST は依然として 33% のフル フォールト トレランスを持つことができます (現時点では文書がありません)。 (翻訳: 翻訳が完了した時点では、イーサリアム 2.0 は LMD GHOST を使用していました)
FFG と CBC の間の主なトレードオフは、CBC の理論的特性が優れているように見えるのに対し、FFG の方が実装が容易であるように見えることです。同時に、VDF も大きな進歩を遂げました。


