マージがイーサリアムのアプリケーション層に与える影響

イーサリアムのプルーフオブステークへの移行–マージ–が間近に迫っています。開発者は立ち上がっており、仕様は最終決定されており、コミュニティへの働きかけが本格的に始まっています。マージは、エンドユーザー、スマートコントラクト、およびdappsのイーサリアムの動作に最小限の影響を与えるように設計されています。とはいえ、強調する価値のある小さな変更がいくつかあります。それらに飛び込む前に、Mergeアーキテクチャ全体に関するコンテキストを提供するためのいくつかのリンクを次に示します。

  • ロードマップの進化
  • マージ後のクライアントアーキテクチャ

この投稿の残りの部分では、読者が上記に精通していることを前提としています。さらに深く掘り下げたい方のために、TheMergeの完全な仕様はこちらから入手できます:

  • 実行レイヤー
  • コンセンサスレイヤー
  • エンジンAPI
ブロック構造

マージ後、プルーフオブワークブロックはネットワーク上に存在しなくなります。代わりに、以前のプルーフオブワークの内容は、ビーコンチェーン上に作成されたブロックのコンポーネントになります。次に、ビーコンチェーンは、以前のプルーフオブワークコンセンサスレイヤーに取って代わり、イーサリアムの新しいプルーフオブステークコンセンサスレイヤーになると考えることができます。ビーコンチェーンブロックには、 ExecutionPayloads が含まれます 、これは、現在のプルーフオブワークチェーンのブロックに相当するマージ後のものです。下の画像はこの関係を示しています:

エンドユーザーとアプリケーション開発者の場合、これらの ExecutionPayloads イーサリアムとの相互作用が発生する場所です。このレイヤーのトランザクションは、実行レイヤークライアント(Besu、Erigon、Geth、Nethermindなど)によって引き続き処理されます。幸い、実行レイヤーの安定性により、Mergeは最小限の重大な変更のみを導入します。

マイニングとオマーブロックフィールド

マージ後、プルーフオブワークブロックヘッダーに以前含まれていたいくつかのフィールドは、プルーフオブステークとは無関係であるため、使用されなくなります。ツールとインフラストラクチャへの影響を最小限に抑えるために、これらのフィールドは、データ構造から完全に削除されるのではなく、0またはそれらのデータ構造に相当するものに設定されます。ブロックフィールドへの完全な変更は、EIP-3675にあります。

フィールド 定数値 コメント オマーズ [] RLP([])=0xc0 ommersHash 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 =Keccak256(RLP([])) 難易度 0 ノンス 0x0000000000000000

プルーフオブステークは、プルーフオブワークのようなオマー(別名アンクルブロック)を自然に生成しないため、各ブロックのこれらのリスト(オマー )は空になり、このリストのハッシュ( ommersHash )は、空のリストのRLPエンコードされたハッシュになります。同様に、難易度 およびノンス プルーフオブワークの機能であり、これらは 0 に設定されます 、バイトサイズの値を尊重しながら。

mixHash 別のマイニング関連フィールドである、は0に設定されませんが、代わりにビーコンチェーンのRANDAO値が含まれます。詳細については、以下をご覧ください。

ブロックハッシュ &難しさ オペコードの変更

マージ後、 BLOCKHASH オペコードは引き続き使用できますが、プルーフオブワークハッシュプロセスによって偽造されなくなるため、このオペコードによって提供される疑似ランダム性ははるかに弱くなります。

関連して、難しさ オペコード( 0x44 )が更新され、名前がランダムに変更されます。 。マージ後、ビーコンチェーンによって提供されるランダム性ビーコンの出力を返します。したがって、このオペコードは、アプリケーション開発者が使用するランダム性のソースとして、 BLOCKHASH よりも強力ですが、それでもバイアスがかかります。 。

ランダムによって公開される値 ExecutionPayload に保存されます ここで、 mixHash 、プルーフオブワーク計算に関連付けられた値が格納されました。ペイロードの mixHash フィールドの名前もランダムに変更されます 。

これは、難易度の図です。 &ランダム オペコードはマージ前とマージ後に機能します:

マージ前に、 0x44 が表示されます opcodeは、難易度を返します ブロックヘッダーのフィールド。マージ後のオペコードは、ランダムに名前が変更されました 、以前に mixHash が含まれていたヘッダーフィールドを指します ランダムを保存するようになりました ビーコンチェーン状態からの値。

EIP-4399で形式化されたこの変更は、マージが行われたかどうかを評価する方法をオンチェーンアプリケーションにも提供します。 EIPから:

さらに、このEIPによって提案された変更により、スマートコントラクトは、PoSへのアップグレードがすでに行われたかどうかを判断できます。これは、DIFFICULTYオペコードの戻り値を分析することで実行できます。 2 ** 64 より大きい値 トランザクションがPoSブロックで実行されていることを示します。

ブロック時間

マージはイーサリアムの平均ブロック時間に影響します。現在、作業の証明の下で、ブロックは平均して約13秒ごとに着信し、実際のブロック時間にはかなりのばらつきがあります。プルーフオブステークでは、バリデーターがオフラインであるか、ブロックが時間内に送信されないためにスロットが失われた場合を除いて、ブロックは正確に12秒ごとに到着します。実際には、これは現在<1%のスロットで発生します。

これは、ネットワーク上の平均ブロック時間が約1秒短縮されることを意味します。計算で特定の平均ブロック時間を想定するスマートコントラクトは、これを考慮に入れる必要があります。

セーフヘッドとファイナライズされたブロック

プルーフオブワークの下では、常に再編成の可能性があります。アプリケーションは通常、新しいヘッドの上にいくつかのブロックがマイニングされるのを待ってから、正規のチェーンから削除される可能性が低い、または「確認済み」として処理します。マージ後、代わりに最終化の概念があります。 およびセーフヘッド ブロック。これらのブロックは、「確認済み」のプルーフオブワークブロックよりもさらに確実に使用できますが、正しく使用するには理解を変える必要があります。

ファイナライズされたブロックは、バリデーターの2/3以上によって正規として受け入れられたブロックです。競合するブロックを作成するには、攻撃者は総賭け金の少なくとも3分の1を燃やす必要があります。この記事の執筆時点では、これはイーサリアムで100億ドル(または250万ETH以上)を超えています。

安全な頭 ブロックは、通常のネットワーク条件下で、正規のチェーンに含まれると予想されるブロックです。ネットワーク遅延が4秒未満であり、バリデーターの正直な大多数であり、フォーク選択ルールであるセーフヘッドへの攻撃がないと仮定します。 孤立することはありません。さまざまなシナリオでセーフヘッドがどのように計算されるかを詳しく説明したプレゼンテーションは、こちらから入手できます。さらに、セーフヘッドの前提と保証 正式に定義され、次の論文で分析されています。

マージ後の実行レイヤーAPI(JSON RPCなど)はセーフヘッドを返します デフォルトでは、最新を要求された場合 ブロック。通常のネットワーク状態では、セーフヘッド チェーンの実際の先端は同等になります(安全なヘッドが数秒だけ後を追う)。 安全なヘッド 現在のプルーフオブワーク最新よりも再編成される可能性は低くなります ブロック。プルーフオブステークチェーンの実際のヒントを公開するには、安全ではありません フラグがJSONRPCに追加されます。

ファイナライズされたブロックは、新しいファイナライズされたを介してJSONRPCでも公開されます。 国旗。これらは、作業確認の証明の強力な代替手段として機能します。次の表はこれをまとめたものです:

ブロックタイプ コンセンサスメカニズム JSON RPC 再編成の条件 プルーフオブワーク最新 予想されるように、注意して使用する必要があります。 プルーフオブステーク安全ではない 予想されるように、注意して使用する必要があります。 安全な頭 プルーフオブステーク最新 可能ですが、大きなネットワーク遅延またはネットワークへの攻撃が必要です。 確認済み プルーフオブワークN / Aありそうもないことですが、競合する深さのチェーンをマイニングするためにハッシュレートの大部分が必要です>確認の数。 完成 プルーフオブステークファイナライズ 非常にまれですが、競合するチェーンをファイナライズするためにバリデーターの2/3以上が必要であり、少なくとも1/3をスラッシュする必要があります。 次のステップ

この投稿が、アプリケーション開発者がプルーフオブステークへの待望の移行に備えるのに役立つことを願っています。今後数週間で、より幅広いコミュニティによるテストに長寿命のテストネットが利用できるようになります。また、インフラストラクチャ、ツール、およびアプリケーションの開発者が質問をしたり、Mergeに関する最新の技術アップデートを聞いたりするためのMergeコミュニティの呼びかけも予定されています。またね👋🏻


「セーフヘッド」セクションのコアコンテンツを提供してくれたミハイルカリーニンと、この投稿のドラフトをレビューしてくれたダニーライアンとマットガーネットに感謝します。


イーサリアム
  1. ブロックチェーン
  2.   
  3. ビットコイン
  4.   
  5. イーサリアム
  6.   
  7. デジタル通貨交換
  8.   
  9. 鉱業