イーサリアムの引き出しはどのように機能するのか?
シャンハイ/カペラ・アップグレード後のイーサリアムにおけるステーキングの引き出しの仕組み。技術的なプロセス、引き出しキュー、ステークしたETHへのアクセスについてステーカーが知っておくべきことを解説します。
Date published: 2023年3月30日
フィネマティクスによる解説。シャンハイ/カペラ・アップグレード後のイーサリアムにおけるステーキングの引き出しの仕組みについて、部分的な引き出しと全額引き出しのメカニズム、よくある誤解、ステーキング・エコシステムへの影響を含めて説明します。
このトランスクリプトは、フィネマティクスが公開した元の動画のトランスクリプト (opens in a new tab)のアクセシブルなコピーです。読みやすさのために軽く編集されています。
ビーコン・チェーン (0:31)
シャンハイ/カペラ・アップグレードが急速に近づく中、イーサリアムのステーキングの引き出しと、それがイーサリアム・エコシステム全体にとって何を意味するのかについて多くの議論が行われています。
まず、どのようにして現在の状況に至ったのか、そしてイーサリアムがプルーフ・オブ・ワーク (PoW) からプルーフ・オブ・ステーク (PoS) に移行した際に、なぜステーキングの引き出しが有効化されなかったのかを理解することから始めましょう。
プルーフ・オブ・ステーク (PoS) への移行は、同時に発生する大きな変更の数を最小限に抑えるため、複数のステップに分けて行われました。このアプローチは、特に年間数兆ドルもの価値を決済する確立されたネットワークにとっては不可欠でした。最も重要なステップは、ビーコン・チェーンの立ち上げとマージでした。
2020年のビーコン・チェーンの立ち上げは、イーサリアムのプルーフ・オブ・ワーク (PoW) チェーンと並行して稼働する、独立したプルーフ・オブ・ステーク (PoS) のコンセンサス・レイヤーを作成することで、移行の基盤を築きました。ビーコン・チェーンを早期に立ち上げることで、実際の価値を持つトランザクションを決済する前に、ネットワークを保護するのに十分なETHを蓄積することができました。また、実際の資金をステークした状態で、新しいプルーフ・オブ・ステーク (PoS) のコンセンサスモデルを長期間テストすることも可能になりました。
初期のネットワーク参加者は、ずっと後になるまでETHを引き出せないことを知りながらも、イーサリアムのプルーフ・オブ・ステーク (PoS) ネットワークを保護するために数百万ETHをコミットしました。
次の大きなステップであるマージは、プルーフ・オブ・ステーク (PoS) のコンセンサス・レイヤーと実行レイヤーを統合しました。これにより、ついにプルーフ・オブ・ワーク (PoW) から脱却し、数百万のステークされたETHによって保護される単一の正規チェーン、すなわちイーサリアムのみを維持できるようになりました。マージは、イーサリアムにとってこれまでで群を抜いて最大の変更でした。アップグレードの性質上、ダウンタイムなしで行う必要がありました。
リスクを最小限に抑えるため、マージの範囲は縮小され、プルーフ・オブ・ワーク (PoW) からプルーフ・オブ・ステーク (PoS) への切り替え以外の機能はアップグレードに含まれませんでした。行わなければならなかった最大の「削減」は引き出しに影響を与え、それが今後のシャンハイ/カペラ・アップグレードの焦点となりました。
引き出し (2:09)
ステーキングの引き出しは、その名の通り、ステーカーがロックされたETHを引き出すことを可能にします。引き出しには「部分的」と「全額」の2種類があります。
部分的な引き出しは、バリデータが蓄積された報酬、つまり最大有効残高である32 ETHを超える超過残高を引き出す際に発生します。部分的な引き出しは、「報酬の支払い」または「超過残高の支払い」と呼ばれることもあります。
全額引き出しは、バリデータがエグジットのプロセスを完了し、残高全体が引き出される際に発生します。これは、バリデータが自発的にシステムからエグジットするか、「スラッシング」と呼ばれるプロセスで強制的に排除された場合にのみ発生します。
有効化されると、ステーキングの引き出しは数日ごとに自動的に分配されます。さらに、引き出しプロセスはコンセンサス・レイヤーで開始されるため、どのステップでもトランザクション手数料は必要ありません。
ステーキング報酬の引き出しを開始するには、バリデータは一度だけ引き出しアドレスを提供する必要があります。引き出しはイーサリアムのコンセンサス・レイヤーと実行レイヤーの両方に影響を与えるため、ネットワークの両方の部分を更新する必要があります。「シャンハイ」は、EIP-4895で指定されている引き出しを含む実行レイヤーのアップグレードの名前です。「カペラ」は、同時にアクティブ化される対応するコンセンサス・レイヤーのアップグレードの名前です。これら2つのアップグレードは、まとめて「シャペラ」と呼ばれることもあります。
メカニズム (3:40)
イーサリアム・エコシステムでは、各バリデータに対応するインデックス番号があります。さらに、0x00 または 0x01 として定義される2種類の出金クレデンシャルも持っています。
0x00 は、特定のバリデータに関連付けられた引き出しアドレスがないことを示します。これらのクレデンシャルは、BLS公開鍵のハッシュの最初のバイトをゼロバイトに置き換えたものとして導出されます(これが名前の由来です)。
0x01 は、バリデータが引き出しアドレスを提供したことを意味します。これらの出金クレデンシャルは、0x01 の後に11バイトのゼロが続き、その後に選択したイーサリアムのアドレスが続く形で表されます。
引き出しを有効にするには、0x00 クレデンシャルを持つバリデータは「BLSToExecutionChange」メッセージに署名する必要があります。これはカペラ・アップグレード後に可能になります。
引き出しが有効になると、ブロックを提案するバリデータはバリデータのインデックスを線形にスキャンし、以下のいずれかの条件を満たす 0x01 クレデンシャルを持つ最初の16個のバリデータを見つけます。
- 残高が32 ETHを超えている(蓄積されたバリデータ報酬)
- 「引き出し可能」である(バリデータセットから完全にエグジットしている)
線形探索は、これらの基準に一致する16個のバリデータを見つけるか、16,384回の反復の後に停止します。アルゴリズムは探索が停止したインデックスを記憶しているため、次にブロックを提案するバリデータはそのインデックスから再開できます。最後のインデックスに到達した後、アルゴリズムは最初(インデックス0)から開始します。
良い例えとしては、針が時間を指し、一方向に進み、時間を飛ばすことなく、最後の数字に達した後に再び最初に戻るアナログ時計が挙げられます。
スキャンが完了した後、バリデータは実行ペイロードに含める引き出しのリストを作成します。リストの各項目には以下が含まれます。
- WithdrawalIndex — 各引き出しを一意に識別するために、0から始まり引き出しごとに1ずつ増加する単調増加のインデックス
- ValidatorIndex — 残高が引き出されるバリデータのインデックス
- ExecutionAddress — 引き出しの送信先となる実行レイヤー上のETHアドレス
- Amount — 実行アドレスに送信される金額(Gwei単位)
ブロックを構築または処理する際、実行レイヤーのクライアントはブロックの最後にこれらの引き出しを適用します。引き出しの処理は、ブロックスペースを巡ってユーザーのトランザクションと競合することはありません。1ブロックあたり最大16件の引き出しが処理されるため、スロットの取りこぼしがないと仮定すると、1日あたり最大115,200件の引き出しが処理されることになります。
引き出しの設計はシンプルでありながら、非常に堅牢です。
よくある誤解 (6:30)
最初の誤解は、引き出しを処理する際、優先順位や順序の点で「全額」引き出しと「部分的」引き出しに違いがあるというものです。全額引き出しも部分的な引き出しも、バリデータセットに対する線形スキャンがバリデータのインデックスに到達したときに発生します。唯一の違いは、全額引き出しの場合、線形スキャンでピックアップされる前に、バリデータがエグジットキューを離れ、「引き出し可能なエポック」に到達していなければならない点です。
もう一つの誤解は、ユーザーが引き出しアドレスを提供しないと報酬を失うというものです。これは事実ではありません。バリデータが引き出しアドレスの提供を忘れた場合でも、引き出しが有効になった際にETH報酬が虚無に送られることはありません。代わりに、スキャンは引き出しアドレスを提供していないバリデータをスキップします。
引き出しアドレスは変更できず、一度だけ設定されることを覚えておくことが重要です。ステーカーは引き出しアドレスを設定する際、提供したアドレスの完全な所有権を持っていることを確認し、細心の注意を払う必要があります。
また、引き出しが有効になると、ステーカーがイーサリアム・エコシステムから大量のETHを引き出すだろうという推測もあり、この主張のより強いバージョンでは、それがプルーフ・オブ・ステーク (PoS) のコンセンサス・メカニズムを不安定にすると想定しています。時間の経過とともにどれだけのETHが引き出されるかを完全に予測することはできませんが、いくつかの重要な反論があります。
第一に、ほとんどのステーカーは、引き出しがいつ有効になるかまだ不確実だった時期に、勇気を持ってステークしたイーサリアムのアーリーアダプターです。多くのステーカーは、ネットワークをサポートし、ETH建ての報酬を獲得し続けるために、ステーキングを継続したいという希望を表明しています。
第二に、プルーフ・オブ・ステーク (PoS) のコンセンサス・メカニズムとアクティブなバリデータセットの安定性を確保するため、イーサリアムはエグジットを希望するすべてのバリデータに対して引き出しキューを実装しました。このキューは、エコシステムから同時に離脱できるバリデータの数を制限します。
最初の引き出しスキャンでは、基本的にはビーコン・チェーンの開始以来蓄積された多くの報酬が引き出されます。しかし、それ以降のスキャンでは、処理されるETHの量ははるかに少なくなります。
影響 (8:39)
引き出しを有効にすることで、オープンで双方向のステーキングフローが生まれます。現在、ステーキングフローは一方向であり、ETHはネットワークに流入するだけで、決してエグジットすることはできません。興味深いことに、引き出しを有効にすることで、他の目的で必要になった場合にはいつでもETHを引き出せることがわかるため、さらに多くの人々がステークする動機付けになる可能性があります。
自身のバリデータを実行せず、中央集権型のステーキングプロバイダーでステークしているステーカーは、プロバイダーを別のものに変更できるようになります。ステーキングの利率が低いプロバイダーから資金を引き出してより良い利率を提供するプロバイダーに移したり、中央集権型のプロバイダーから分散型のプロバイダーに移行したり、あるいは自身のバリデータを実行したりすることも可能です。
引き出しは、LidoやRocket Poolなどのリキッド・ステーキングのデリバティブにも影響を与えます。stETHやrETHのようなリキッド・ステーキング・トークン (LST) は、市場の混乱時に一時的にETH価格とのペッグを失った歴史があります。しかし、双方向のステーキングフローにより、ペッグの大きな乖離はすぐにアービトラージ(裁定取引)によって解消されるでしょう。
リキッド・ステーキングや中央集権型ステーキングのアーリーアダプターは、競争があまりなかったため、市場の大部分を獲得しました。しかし、引き出しが有効になると、特に競争力のある利率を提供しない場合、これらの既存プレイヤーの市場シェアは大きく変化する可能性があります。ステーキングプロバイダー間を自由に移動できる機能は、ETHステーキング市場に利益をもたらすでしょう。
まとめ (10:01)
ステーキングの引き出しの有効化は、イーサリアムにとって最も期待されているアップグレードの1つです。この変更がスムーズに実行されることを確認することは非常に重要です。テストを支援するため、バリデータはメインネットで稼働する前に、プロセスを実行して潜在的な問題を解決するためのいくつかの開発ネット(devnet)やテストネットを利用できるようになります。
引き出しは、持続可能で安全かつ分散型の未来の構築に向けて、イーサリアムをさらに一歩前進させるもう一つの改善です。シャペラ・アップグレードは2023年の前半に行われる予定です。
この動画の時点で、ビーコン・チェーンは53万以上のバリデータにわたって1,700万以上のETHを蓄積しています。バリデータの平均残高は34 ETHをわずかに上回っており、これは100万ETH以上の蓄積された報酬があることを意味します。引き出しがこれらの数字にどのような影響を与えるかを見るのは興味深いことでしょう。