logo

メルカリ✖️論文✖️ステーキング

俺たちの戦いはこれからだ!
profile photo
TaniguchiAkira

はじめに

みなさまもご存知のメルカリ社(正確にいうとメルコイン社?)がイーサリアムのステーキングについての論文を発表していました。
今回はこの論文にざっくりと何を書いているのかという説明と、それに対する所感をつらつら記述しようと思います。

詳細

0.要旨

  • 多くの取引所がステーキングサービスを提供している
  • イーサリアムが最も魅力的な選択肢の1つ
  • イーサリアムの複雑なアーキテクチャにより、取引所はステーキングシステムの設計と運用において課題に直面している
  • 本論文では、イーサリアムのソロステーキング方式を分析し、取引所が直面する4つの課題
    • ウォレット設定
    • バリデータキーのセキュリティ
    • 安定したバリデータノード運用
    • 収益性
    • を特定している
  • 顧客資産のマルチティア型ウォレット設定の実装や、クラウドプラットフォームでのバリデータ運用など、解決策を提案している
  • 提案された方法の一部をクラウド上で実装し、Holeskyテストネットで安定した運用を達成した
  • 新たな課題も特定し、それらをオープンチャレンジとしてまとめ、研究の方向性を示している

所感

これを読み終わった時、メルコインのステーキングサービスなら安心して預けれる!と思えているかどうか、楽しみなところ。

1.はじめに

https://r4d.mercari.com/staking.pdf
https://r4d.mercari.com/staking.pdf
  • ステーキングの背景:
    • 2017年頃からProof-of-Stake (PoS)暗号通貨の初期に登場
    • 現在は一般消費者も利用可能になり、主要な取引所もステーキングオプションを提供
  • 取引所のステーキングサービス提供方法:
    • 預託契約: 低金利で顧客資金を安全に保管
    • 貸付契約: 事前に合意した金利で顧客から暗号通貨を借り入れ
    • 投資契約: 固定管理手数料を取り、顧客の資産を代わりに投資
  • ステーキングの利点:
    • 他のDeFiオプション(トークンスワップや貸付)と比較してリスクが低い
    • Tezos、Avalanche、Solanaなどでブロック生成報酬を得られる
  • イーサリアムのステーキング:
    • 時価総額第2位の人気ある PoS 暗号通貨
    • ステークしたイーサがロックされ、ペナルティや資金損失のリスクがある
  • 取引所が考慮すべき要件:
    • 顧客資産の安全かつ確実なステーキング(暗号鍵の紛失防止を含む)
    • 顧客の引き出し要求に迅速に対応するための流動性調整
    • 収益性確保や顧客吸引のための高利回り率の目指し
  • 要件達成のために必要な理解:
    • イーサリアムのコンセンサスメカニズム
    • 暗号鍵管理
    • ウォレット設定
  • 本論文の貢献:
    • イーサリアムステーキングの基本的な課題の説明と文献のギャップ埋め
    • イーサリアムステーキングの安定性と効率性を向上させる一般的な技術の提案
    • テストネットでの実験実施とパフォーマンス評価
    • 新たに明らかになったオープンチャレンジの提示と今後の研究方向の概説

所感

ステーキングの利点として「他のDeFiオプション(トークンスワップや貸付)と比較してリスクが低い」と記載されている。 みんなDeFiを信用しすぎでないか?と常日頃から感じている私にとっては、これは本当に同意。バグのないコードは存在しない。 チェーン自体がステーキングの仕組みを持つと、(比較的)安心して実行できる。 特に下げ相場でどうしようもない時、抱えた現物をどう活かすか、という問題に対する答えにもなる。 ただし、EthereumはSolanaやAvalancheと比べて作業がややこしいので、取引所が代わりにやってくれるとすごく助かる。
なお、さまざまなところで耳にする通り、「not your key, not your coin」の原則は、当たり前だがここでも適用される。
おそロシア。

2.関連研究

https://r4d.mercari.com/staking.pdf
https://r4d.mercari.com/staking.pdf
  • 許可不要なブロックチェーンにおけるコンセンサスの課題:
    • 単純な投票ではSybil攻撃に脆弱
    • ビットコインがProof of Work (PoW)を採用して対処
  • PoWの問題点:
    • 51%攻撃への脆弱性
    • 環境への悪影響
  • Proof of Stake (PoS)の提案:
    • PoWの改善案として長年提案されてきた
    • 初期のPoSアルゴリズムの問題点(nothing-at-stake問題、long-range攻撃)
    • これらの問題に対する改善案(uncle blocks, slashing, checkpoints)
  • 許可型ブロックチェーンにおけるコンセンサスアルゴリズム:
    • Paxos, PBFT等の既存アルゴリズムの適用
    • Tendermint, HoneyBadgerBFT等の拡張プロトコル
  • イーサリアムのPoWからPoSへの移行(The Merge):
    • スケーラビリティ問題解決のための移行
    • デポジットコントラクトの利用
    • 報酬システムの刷新
  • Miner Extractable Value (MEV)に関する研究:
    • MEVの重要性と研究の活発化
    • Proposer-Builder Separation (PBS)の提案
  • 今後の展開:
    • Ethereum Improvement Proposals (EIPs)を通じたプロトコルレベルの改善
    • EIP-7251のステーキングエコシステムへの潜在的影響

所感

こうやってみると、今まで色々あったなぁ、これからも色々あるんだろうなぁという、一種の走馬灯のような、思い出のフラッシュバックが蘇る。
一気に専門用語が多くなってきた気がするが、今回は論文ということなので、細かな説明やリンクは省く。
重要なのは、一つのチェーンを作るのに、これだけの紆余曲折試行錯誤が必要で、そしてこれからもそうだ、ということ。

3.Ethereumステーキングの背景

https://r4d.mercari.com/staking.pdf
https://r4d.mercari.com/staking.pdf
  • イーサリアムの2層構造:
    • Consensus Layer (CL): 履歴の確定化とチェックポイントの提供を担当
    • Execution Layer (EL): トランザクションの実行、イーサの転送、スマートコントラクトの実行を担当
  • コンセンサスアルゴリズム:
    • Gasperというアルゴリズムを採用
    • GHOST(Greedy Heaviest Observed Subtree)ルールとCasper FFGの組み合わせ
  • バリデータの役割:
    • 32スロット(約12秒ごと)を1エポックとし、バリデータセットが更新される
    • 主に2つの役割がある: a) 新しいELブロックの提案(割り当てられた場合) b) 提案されたブロックの検証(アテステーション)
  • 報酬とペナルティ:
    • 正しい行動に対する報酬
    • アテステーションの失敗に対する軽微なペナルティ
    • プロトコル違反(複数の提案や投票)に対する重大なペナルティとスラッシング
    • ネットワーク分断時の非アクティブリーク
  • バリデータのセットアップ:
    • BLS暗号を使用した固有のキーペア(pk, sk)が必要
    • 32 ETHのデポジットとリワード受け取りアドレスの設定が必要
  • ステーキングの開始と終了:
    • デポジット後、アクティベーションキューを経てバリデータセットに追加される
    • アンステーキングには自発的な退出メッセージの送信が必要
    • 退出後、最低256エポック(約27時間)の待機期間がある

所感

何度もいうが、Ethereumのステーキングはハードルが高い。
例えばLedgerやMetaMaskを経由してLidoなどのステーキングサービスを利用することはできる。
これらは32ETHすらも必要ないので、一見お手軽に見えるが、当たり前だがこれにも、「not your key, not your coin」の原則が聳え立つ。
あと、これは暗号資産にだけ関わる話ではないが、そもそも間に業者を挟むと、余計な手数料がかかるのは世の常。最新のノードを用意しなければ罰金も発生する。おそロシア。

4.取引所の挑戦

https://r4d.mercari.com/staking.pdf
https://r4d.mercari.com/staking.pdf
  • Challenge 1: 資産の流動性の欠如
    • 取引所は顧客の引き出し要求に応じるため、一定量のステーキングされていないイーサを保持する必要がある。
    • ステーキング解除(アンステーキング)には最低27時間かかるため、即時の払い戻しができない。
  • Challenge 2: バリデータキーのセキュリティリスク
    • バリデータキーの漏洩:攻撃者がキーを盗み、意図的にスラッシング(ペナルティ)を引き起こす可能性がある。
    • キーの紛失:バリデータが検証義務を続行できなくなり、最悪の場合アンステーキングもできなくなる。
  • Challenge 3: バリデータノードの安定運用
    • イーサリアムプロトコルの定期的なアップグレードへの対応が必要。
    • バリデータのダウンタイムはペナルティにつながる。
    • メンテナンス中に誤ってキーを複数のマシンで使用すると、二重投票によりスラッシングが発生する可能性がある。
  • Challenge 4: 収益の増加
    • アテステーション(検証)の失敗により、報酬が減少またはペナルティが発生する可能性がある。
    • メモリプール内に利益の出るトランザクションが存在しない場合、ブロック提案からの手数料収入が減少する。
    • 運用コストが収益を上回る可能性がある。
    • デポジット後、バリデータが収益を生み出し始めるまでの待機時間がある。

所感

このレベルの知識、経験を積んでいる人間が世界の取引所内にどれだけいるのか、というところが気になる。あなたは本当に取引所に自分のETHを預けて運用を任せられますか?
流動性の問題は仕様も絡むのでしょうがないとして、キーの漏洩、紛失なんて目も当てられない。
攻殻機動隊でも行っていたが、デジタル時代の盗難は盗まれたことに気づかれにくいことが特徴。データはコピーできることが前提となる。さまざまな人間やネットワークが行き交っているオフィスの中で、スラッシュに怯えモジュールのアップデート期限も迫る中、ラザルスやらなんやらがどこにいるのかわからない状況に注意しつつ、サーバ代金を気にしつつ生きる。
人類にステーキングはまだ早かったのだ。

5.提案手法

https://r4d.mercari.com/staking.pdf
https://r4d.mercari.com/staking.pdf
  • ウォレット管理
    • マルチティア型のウォレット構成を提案
    • ホットウォレット、コールドウォレット、ステーキング用ウォレットの3層構造
    • パラメータ設定:
      • p_hot: ホットウォレットの最小準備率
      • p_stake: ステーキングの目標率
      • T: リバランス間隔
    • 流動性プロバイダー(LP)の活用
  • セキュアなソフトウェアとユーティリティ
    • ソフトウェアの監査レポートの確認
    • デジタル署名による整合性の検証
    • 依存関係のある脆弱性チェック
    • 重要なツールのソースコード検査
    • スラッシング保護などの追加ツールの使用
  • クラウド環境の活用
    • セキュアなバリデータキー管理(クラウドのシークレットマネージャー活用)
    • ノード再構築の簡素化
    • 高速で信頼性の高いネットワーク
  • MEV-boosting
    • ブロック提案時の収益最大化
    • MEV-boostソフトウェアの活用
    • フォールバックメカニズムの重要性
  • ステーキングプールの利用
    • 柔軟な資金管理
    • 流動性の向上
    • 流動性ステーキングデリバティブ(LSD)の活用可能性
    • リステーキングの可能性(ただしシステミックリスクの増加に注意)

所感

当たり前だがウォレットの分割は大事。特にコールドの保管運用は生死を分ける。ファームウェアに悪意を忍ばせる手法も公開されたので、何も考えずにHWWをアップデートさせたりとかもしない、慎重な運用が求められる。
最近はFireBlocksのような段階が上がったMPCが普及し始ているので、人類が秘密鍵から脱却する手段として、とてもいいことだと思う。
基本的に枯れたライブラリを使い、特に理由がなければlatestバージョンは様子を見る、ただしセキュリティホールが発見されれば、すぐさま入れ替えるほどのフットワークの軽さと思い切りのよさも必要。
あとは人。やはり人。理想はリファラル採用を行い、身元がわからない人は極力はじく。これぐらい信用がなければ、ブロックチェーン業界では働けない。村社会万歳。

6.実験と評価

https://r4d.mercari.com/staking.pdf
https://r4d.mercari.com/staking.pdf
  • 実験セットアップ:
    • Microsoft Azure クラウド上で2つの仮想マシン (VM1, VM2) を作成
    • D4as_v5クラス(4 vCPU, 16 GiBメモリ)を使用
    • VM1に4つ、VM2に16つのバリデータキーを設定
  • セキュリティ対策:
    • Staking Deposit CLIのコード検査
    • Key Vaultを使用したキー管理
    • Web3Signerと PostgreSQLを使用したスラッシング保護
  • 結果と評価: a) VMリソース使用状況: b) ノードの移行とアップデート: c) 収益性:
    • CPU使用率は安定していた
    • メモリ使用量はELクライアント、CLクライアント、バリデータごとに記録
    • ストレージ使用量とI/O、ネットワーク使用量も測定
    • VMの再起動テストを実施(約8分で完了)
    • 地域間のノード移行テストも実施
    • インフラ運用の日次コストは11.0 USD
    • 各バリデータの平均日次利益は0.00146 ETH
    • アテステーション成功率は約99%
  • セキュリティと運用への示唆:
    • クラウドインフラのセキュリティ機能の利点
    • カスタムスクリプトやクラウド固有の設定の必要性
    • 地理的分散と複数のクラウドベンダーの利用の重要性
  • 推定年間利回り:
    • 約2.84%(MEV-boostを含まない場合)

所感

すごい。この推定年間利回りは利益の全てだろうか、それとも顧客への支払いやサーバ代などの経費などをさっ引いたものなのだろうか。
もう大人しくETHずっと握ってた方が良くね?という野暮な意見は置いといて、一番気になるのは「Web3Signerと PostgreSQLを使用したスラッシング保護」のところ。ここが一番運用的に独自臭がする。
私がEthereumのノードを触っていた2017年ごろ、Gethは少なくとも週一回は再起動しなければ止まってしまっていたぐらい安定していなかった。
あれから7年、だいぶマシになったという噂は聞くがどこまで本当だろうか。
日に日に増えていくノードのデータサイズとの戦いはこれからだ!

7.未解決の課題

  • アテステーション(検証)の失敗の削減:
    • 実験中に時折アテステーションの失敗が観察された
    • 原因の特定には至らなかったが、近隣のCLノードの接続性や性能が関係している可能性がある
    • テストネットでは非退出バリデータのオフライン率が高かった(8.3%)
    • CLのゴシッププロトコルの挙動をシミュレーションで研究する必要性
  • 他のインフラオプションとの比較:
    • クラウド環境以外の選択肢(オンプレミス運用など)の検討
    • 特定のクラウドベンダーへの依存を避ける必要性
    • バリデータ数増加時のコスト効率の検討
    • 他のクラウドプロバイダーが提供する特殊なサービスの検討(例:GCPのブロックチェーンノード専用プロダクト、AWSのセキュアエンクレーブ)
    • 非仮想化オプション(Raspberry PiやFPGA)の検討
  • メインネットのトレンドを使用した最適なウォレット配分:
    • 提案されたウォレット配分(例:ステーキングに70%)の妥当性検証
    • 実際の取引所の活動統計の必要性
    • ブロックチェーン分析による過去のデポジットと引き出し額の推定
    • 市場動向との相関関係の分析
    • 顧客の引き出しと市場変動の関係性のモデル化
    • LSDとイーサの価格評価によるソロステーキングとステーキングプールの選択

所感

「働いてないノード」「結構古いノード」がネットワークの中にはそこそこいる。
なんで放置されているんだろう。よくわからないけど、片っ端からブロックリストに追加していくしかない。
クラウドベンダーへの依存は避けたいが、かといってオンプレはオンプレで場所や熱の問題がある。昔新卒のとき、キーエンスのサーバルームでお茶飲んでてめっちゃ激ギレされたのを思い出した。それぐらいサーバって水に弱いので、気をつけないといけない、と言うこと。

8.結論

  • 研究の概要:
    • イーサリアムのソロステーキング技術を検討
    • 暗号通貨取引所が直面する課題を分析
  • 特定された主な課題:
    • 顧客預金の運用準備金の確保
    • バリデータキーの安全性確保
    • ノード運用の簡素化
    • 収益性の向上
  • 提案された解決策:
    • マルチティア型ウォレット設定の導入
    • セキュリティ対策と運用戦略の推奨
    • クラウドベース環境の活用
    • MEV最大化のための補助ソフトウェアの使用
    • ステーキングプールの利用による直接的な利益増加
  • 実験結果:
    • クラウド環境での複数バリデータの成功的な運用
    • Holeskyテストネットでの全体的なパフォーマンス向上に貢献
    • アーキテクチャのスケーラビリティを確認
  • 新たに発見された課題:
    • 収益性のさらなる改善の必要性
    • 異なるウォレット間の資金配分の最適化
    • 運用の最適化
  • 今後の研究方向:
    • 代替デバイスの使用可能性の探求(コスト削減のため)
    • ネットワーク動作やその他の要因の分析(アテステーション失敗の削減のため)

所感

今までのまとめ、お疲れ様でした。
やっぱりステーキングって怖い。銀行みたいに1000万円まで保証してくれたら、それぞれの取引所に分散させて預ける、とかできそうだけど。
世の中、うまくいかないものですね。

参考リンク

メルカリ、ブロックチェーン技術に関する国際会議「IEEE Blockchain」に論文が採択〜暗号資産ステーキングに関する手法を分析〜
株式会社メルカリ(以下、メルカリ)は、研究開発組織「mercari R4D(アールフォーディー)」(以下、R4D)に所属するリサーチャー・竹井悠人と京都大学 学術情報メディアセンター 教授・首藤一幸氏が共同で執筆した論文が、ブロックチェーン技術に関する国際会議「IEEE Blockchain…
メルカリ、ブロックチェーン技術に関する国際会議「IEEE Blockchain」に論文が採択〜暗号資産ステーキングに関する手法を分析〜
Related posts
post image
日本のソフトウェアに未来はあるのか
post image
〜まさかりに身を委ねてみる〜
post image
Ethereum
EVM
EOA
AA
EIP
EIP7702が出たよ
〜まだEIP3074で消耗してるの?〜
Powered by Notaku