コンテンツへスキップ

Lido CSMの設定方法

公式ドキュメント設定ガイドに更新があるかもしれないので見比べながら実施する
※サーバーをソロステーキングと併用する想定
Holeskyテストネットでの手順

(最終更新2024年7月20日)

目次

Lido CSMとは

Lido CSM (Community Staking Module)とはソロステーカー達がバリデーター役を担うLidoの新しいリキッドステーキングサービスです。

従来のLidoのリキッドステーキングは許可型で、Lido DAOが選んだ”プロ”の団体しかバリデーターになれませんでした。一方で、Lido CSMは誰でも自由にバリデーターになれます。(Holeskyテストネットではソロステーカー認定されているアドレスの所有者からアーリーアドプションに参加できましたが、現在は誰でも参加できるようになっています。メインネットでもアーリーアドプションフェーズがあるそうです。メインネットでは2024年中に稼働する予定です。)

Lido CSMのバリデーターを運用するためには、バリデーター1つあたり1.5~2 ETHを担保にする必要があります。担保はETH, stETH, wstETHから選ぶことができ(送金後はstETHに変換されます)、通常のstETHと同様に、担保にもステーキング報酬が発生します。バリデーター運用の報酬と合わせると、stETHを裸で保有しているのに比べ、利回りが2倍くらいになります。

誰でも自由にバリデーターになれますが、ソロステーキングと同等の知識を求められますし、265日24時間サーバーを稼働させ続けないといけません。バリデーターのパフォーマンスが悪いと担保から罰金が引かれます。ソロステーキングの経験がなければHoleskyテストネットで練習してからにしましょう。Lido CSMへの参加は何があっても自己責任でお願いします

Lido CSMの設定手順

※実行クライアントとビーコンノードが同期完了している前提です。

バリデーターのkeystoreを作成する際に、withdrawal addressとfee recipientをLidoの指定するアドレスにします。Deposit dataは通常のステーキングローンチパッドにアップロードせず、Lido CSM Widgetにアップロードします。担保をLido CSM Widgetに送付すると、Lidoが代理で32ETHをデポジットしてくれ、バリデーターが稼働されます。

バリデーターkeyの作成

  • keystoreを生成する前に、ソロステーキングのkeystoreとdeposit dataが残っていたら削除する。
cd ~/staking-deposit-cli/validator_keys

sudo rm
  • keystoreとdeposit dataを生成する。keystoreのバックアップフレーズはソロステーキングと併用しない方がいいです。withdrawalアドレスはLido CSM指定のアドレスにするのを忘れない。
./deposit new-mnemonic --num_validators バリデーター数 --chain holesky --eth1_withdrawal_address 0xF0179dEC45a37423EAD4FaD5fCb136197872EAd9

バリデーターサービスの設定

サーバーをソロステーキングと併用する場合、validator_definitions.ymlでバリデーターごとに異なるfee-recipientを指定することができますが、管理上シンプルにするためにソロステーキングと完全にサービスを分けます。

  • Lido CSM用のkeystoreを保存するディレクトリを作成し、keystoreを取り込む。
sudo mkdir -p /var/lib/lighthouselido/validators

cd /usr/local/bin

sudo lighthouse account validator import --network holesky --datadir /var/lib/lighthouselido --directory=$HOME/staking-deposit-cli/validator_keys
  • 新しいユーザーを作成し、keystoreを取り込んだディレクトリの権限を付与する。
sudo useradd --no-create-home --shell /bin/false lighthouselidovalidator

sudo chown -R lighthouselidovalidator:lighthouselidovalidator /var/lib/lighthouselido/validators
  • サーバー起動時にバリデーターが自動的に実行されるためのserviceファイルを作成する。Lido CSM指定のfee recipientアドレスにする。
sudo nano /etc/systemd/system/lighthouselidovalidator.service
[Unit]
Description=Lighthouse Lido Validator
Wants=network-online.target
After=network-online.target

[Service]
User=lighthouselidovalidator
Group=lighthouselidovalidator
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse vc \
  --network holesky \
  --datadir /var/lib/lighthouselido \
  --suggested-fee-recipient 0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8 \
  --builder-proposals

[Install]
WantedBy=multi-user.target
  • バリデーターを起動し、ログに問題がなければ、サーバー起動時にバリデーターが自動的に実行されるようにする。
sudo systemctl daemon-reload

sudo systemctl start lighthouselidovalidator

sudo journalctl -fu lighthouselidovalidator

sudo systemctl enable lighthouselidovalidator

Lido CSM Widgetの設定

  • SFTPを使用してdeposit dataをブラウザ操作するパソコンに送付する。
sftp -P xxxxx ethereum@192.168.0.xx

get staking-deposit-cli/validator_keys/deposit_data-1720243315.json deposit_data_lido.json
  • 用済みのkeystoreとdeposit dataは削除する。
cd ~/staking-deposit-cli/validator_keys

sudo rm
  • Lido CSM Widgetを開き、ソロステーカー認定されているウォレットを「Connect wallet」ボタンでつなげる。
  • Manager Addressを普段使いのホットウォレットに変更する。(セキュリティの観点から、ソロステーカー認定のウォレットは担保送金や報酬受取りのトランザクションをしないほうがよい)
  • 担保と送金手数料を普段遣いのウォレットに用意する。
  • 「Create Node Operator」ボタンをクリックする。
  • 担保をETH, stETH, wstETHから選択し、deposit dataの中身をコピペし、Submitをクリックする。

報酬の受取

報酬はstETHで勝手にリベースされていくので特段受け取る必要はないです。Claimをすることでウォレットに送金されます。受け取る報酬はETH, stETH, wstETHの中から選べます。

  • Lido CSM Widgetを開き、Manager Addressとなっているウォレットを「Connect wallet」ボタンでつなげる。
  • 「BOND & REWARDS」の「CLAIM」から出金するトークンの種類と金額を設定し、「Claim rewards and bond」ボタンで出金申請のトランザクションを実行します。トランザクションが完了したら出金証明のNFTがRewards Addressにあることを確認します。
  • Lido Widgetを開き、Rewards Addressとなっているウォレットを「Connect wallet」ボタンでつなげる。
  • 「WITHDRAWALS」の出金リクエストがあることを確認し、Pendingであれば認可されるまで待ちます。Ready to claimになったら「Claim」ボタンで受取のトランザクションを実行します。トランザクションが完了したらRewards Addressで受け取れていることを確認します。