
原題:「Understanding Withdrawals》by Jim McDonald
原題:「
最初のレベルのタイトル
歴史
歴史
2020 年 12 月にコンセンサス チェーンが初めて開始されたときは、コンセンサス チェーンから実行チェーンに情報を送信することはできません。つまり、コンセンサスチェーンでは残高を蓄積できますが、その時点では出金が技術的に不可能であるため、実行チェーンを介して現金を引き出すことはできません。長年にわたり、イーサリアムの構造は新しい研究結果に対応するために変更され、現在のレイヤー 2 中心の拡張モデルに変換され、実行チェーンの元の外観がほぼ維持されてきました。 2022 年 9 月に、実行チェーンはコンセンサス チェーンと合併し、実行ブロックはコンセンサス ブロック内のデータのサブセットになります。この時点で、コンセンサス チェーンから実行チェーンに情報を転送することが可能になります。その一例として、バリデーターの報酬があります。
コンセンサスと実行チェーンがどのように相互作用するか、およびマージされたブロックがどのように構築されるかについては、記事「マージ後の報酬について」で詳しく説明されています。重要な点は、合併後にのみ撤退が可能となることだ。
バリデーターは何をしているのでしょうか?
これらのバリデーターは、ブロックチェーンのセキュリティを維持するための行動と引き換えに、イーサリアム プロトコルによって直接生成され、コンセンサス チェーンに記録される報酬を約束されています。
最初のレベルのタイトル
イーサリアム出金誓約の動作原理を理解するための記事
イーサリアム出金誓約の動作原理を理解するための記事
すべてのバリデーターの中で、コンセンサスチェーンは累積報酬として 100 万 ETH 以上を生成しました。個々のバリデーターの場合、報酬はさまざまな要因によって決まりますが、最も明白なのはアクティブなバリデーターとしての時間です。多額の報酬を獲得したバリデーターは数多くいます。
マージ以降、上記の報酬に加えて、ブロックを提案するバリデーターはトランザクション手数料の一部を受け取ることに注意してください。これらの手数料は実行チェーンで直接支払われるため、以下では説明しません。
最初のレベルのタイトル
上海アップグレード(注4)では、コンセンサスチェーンから実行チェーンに報酬を転送するメカニズムが提供され、各実行ブロックにはETHを実行チェーンアカウントに転送する約16回の出金(注5)が含まれます。出金には次のデータ構造があります。
イーサリアム出金誓約の動作原理を理解するための記事
図 3: 撤退
引き出しの個々のコンポーネントは次のとおりです。
出金インデックス 簡単に参照できる出金の一意の識別子。
Validator Index (バリデーターインデックス) コンセンサスチェーン上の出金元のバリデーターのインデックス
住所 (アドレス) 出金が行われるアドレス
ブロックが実行チェーンにインポートされると、指定された金額に応じて出金が処理され、対応するアドレスの残高が増加します。引き出しはトランザクションではなく、ガスを消費せず、引き出しアドレスでスマートコントラクト操作をトリガーしないことに注意してください。ブロックが処理されると、対応する残高は増加しますが、それ以外には何も起こりません。
最初のレベルのタイトル
引き出されたETHはどこから来たのでしょうか?
上記の情報は出金とは何かを説明していますが、出金が行われた場合、ETH はどこから来るのでしょうか?
出金は、既存のアカウントから送金されるのではなく、イーサリアムプロトコルに従って生成された資金(つまり、新しく鋳造されたETH)で支払われます。これにより、コンセンサスチェーンからの引き出し総額が入金額の合計よりも高い場合でも、いつでも引き出しが支払われることが保証されます。
最初のレベルのタイトル
内部的には、コンセンサス層ソフトウェアはバリデーターの単純なリストを維持します。
イーサリアム出金誓約の動作原理を理解するための記事
各バリデータ エンティティの個々のコンポーネントは次のとおりです。
インデックス (インデックス) このバリデータに対応する一意のインデックスとリスト内のその位置
状態 (State) バリデーターの現在の状態 (「アクティブ」または「終了中」など) (注 7)
Balance (Balance) バリデーターの現在の残高 (Gwei 単位)
出金認証情報 (Withdrawal credentials) バリデータの出金認証情報
上記の概念のほとんどは説明不要ですが、出金伝票については説明が必要です。各バリデーターは一連の出金資格情報を持っています。これらの認証情報は、最初のデポジットとその後の報酬を含むコンセンサス層の資金の流れを制御します。
現在、出金証明書は 2 つあります。
「タイプ 0」の出金認証情報として知られる BLS 公開キーから生成されます。
実行アドレスから生成されるもので、「タイプ 1」の出金証明書と呼ばれます。
コンセンサス チェーンは、インデックス 0 から開始してセット内の最後のインデックスまで下降し、再び最初から開始して、出金を順番に処理します。現金引き出しプロセスについて考える方法として、片手のアナログ時計を使用できます。時計の各目盛りは、バリデーター インデックス 0 から最後のインデックス (現在約 520,000) までのバリデーターを表します。
イーサリアム出金誓約の動作原理を理解するための記事
チャート4 撤退クロック
上海アップグレードが開始されると、ブロックには引き出し情報が含まれます。どのバリデーターを出金できるかを選択するために、時計の針がバリデーターの周囲を回転し、出金資格のあるバリデーターを指すたびに、次のルールに従ってバリデーターの残高の一部またはすべてが引き出されます。
バリデーターがタイプ 1 証明書を持ち、「アクティブ」状態 (注 8) にあり、32 ETH を超える残高がある場合、32 ETH を超えた部分が引き出されます。
バリデーターがタイプ 1 の資格情報を持ち、残高がゼロ以外の「引き出し可能」状態にある場合、残りの残高はすべて引き出しられます。
時計の針がラウンドを完了するまでにかかる時間は、資格のあるバリデーターの数によって異なります。
この記事の執筆時点では、約 520,000 人のアクティブなバリデーターがいます。ブロックあたりの出金が 16 回、1 日あたり 7,200 ブロックの場合、対象となるバリデータ セットの各ラウンドを処理するには約 4.5 日かかります。ただし、上のグラフが示すように、対象となるバリデーターの数が変化すると、この時間も変化します。
最初のレベルのタイトル
前述したように、バリデーターとしての資格を得るには、タイプ 1 の出金バウチャーを持っている必要があります。この記事の執筆時点では、バリデーターの約 40% がタイプ 1 の証明書を持っており、残りはタイプ 0 の証明書を持っています。上海のアップグレードにより、出金証明書をタイプ 0 からタイプ 1 にアップグレードできるようになり、バリデーターは報酬を受け取ることができます。出金資格情報を変更するには、コンセンサス チェーン上でブロードキャストされる署名付き操作を作成する必要があります。この操作の構造は次のとおりです。
イーサリアム出金誓約の動作原理を理解するための記事
図6:出金証明書変更操作
操作のコンポーネントは次のとおりです。
バリデーターインデックス この操作が適用されるバリデーターのインデックス
出金BLS公開鍵 (Withdrawal BLS public key) 現在のBLS出金証明書のBLS公開鍵
実行アドレス 新しい出金伝票の実行アドレス
署名 操作の他のフィールドに関する現在の BLS 引き出し資格情報の秘密キーによって作成された署名。
ビーコンチェーン上の操作プロセスは次のとおりです。
「バリデーターインデックスによって定義された各バリデーターについて、指定された BLS 公開キーが現在のバリデーターに一致するタイプ 0 の出金証明書に変換できるかどうかを確認します。変換できる場合は、指定された実行アドレスをタイプ 1 の出金資格情報に変換し、バリデーター用に更新します。」
したがって、資格情報を変更する操作は 1 回だけ実行できます。資格情報の変更が処理されると、オンチェーンバリデーターの定義にはタイプ 1 の出金資格情報が含まれるため、上記のように一致するタイプ 0 の出金資格情報は存在しません。つまり、タイプ 1 資格情報が設定されると、その資格情報は存続期間中変更されません。 (注11)
実行アドレスを選択
出金証明書を変更する最初のステップは、出金を受け取るイーサリアム実行アドレスを選択することです。上で説明したように、変更できるのは 1 つだけであるため、設定を行う前にアドレス秘密キーの管理が安全であることを確認する必要があります。複数のバリデーター ID がある場合は、バリデーター ID ごとに異なる出金アドレスを指定するか、すべてのバリデーター ID に同じアドレスを使用するかを検討する必要があります。
同じアドレスを設定すると、このアドレスに報酬が早く蓄積されるため、ガスの消費が少なくなり、便利です。
異なるアドレスを設定し、それらを無関係にしておくと、これらのバリデーター ID が互いに関連していない場合 (異なる貯蓄アドレス、異なるブロック提案の落書き待機)、バリデーター ID のセキュリティが向上します。
作成操作
実行アドレスを選択したら、バリデータごとに操作を作成して署名する必要があります。出金資格情報に関連する個人情報 (秘密キーまたはシード フレーズの可能性があります) を公開することは機密性が高いため、オフラインで作成することをお勧めします。これを行う方法はこの記事の範囲を超えていますが、ethdo ツールを使用してこれを行うための詳細なガイドを参照することも、将来利用可能になる他のツールやウィザードを使用することもできます。
オペレーションを作成したら、コンセンサス チェーン上でブロードキャストする必要があります。上海アップグレード後に操作がコンセンサス ノードに提供された場合、その操作はブロックにパッケージ化される次の機会にネットワークにブロードキャストされます。上海のアップグレード前に操作がコンセンサス ノードに提供された場合、操作は保存され、アップグレードの完了後にネットワークにブロードキャストされます。これには、Shanghai アップグレードを認識するコンセンサス ノードに接続する必要があることに注意してください。現時点では、これらのコンセンサス ノードは 2 月中に利用可能になる予定であり、メインネットのアップグレードに適した時期が与えられます。
最初のレベルのタイトル
前述したように、資格情報の変更操作の作成はオフラインで実行する必要があります。これにより、出金用の秘密鍵が安全でないコンピュータにさらされて秘密鍵が盗まれるという事態を回避できます。ただし、オンライン コンピューターにアクセスするには、ビーコン ノードから情報を取得し、最終的に資格情報の変更操作をブロードキャストする必要があります。したがって、オンライン/オフライン プロセスを使用して変更操作を作成およびブロードキャストすることをお勧めします。
イーサリアム出金誓約の動作原理を理解するための記事
図 7: オンラインおよびオフライン構成での出金伝票の作成およびブロードキャスト変更操作
このプロセスに従うツールは数多くあります。たとえば、ethdo には、このプロセスの実行方法を説明する独自のドキュメントがあります。以下は各ステップの概要であり、その役割と重要性について説明しています。
1. チェーンに関する情報を取得する
有効な署名付き資格情報変更操作を作成するには、チェーンからさまざまな情報を取得する必要があります。正しい情報を確保するには、チェーン自体から情報を取得する必要があります。また、現在のすべてのバリデーターのリストを取得することをお勧めします。これにより、オペレーションの作成が容易になると同時に、作成されたオペレーションがバリデーターに適しているかどうかを検証できるためです。
この情報はアクティブなコンセンサス ノードから取得されるため、インターネットに接続されているコンピューターから取得する必要があります。バリデータープログラムを実行しているほとんどのエンティティはコンセンサスノードにアクセスできる必要がありますが、ステーキングプロセスをファシリテーターに委任する場合は、ファシリテーターから必要な情報を取得するよう努める必要があります。
これにより、チェーンに関する情報を含むファイルが生成されます。ファイル自体には秘密キーやその他の機密情報は含まれません。
2. チェーン上で情報を転送する
チェーン情報を収集したら、オンライン コンピュータからオフライン コンピュータに転送する必要があります。現在の一般的な方法は、USB ストレージを使用することです。これにより、2 台のコンピュータが直接接続せずに情報を転送できるようになります。これは、オフライン コンピュータをインターネットから完全に切断できることを意味し、秘密キーやシード ワードのセキュリティが大幅に向上します。
3. 認証情報の作成操作
チェーン情報がオフライン コンピューターで利用可能になると、資格情報の変更操作を作成できます。これには、現在の出金資格情報を作成したシード フレーズと秘密キーへのアクセスが必要となるため、オフライン コンピューターでプロセスを実行する方が安全です。
秘密キーとニーモニックは複数の検証者の資格情報を作成する場合があるため、作成プロセスでは複数の変更操作が必要になる場合があります。
これにより、資格情報を変更する操作を含むファイルが生成されます。ファイル自体には秘密キーやその他の機密情報は含まれません。
4. 転送証明書変更操作
資格情報変更操作用のファイルが作成されたら、そのファイルをオフライン コンピュータからオンライン コンピュータに転送する必要があります。繰り返しになりますが、USB ストレージなどを使用するのが一般的なベスト プラクティスです。
5. ブロードキャスト資格情報の変更操作
最初のレベルのタイトル
要約する
要約する
出金機能は上海アップグレードで展開され、コンセンサスチェーンの開始以来初めてユーザーがコンセンサス報酬を利用できるようになります。セットアップが完了すると、どのバリデーターでも自動的に利用できるようになり、アップグレードにより、まだ撤回の準備ができていないバリデーターを構成するメカニズムも導入されます。
バリデーターのライフサイクルが完了すると、コンセンサスチェーンは 2020 年 12 月以降に誓約者に対して行った約束を果たし、バリデーターがシステムから離れることができないと考えていたシステムから離れることを許可します。追加のバリデーターは、イーサリアムに強力なセキュリティとより強力なチェーンをもたらします。
1. イーサリアムには複数のチェーンがあり、通常はコンセンサス チェーン (またはビーコン チェーン) と実行チェーンと呼ばれます。詳細については、「マージされた報酬について」の記事を参照してください。
2. 彼らは同期委員会にも参加しますが、これは証言の別の形式にすぎません。
3. イーサリアムのプルーフ・オブ・ワーク・コンセンサス・メカニズムからプルーフ・オブ・ステーク・コンセンサス・メカニズムへの移行を説明するために一般的なことわざを使用することです。
4. コンセンサスチェーン上の Capella アップグレードと同時に。
5. 厳密に言えば、引き出しの最大数は 16 に達することができますが、極端な場合を除き、すべてのスロットが満杯である必要があります。
6. コンセンサスチェーン上のすべての値は Gwei にあるため、コンセンサスチェーンから実行チェーンへのトークン転送は Gwei の整数です。
7. 状態は実際にはバリデーター情報の他のフィールドから取得されるため、バリデーター定義には表示されませんが、記事内の他の場所で参照されているため、ここに表示されます。
8. 「アクティブ」と「引き出し可能」のステータスの定義については、記事「バリデーターのライフサイクルを理解する」を参照してください。
9. 16,384 人のバリデーターを超えると、十分な資格のあるバリデーターが 16 人に満たない場合でも、出金時計の針は止まりますが、これがテストネットの外で起こる可能性は低いです。
10. 一部のブロックは提案されなかったか、提案後に孤立したため、この数字は実際には約 7160 でした。
11. 新しい運用が導入されるとこれは将来変更される可能性がありますが、これを書いている時点ではそのような計画はありません。
12. アップグレード後の最初の数日間は認証情報を変更するバリデーターの初期ピークが発生すると予想されますが、その後は、認証情報を変更できるほとんどのバリデーターが既に変更を行っているため、キューに並ぶ人はほとんどなくなると予想されます。
「原文を読む」をクリックすると記事の内部リンクが表示されます!