イーサリアムPoSにおけるスラッシングの状況 ~バリデータ運営事業者が取るべき対応を検討する~
目次
- はじめに
- スラッシングとは
- スラッシングデータの分析
3.(1) 発生時期による分類
3.(2) 発生時の運用期間による分類
3.(3) 運営事業者による分類 - おわりに
Executive Summary
本レポートでは、イーサリアムのステーキングにおける「スラッシング」の状況を分析し、どのようなことに留意すべきかを検討する。過去データからは一般に、発生割合は低く、発生時期はバリデータ活動の開始当初の割合が高いことが示される。また、バリデータ運営事業者による発生の偏りもあることから、事業者においては、ステーキングならびにスラッシングに対する確実な知識を持ち、設定に対する知見を業務プロセスとして構築することが肝要であるとの結論に達している。
Keywords: Ethereum, Proof of Stake, PoS, Slashing, スラッシング
1. はじめに
イーサリアムのステーキング活動において回避すべき事象に「スラッシング」がある。スラッシングとは、端的にはProof of Stake (PoS)における活動での重大な不備もしくは不正に対する処罰規定であり、2020年12月のPoS開始以降2023年12月現在で405件発生し、没収金額の総額は-325.88 ETHである。これについて、2023年12月末時点における総バリデータ数は90万台であることから、バリデータに対する発生割合は0.045%(=405 / 90万)と低いものであり、また、一件当たりの没収金額も-0.80 ETHと大きくないものである。しかしながら、スラッシングはステーキングにおける明示的なリスクの一つであることから、過去の実績データについて分析を行うことにする。
2. スラッシングとは
スラッシングとは、イーサリアムのProof of Stakeにおいて不備または不正行為が存在したときに、バリデータの資産の一部を没収して、バリデータをネットワークから退出させることを意味する。以下に、イーサリアム公式ホームページの和文FAQの説明を引用する。
スラッシングとは、バリデータがステーキングした資産の一部を破壊し、バリデータをネットワークから退出させる行為を指します。 スラッシングで破壊されるイーサの量は、スラッシング対象のバリデータの数に応じて変化します。つまり、複数のバリデータが共謀して悪意の行為を行った場合、1 名の悪意のユーザーに対する場合よりも厳格に罰せられます。
出所:イーサリアム公式ホームページFAQ([1])
具体的にスラッシングの対象となる行為としては、次の3点が該当する。
- 同一スロットに、2つの異なるブロックを提案、署名した場合
- あるブロックを「取り囲む」ブロックに対して”Attestation”(アテステーション)を提供した場合(事実上、履歴を変更した場合)
- 同一ブロックの2つの候補にアテステーションを提供することで、「二重投票」を行った場合
出所:イーサリアム公式ホームページ「プルーフ・オブ・ステークにおける報酬とペナルティ」([2])
上記の説明からわかる通り、スラッシングの対象となるのは、客観的に不正行為と判断できる事象である。逆に言うと、ハードウェアのトラブルやネットワーク回線の切断等に伴うバリデータ活動の単純な不備はスラッシングには該当せず、これらは「ペナルティ」として扱われる。ペナルティは、獲得したリワードの範囲で調整され、ステークした元本の没収はないことから、スラッシングとは意味を大きく違えるものとなっている 。
3. スラッシングデータの分析
先に2023年12月末基準におけるスラッシングの発生総数は405件であり、没収金額の合計は-325.88 ETHであることを示した。このうち没収金額の統計量は、下表 1の通りである。
上記の統計量から、スラッシングによる没収金額のばらつきは小さく、一件当たり-1.0 ETH前後とみておけば良いことがわかる。そこで以降の分析は、件数を主眼に実施し、没収金額は補足情報として付加することにする。
3.(1) 発生時による分類
はじめに、405件のスラッシング事象を、発生時期に分類する。
発生時期別の件数には偏りがあり、また分析の期間においてバリデータ数は漸増していることから、各月における件数だけでなくバリデータ数に占める割合を調べることも有用であろう。この点、月別の件数を当月末のバリデータ数で除した数字を月次発生割合と定義すると、月次発生割合とバリデータ数の推移は図 2の通りである。
図 1および図 2の目視から、2020年12月、2021年2月、2022年9月、および2023年11月にスラッシングの発生が多いと言えるだろう。これについて、個別データを確認すると、各月の事象は、およそ次で説明することができる。
最後に、月別のスラッシング件数、金額、月末バリデータ数、月次発生割合の実数を表 3で示す。
3.(2) 発生時の運用期間による分類
続いて、スラッシング事象を発生時の運用期間に分類する。運用期間とは、スラッシングを起こしたバリデータについて、バリデータ活動の開始時点からスラッシングが発生した時点までの日数のことを意味する。ここで計算上、一日未満の日数は切り下げする。
これによると、バリデータ活動の開始当日(区分が0の数)が140件と極めて多く、さらに7日の区分も63件であり、全体の半数が7日以内に発生したことがわかる。これらの原因が、バリデータの当初設定の不備等の、人為的な要因によるものであることは想像に難くなく、実際に大口のスラッシングでは、事業者による報告が実施されている([3])。したがって、まず事業者がステーキングならびにスラッシングに対する確実な知識を持ち、設定に対する知見を業務プロセスとして構築することが、初めに取り掛かるべき対策として言えよう。
そしてその先の件数は、およそ日数の増加に反比例して漸減する傾向を示すが、一部546日超730日以下に、周囲の運用期間よりも大きな38件が確認されている。これは、そのうちの32件が2022年8月および9月に発生しており、すなわち、イーサリアムのThe Mergeのタイミングで、何らかの設定の不備が発現したものであると考える 。この特別な状況を除けば、それ以外に特徴的な事象は確認できず、事業者が取る対策は、ハードウェアの安定的な稼働の確保に努めることと考える。
3.(3) 運用事業者による分類
最後に、スラッシング事象を、バリデータ活動の運営事業者別に分類する。
※「保有数」は、各運営事業者が、2024年1月時点で保有しているバリデータの台数を意味する
出所:rated(確認日:2024年1月8日)
表 4からわかることは、上位の3事業者によるスラッシング件数の210件だけで、スラッシング全体の半数を超えているという事実である。一方で、この3事業者が保有するバリデータの台数は36,210台で全バリデータ数90万台の4%に過ぎず、スラッシングの発生は事業者への偏りが強いと言えよう。この点で、運用者の立場では、ステーキングの運営事業者の選定が重要であることがわかる。
また上位3事業者は、事業者内のブログもしくはXにおいて事象を説明しており、その内容も参考になる。([3][4][5])
4. おわりに
本レポートでは、イーサリアムのステーキングにおけるスラッシングについて、過去データを用いて発生状況を分析した。その結果をまとめると、①没収金額は1件あたり1.0ETH前後、②バリデータ数に対する発生割合は低い、③バリデータ活動開始直後の発生割合が高い、④事業者における偏りは大きい、というものであった。このうち特に3点目から、バリデータ活動開始にあたってのバリデータ設定を慎重に行うことが、スラッシングの発生を回避する最大の対応策と言えるだろう。そのうえでスラッシングの発生割合は、累計でも0.045%と小さいものであることから、過度に危険視することなく、安定的な運用体制を構築することが肝要と言えるだろう。
参考文献
[1] Ethereum.org. “よくある質問”. イーサリアム開発ドキュメント. 2023-12-08.
https://ethereum.org/ja/developers/docs/consensus-mechanisms/pos/faqs , (参照2024-01-21)
[2] Ethereum.org. “プルーフ・オブ・ステークにおける報酬とペナルティ”. イーサリアム開発ドキュメント. N/A. https://ethereum.org/ja/developers/docs/consensus-mechanisms/pos/rewards-and-penalties , (参照2024-01-21)
[3] Staked. “February 2 ETH2 slashing event - Post-mortem”. The Staked Blog. 2021-02-03.
https://blog.staked.us/blog/eth2-post-mortem , (参照2024-01-21)
[4] Lido. “Launchnodes Slashing Incident”. Post Mortem: Lido on Ethereum . 2023-10-11.
https://blog.lido.fi/post-mortem-launchnodes-slashing-incident/ , (参照2024-01-21)
[5] Bitcoin Suisse. N/A. X. 2023-11-15.
https://twitter.com/BitcoinSuisseAG/status/1724741985141993821?s=20 , (参照2024-01-21)