見出し画像

Ethereum の Native Staking と、 EigenLayer のリステークについて

昨今、LSDFi といわれる、Ethereum のステーキング報酬を利用したDeFiが流行っています。LSDFi において、Native Staking はステーキング報酬の原資として非常に重要であり、多くのLSDFi が Native Staking をする人に優遇を与えています。

また、Ethereum の Merge が始まった直後は 直接 Validator のサーバーを家に建てて Linux 上で運営するしかやり方がなかったですが、昨今は便利な Staking as a Service (SaaS)サービスが出てきており、複雑なサーバー管理の知識がなくてもバリデーターになることができます。(去年覚えた知識が陳腐化していく・・・)

とはいえ、非常に高度な知識が要求され、かつ Solo Staking においては最低32ETHの Deposit が必須であり、知識と経験を積むことが非常に重要かつDYOR な分野であります。

今回、現在非常に注目されているEigenLayer への Native Stakingサービスの運用のため、 AllNodes と言われる Staking Service を利用して Solo Validator になり、 EigenLayer への Restake まで行ったので、そのやり方について説明します。


AllNodes を利用して Validator ノードの構築

AllNodes とは、クラウド上で、複雑なサーバー管理の知識が必要なくEthereum 等のノードを建てることができるサービスです。2023年7月時点では、月額5ドルを支払うことで簡単にEthereum のバリデーターを建てることができます。

AWS 等で自前でサーバーを建てることに比べて、AllNodes のメリットは二つ
1, 複雑な知識なく素早くノードを建てることが可能
2, AWS での運用と比べて、安くなることが多い

このうち、値段について説明しますが、AWS 等で自前でクラウド運用するより、 AllNodes を使ったほうが安くなることが多いです。なぜなら、AllNodes では BeaconChain は共有のものを使い、 バリデーターの部分だけ自前サーバーで運用する形になるからです。(通常、BeaconChain を自前で運用すると、数百GBのSSD 容量が必要なため高額になることが多い)

また、自宅サーバーで運用するとネットワークの瞬断などによる Attension Missed が毎日数回ずつ発生することがありますが、AllNodes は可用性が高いので Attension Missed が少ないと言われています。

また、AllNodes は日本語に対応しているのが日本ユーザーにとってはうれしいですね。

AllNodesでのノードの建て方

AllNodes では、メールアドレスでの登録の他に、Web3 ログインも用意されており、ハードウェアウォレットでのログインもできます。

こちらのAllNodes のガイドでは、Step by Step でやり方を書いているので、わからないときはこちらの記事も参考にしてください。

これからは、私が気になる点をピックアップして紹介します。

まず、AllNodes でステーキングする前に、32ETH を用意します。Ethereum のステーキングにおいては、最低要件が32ETHからと決められており、Solo Staking をするときには必ず32ETH単位でバリデーターを建てないといけません。

もし、32ETHを用意できないがバリデーターを建てたいときは、RocketPool 等を検討してください。RocketPool を利用すれば、 8ETH からバリデーターを運用することが可能です。


Ethereum のノードを建てる選択肢を選んでいくと、Validator Keyを作ってくださいという案内が来ます。Validator Key とは、Ethereum の BeaconChain にETHを入れるためのキーです。通常のDeFi と違い、コントラクトの中に トークンを入れるのではなく、ステーキングにおいてはEthereum の中にある特別なレイヤーに ETH を入れていきます。

このバリデーターのキーですが、別のキージェネレーターを使って作成することを私はお勧めします。なぜなら、セキュリティのためには、 AllNodes に全てを依存しないのが大事だからです。(仮に、AllNodes に致命的な欠陥があっても、 Validator Key を別のソフトで作れば自分のお金を失うリスクを削減できます。)

Wagyu Key Gen で Validator Key の作成

というわけで、Key Generator を使ってValidator Key の作成を行いましょう。今回は、Wagyu Key Genを使います。こちらはWindows 上で簡単に操作することができるソフトです。

まず、Wagyu key Gen を利用すると、シードフレーズを新しく作るか既存のシードフレーズを作るかを聞かれます。初めてバリデーターを立ち上げる場合は、新しいシードフレーズを作りましょう。既存のMetaMask のシードフレーズなどでは、バリデーターを作ることは出来ません。(というかお勧めしません)

バリデーターを建てる人にとっては言うまでもないことですが、シードフレーズは紙に書くなどして厳格に保管してください。ウイルスの可能性などを考えると、自分のPCやクラウドでの保管もお勧めしません。

また、余裕がある人は、エアギャップPCと呼ばれるネットワークにつながないPCを用意することをお勧めします。Wagyu Key Gen はスタンドアロンで動作します。

シードフレーズを保管した後は、Validator Keys の生成をします。運用予定のバリデーターの数だけ、Validator Keys の作成ができます。

また、この時に、Ethereum Withdrawral Address を記入することができます。これはとても大事であり、一度このアドレスを設定すると、ここのアドレスにしか引き出しが出来ません。(ステーキング中に引き出しアドレスを変えることが出来ません。)この仕様により、バリデーター運用の安全性を高めているのです。

また、EigenLayer を使うときは、この引き出しアドレスは必ずEigenPod のアドレスにしてください。EigenLayer はこの引き出しアドレスをチェックしてRestake するからです。


Validator Keys の設定を設定した後、Validator Key を生成します。Validator Key はjson ファイルで生成されます。この時、deposit_data.json と keystore.json が作成されます。この二つおよびシードフレーズ、引き出し資格情報の違いを覚えておくことは、今後LSDFi を触るうえでとても重要です。ざっくりとこの4つを説明します。

1, deposit_data.json
バリデーターに預入したときの公開情報が記入されているファイル。これを知られても即座にセキュリティリスクはないが、自分の運用しているバリデーターの情報がわかってしまいます。

2, keystore.json
署名用の秘密鍵が入っています。このkeystore.json は、バリデーターが動作するために必要であり、AllNodes などが求めてきます。このバリデーターキーが流出しても直ちに資産を失うわけではありません。ですが、正しくない行いをされる可能性はあるため、直ちに資産を引き出す必要が出てくるでしょう。

3, SeedPhrase
こちらは自分のノードのwallet に関するすべての操作をできるフレーズであり、最高レベルの管理が求められます。もし引き出し資格情報をセットしていなかった場合は、シードフレーズが流出すると直ちに資産を失う可能性があります。紙に書いて厳重に保管してください。

4, 引き出し資格情報
こちらは、預入前、およびバリデーター運用中に一度のみ設定できます。要するに引き出し先アドレスの情報であり、一度設定すると、設定したアドレスのみに資産を引き出すことが可能です。もしLSDFi を使う場合は、このアドレスを所定のコントラクトアドレスにすることを求められることがあります。

AllNodes によるノード構築(続き)

Wagyu Gen によりValidator keyを設定したら、次は 32ETH の資産をビーコンチェーンに入れていきます。


公式サイトのLaunchPad からでもビーコンチェーンへの預け入れはできますが、AllNodes ではAbyss Finance を利用しているようです。ガス代が安いのがウリのようですので、今回はこれを使います。 Abyss Depositor に先ほど生成した deposit_data.json を入力したあと、wallet connect をして資産の預け入れをします。

deposit_data は先ほど述べたように、公開情報なのでそこまでセキュリティ上の危険はありません。この鍵およびデータの違いをしっかりと覚えてください。

Abyss にて 32ETH の deposit が完了したら、AllNodes のサイトに戻り、ノードの立ち上げをします。


Hosting Plan を選択した後、keystore.json をアップロードして登録します。
keystore.json はバリデーターを動かすために必要です。また、この時にSlashing のリスクについて説明があります。Slashing とは Ethereum のバリデーターを運用するうえで最も重大なリスクであり、Ethereum にとって良くない動きをすると預けたETHがペナルティで減少します。

これは、大半の場合において、同じValidator Keys で複数のノードを立ち上げたときにおこります。知ってさえいればSlashing は避けることが出来ますので、絶対に同じValidator Key で複数のノードを立ち上げないでください。


全て完了すると、ノードが立ち上がっているのが確認できるはずです。現在、Ethereum のバリデーターノードは順番待ちが続いており、2023年7月の段階で、実際にActive になって報酬を獲得できるのは 1か月ほど待たされる状態となっております。それまでのあいだはサーバーを動かしながら待ちましょう。

EigenLayer による Restakeについて

さて、ここからはEigenLayer によるRestake について説明します。まず、注意喚起ですが、EigenLayer はできたばかりのサービスであり、運用にはリスクが伴います。コントラクトリスクやGOXリスクなどをよく理解し、問題のない範囲で運用をお願いします。この記事を読んだことによる資産喪失などの責任は一切取りません。

公式ドキュメントをよく読んで勉強してください。

EigenLayer では、Native Staking をするときはまずEigenPod と言われる専用のコントラクトを作成します。
これは、EigenLayer のWebサイトから立ち上げることが可能です。

EigenLayer は、このEigenPod 上に先ほどのNative Staking の引き出し資格情報を向けることにより、デポジットETHの管理をしているようです。
引き出し資格情報は、一度設定すると変更ができないため、引き出しするときは必ずEigenPod 上に資産が入るというやり方です。

つまり、EigenLayer のコントラクト上には実際のETHは入らないということです。そのため、仮にEigenLayer のコントラクトに重大な欠陥があっても、自ら署名をして引き出し操作をしない限り、BeaconChain 上のETHが直ちにハッカーのもとに入るわけではないと思います。

先ほど、Wagyu Key Gen でValidator Keys にて引き出し先アドレスの設定をしましたが、それをEigenPod 上に設定すれば、それで設定は完了するようです。もし、それまでに 引き出し資格情報を設定していないときは、改めてEigenPod 上に引き出し資格情報を設定する必要があります。

また、資産のunstake をするときは、まずはビーコンチェーンで引き出し操作を行い、そのあとにEigenPod に入った資産を引き出しする必要があります。引き出しには7日間の制限があるようです。

最後に

Ethereum のバリデーターになることはEigenLayer にかかわらず、Ethereumへの貢献となり、今後様々なサービスで優遇される可能性があります。また、Ethereum に関する知識も増えていくため、有意義ではないかと思います。

公式サイトの記事はとても有用です。時間があればぜひ勉強しておくと今後のためになると思います。

この記事が気に入ったらサポートをしてみませんか?