ステーキングの引き出し

上海/カペラアップグレード時点で、EIP-4895が加わり、引き出しがビーコン チェーンで有効になりました。このイーサリアム改善提案により、報酬が自動的に実行レイヤーに引き出されるようになり、エグジットしたバリデータが残高すべてのロックを解除できるようになります。ガスは必要ありません。

引き出しの有効化

バリデータがすべての種類の引き出しをできるようにするには、引き出しアドレスを指定し、ビーコンチェーン上のアカウントに登録する必要があります。引き出しアドレスはあなたご自身が管理する必要があるアドレスで、一度設定すると変更できません。

現在のバリデータ

初回デポジットの設定方法に応じて、アカウントの引き出しの準備が整っている場合とそうでない場合があります。
  • ステーキングデポジットCLI: 鍵の生成時に--eth1_withdrawal_addressフラグを使用した場合は、準備ができています
  • Wagyu Key Gen GUI: 鍵を生成する際に引き出しアドレスを指定した場合は、準備ができています(「Advanced Mode(詳細モード)」で確認できます)
ここにバリデータインデックスを入力して、アカウントが引き出しの準備ができているかどうかを確認します。

バリデータ鍵の更新方法

バリデータアカウントにBLS引き出し資格情報(0x00)がまだある場合は、すべての引き出しにどの実行レイヤーアカウントを使用するかを通知するワンタイムメッセージをブロードキャストする必要があります。
  • 0x00 = タイプ0 = BLS鍵 = 古い引き出し資格情報: 引き出しの対象外です
  • 0x01 = タイプ1 = 実行鍵 = 新しい引き出し資格情報: 引き出しは有効です
注: 引き出し資格情報は、提案したブロックからトランザクションフィーを受け取る フィーの受取人と同じではありません。これらを両方とも同じアドレスに設定できますが、それぞれ個別に設定する必要があります。

鍵変更メッセージを生成するためのツール

これらのツールは、必要な鍵と署名するメッセージの生成のに役立ちます。署名されたメッセージは、上海/カペラアップグレード以降、ブロードキャストでき、ブロックに含めることができます。
これにはニーモニックシードフレーズを使用する必要があり、オフラインエアギャップマシンで実行する必要があります。

BLSから実行への変更(BTEC)キュー

記憶にとどめる必要があるキューの1つに、1ブロックで実行アドレス0x01に更新できる BLS0x00引き出しアドレスの数を制限するキューがあります。If more than 16 requests are being made at one time, a queue will be formed and these will be processed in subsequent blocks. Once completed, your validator is permanently enabled for withdrawals, and will be eligible for payouts during the next sweep.

超過残高の引き出し(部分的な引き出し)

超過分の残高引き出しは、アクティブなバリデータの有効残高が32に達し、合計残高が32を超える場合に処理されます。32 ETH超の残高で単一のバリデータが報酬を受け取ることはできないため、これらのアカウントでは32を超える残高が自動的にイーサリアムアドレスに引き出しされます。これらは、残りの32 ETHがロックされ、ステーキングされたままになるため、「部分的な引き出し」または「報酬の支払い」とも呼ばれます。
📝 特定のETH金額の引き出しを手動でリクエストすることはできません

ステーキングからのエグジット方法(全額引き出し)

全額引き出しは、ステーキングしているとは見なされず、バリデータの検証責任から完全にエグジット(終了)したバリデータに対する処理です。バリデータが残高を全額引き出すには、まずエグジットプロセスを完了する必要があります。

ステーキングをエグジット(終了)して残高すべてを引き出すには、次の2つのことを行う必要があります。

  1. 引き出し資格情報を実行引き出しアドレスで更新したことを確認してください
  2. ステーキングをエグジット(終了)するための意図を知らせるため、バリデータ鍵と検証クライアントを使って、自発的なエグジット・メッセージを署名し、ネットワークにブロードキャストします。
ステップ1を完了すると、バリデータアカウントからの引き出しが有効になります。これにより、超過残高の支払い(部分的な引き出し)が自動的に処理されますが、残りの資金については、ロックが自動的に解除されたり、ネットワークからのエグジットがトリガーされることはありません。バリデータを退出し、ステーキングのETHを引き出したい場合は、ご自身のセットアップに該当する以下のガイドを確認してください。コンセンサスクライアント:代替ノードツール:
アカウントを完全に引き出しできるようにするには、まずバリデータアカウントのエグジット(終了)が必要です。バリデータアカウントは、主に自発的または強制的の2つの方法でステーキングをエグジットできます。
  • ステーキング責任を辞めたい場合は、誰でも「自発的なエグジット」メッセージに署名することで、メッセージがビーコンチェーンにブロードキャストされプロセスが開始されます。これは手動のステップです。
  • スラッシングを受けた、または残高が不足しているアカウントは、ネットワーク ルールに従って強制的にエグジット(退出)されます。強制エグジットは自動的に行われ、一度処理が開始されると停止できません。
すべてのエグジット(終了)は、自発的なものかどうかに関係なく、エグジットキューを介して処理される必要があります。これは瞬時に処理されるものではなく、同時に終了しようとしている他のアカウントの数により異なります。
📝 バリデータは、エグジットが完全に完了するまでは検証作業を続ける必要があります
バリデーターがエグジット(終了)し、残高すべてが引き出されると、そのバリデーターに入金された追加の資金は、次のバリデータスイープで引き出しアドレスに自動的に転送されます。そのためETHを再ステークするには、新しいバリデータを有効にする必要があります。

引き出しのメカニズム: 引き出しの仕組み

引き出しは新しいトランザクションの種類ではなく、操作

イーサリアムユーザーは、例えば資金を転送したい場合は、トランザクションに署名してガス代を支払うなど、トランザクションが手動で実行されることに慣れています。EIP-4895(タイトル: 操作としてのビーコンチェーンプッシュの引き出し)は、ステーカーの全プロセスを簡素化する設計を実装しています。ステーカーが手動で引き出しをリクエストするために、新しいトランザクション種類を作成するのではなく、自動でアカウントは数日ごとに適格な超過残高について確認されます。すべてのバリデータは無限ループでチェックされ、利用可能な報酬や引き出された資金は、提供された引き出しアカウントに自動的に「プッシュ」されます。

引き出しキュー

ブロック提案者が、スイープメカニズムを介して利用可能なペイアウトを自動的にチェックし、引き出しキューはブロック提案者によって自動的に処理されます。無限ループでは、すべてのバリデータアカウントは継続的に適格なETH引き出しについて評価されます(これには2つのタイプがあり、以下で詳しく説明します)。 バリデータはインデックス番号順に処理され、最初は0から始まり、後続となる提案者は最後の提案者が中断したところから処理を行います。バリデータが次のブロックを提案することを予定されている場合、バリデータ アカウントのスイープを実行して、適格な引き出しを探します。スイープの実行中、バリデータは最大16,384のアカウントをチェックし、16の利用可能な引き出しを探し、これらの引き出しは次のブロックで処理されます。時計の針のように、このスイーププロセスは一方向に進み、最後のバリデータに達すると、最初から繰り返し行われます。 すべてのバリデータで、潜在的な引き出しについてアカウントが評価されます。
📝「引き出し」キューと「BLS-to-execution」キューはそれぞれ独立しており、競合しません。それぞれブロックごとに制限されています。

エグジットキューおよびアクティベーションキュー

バリデータのアクティベーション・プロセスをすでに経験したことがある人ならご存知かと思いますが、アクティベーション・プロセスは自動ではなく、同時に参加しようとしている他のユーザーが多い場合は特にそうです。 これは、コンセンサス レイヤーがアクティベーションキューを使用して、新規バリデータアカウントがネットワークに参加できる速度を制限するためです。同様に、バリデータがネットワークからどれだけ迅速に 退出できるかを制限するエグジットキューもあります。これはセキュリティ上の理由によるものです。各バリデータあたり最大32ETHの有効残高に制限されているため、ETHの大部分を攻撃に使用し、その後すぐにネットワークから退出できることを防ぐためです。1エポック(6.4分)でアクティベーションまたはエグジットできるバリデータの数は、ネットワーク上の現在アクティブなバリデータの数によって決まります。1エポックごとに4バリデータのエグジットが許可されており、さらに327,680超の合計65,536のアクティブなバリデータにつき、1バリデータのエグジットが認められています。2023年2月の時点で、この制限は7であり、バリデータの数が524,288に達した場合は、8に増えます。
📝「アクティベート」と「エグジット」キューは独立しており、競合しません。 それぞれはエポックごとに制限されています。

エグジットエポックと引き出し可能なエポック

署名付き自発的エグジットメッセージがブロードキャストされるとすぐに、現在のエポック番号に基づき、エグジットエポックおよび引き出し可能なエポックの値が計算されます。これらの値は、バリデータがオンラインで検証を行う必要がなくなる時期と、バリデータが全額引き出しをできる時期を決定します。
エグジットエポック - バリデータがアクティブではなくなり、報酬を獲得しなくなり、スラッシングルールの対象から外れたエポック。このエポックは、他のバリデータのエグジット(レート制限は、ネットワーク上のバリデータ総数により異なる)でまだ上限に達していない最初の利用可能なエポックにより決定され ます。また、エグジットが開始されてから少なくとも4エポック後である必要があります。このエポックまでは(「キューに入っている」間)、バリデータはオンラインである必要があり、通常のスラッシング・ルールが適用されます。 このエポックに達するまで、バリデータをオフにしないでください。
引き出し可能なエポック - 次回のバリデータスイープで、あなたのバリデータ資金を引き出せるエポックです。これはエグジットエポックから256エポック後、およそ27.3時間後に発生します。
エグジットキューの概要署名された自発的エグジットメッセージがブロードキャストされてからの所要時間:
  • エグジット・エポックに到達する前に、現在のエポックから少なくとも~25分 (4 エポック)、ただしキュー待ちのものがない場合、非常に可変
  • 次に、資金が引き出し可能としてフラグ付けされる前に、さらに~27時間 (256エポック)
  • その後、次のバリデータ スイープで完全な引き出しが実行されるまで、最大あと数日 (0x01 の引き出し資格情報を想定)
This timing of this last step is variable depending on validator index, current sweep position, and number of validators. ペイアウトの頻度の詳細については、以下をご覧ください。
0x01引き出し資格情報をお持ちのユーザーが自発的なエグジット(終了)をブロードキャストすると、処理が完了するまではそれ以上のアクションは必要ありません。

各バリデーターが引き出しに関して対してどのように評価されるか

意思決定ツリーに従って、どのタイプの引き出しを開始するかを決定します。 チェックされているバリデータに引き出し可能なETHがある場合、引き出しキューに追加されます。存在しない場合は、そのアカウントはスキップされます。
  1. 引き出しアドレスは提供されていますか?
    • その場合は、次の質問に進んでください
    • そうでない場合は、停止してください。 引き出しは処理されず、アカウントはスキップされます
  2. バリデーターのエグジットプロセスを完了しましたか?
    • その場合は、停止してください。すべての残高の全額引き出しの処理
    • そうではない場合は、次の質問に進んでください
  3. 有効残高は32が最大ですか?
    • その場合は、超過分の残高引き出しが処理
    • そうでない場合は、 引き出しは処理されず、アカウントはスキップされます
ブロック生成者は次のバリデータをチェックし、引き出しを処理する必要があるかどうかをもう一度判断します。このプロセスは、16件の適格な引き出しが見つかるか、16,384のバリデータのチェックが完了するまで、どちらか早い方まで繰り返されます。その時点で、引き出しキューが実行レイヤーに送信され、次のブロックの最後に含まれます。

支払いの頻度に影響を与える要因は何ですか?

すべてのアカウントをチェックするサイクルにかかる時間は、次の要因によって異なります。
  1. 引き出しキューに設定されたレート制限(上海アップグレード前のテストで変更される可能性があります)
    • Max withdrawals per payload: 16 (24)
      1つのブロックで処理可能な最大引き出し数
    • Max validators per withdrawals sweep: 16,384 (214)
      1ブロックでチェックできるアカウントの最大数。16件の引き出しが見つかると停止します。チェックする最初の16,384アカウントで16件の適格な報酬が見つからない場合、そのブロックの引き出しキューはそのまま送信され、次の提案者は前の提案者が中断したところから再開します。
  2. バリデーターアカウントの総数(インデックスカウント、これまでに登録されたすべてのバリデータアカウント、経時的アップのみ)
  3. 適格な引き出しがあるバリデータアカウントの総数(可変)
    • 引き出し資格情報が更新されていないアカウントはスキップされます
    • 全額引き出され、残高がゼロのアカウントはスキップされます
    • 有効残高または合計残高が32未満のアクティブなアカウントはスキップされます
  4. 空スロットの数(逃したブロックの機会、可変、通常は最小限)
  5. コンセンサスレイヤースロットのタイミング: 12 秒(変更の予定はありません)
これを要約して、処理が必要な引き出しの数に応じて、完全なスイープにかかる時間の上限を見積もることができます。
引き出しの数完了時間
400,0003.5 日
500,0004.3 日
600,0005.2 日
700,0006.1 日
800,0007 日

参考文献