
ステーキングリスクに注意:Gethを使ってステーキングを行うと、資産をすべて失う可能性があります
TechFlow厳選深潮セレクト

ステーキングリスクに注意:Gethを使ってステーキングを行うと、資産をすべて失う可能性があります
記事は、イーサリアムネットワークにおいてGethクライアントが占有する過半数的地位と、それによってもたらされる潜在的なリスクを強調している。
執筆:Labrys
編集翻訳:TechFlow
本稿では、イーサリアムネットワークの実行クライアントNethermindに発生した障害により、Nethermindを使用しているすべてのバリデータ(ネットワークの約10%)がオフラインになった事例について述べています。この記事はイーサリアムネットワークにおけるGethクライアントの過剰な支配と、それに伴う潜在的なリスクを強調しています。Gethは安定かつ信頼性の高いクライアントですが、重大なバグが発生した場合、その広範な使用によってネットワーク全体に深刻な影響を与える可能性があります。そのため、コミュニティに対して実行クライアントの多様性の重要性を呼びかけ、ネットワークの集中化リスクを低減すべきであるとしています。
はじめに
今週、イーサリアムネットワークの実行クライアントNethermindに障害が発生し、Nethermindを稼働しているすべてのバリデータ(ネットワークの約10%)がオフラインになりました。
これはNethermindが少数派の利害関係者によって運用されているため、比較的小さな出来事です。以下は私が独自に運用しているNethermindバリデータの総残高のグラフです。現地時間午前4時ごろに障害が発生した際にバリデータがオフラインになったことが確認できます。開発チームは約4時間後にパッチをリリースし、それを適用した後、現地時間午前9時ごろにバリデータが復旧しました。この間、私のバリデータが受けたペナルティは得ていた報酬とほぼ同額でした。同日の午後1時には、ダウン前の残高を超えていました。全体としては、小さな障害で済みました。

多くの人々は、Gethを使用している場合も同様の障害が起きたとき、ペナルティは同程度だと誤って想定しています。しかし、それはGeth自体やその設計とは無関係であり、Gethを使用している人数の多さによるものです。
ClientDiversity.orgのデータによると、イーサリアム上では約84%のバリデータがGethを稼働しています。現在、これを支持する意見として、Gethは間違いなく最も優れた、最も安定したクライアントだという主張があります。確かにNethermindのような少数派クライアントは今週、バグと停止の問題に見舞われましたが、Gethはマージ以降(それ以前からも)一貫して良好に動作しています。私自身の経験でも、Gethから少数派クライアントに切り替えた際には、バリデータにより多くのリソースが必要になり、検証の欠落も多くなることを確認しています。
この記事はGethに対する攻撃ではありません。私はGethチームを非常に尊重しています。しかし残念ながら、Gethが極めて広く使われているがゆえに、Gethが大多数のステークを握っている状況下でのリスクについて正直に議論する必要があります。

より多くの検証漏れやダウン時間が発生することを理解していても、誰もGethから離れようとはしません。特に正常稼働率に依存して最高収益を宣伝するビジネスモデルを持つプロのステーキング事業者にとってはなおさらです。
昨年9月時点では、最大の運営者LidoがGeth上で稼働するバリデータを約76%保有していたと推定されています。

しかし、私は少数派クライアントを稼働していることに満足しています。多少の追加報酬を失ったとしても、ネットワークの非中央集権化のために個人的利益を犠牲にする利他主義者だからではなく、自分のETHが多数派クライアント共通のバグから守られることを知っているからです。
もしGethにバグが発生したらどうなるか?
それはバグの内容によります。
イーサリアムのバリデータの3分の2以上がGethを稼働しているため、Geth内の重大なバグは即座にチェーンの最終確定を阻止します。これはチェーンが停止または中断することを意味するわけではありません。他のクライアントが動作していれば、チェーンは継続します。ただし、約84%のブロックが欠落するため、通常の約12秒のブロック生成間隔が、約75秒に延びます。これらのブロックは再編成(reorg)されやすくなるため、チェーンが再び確定するまで、そこに含まれるトランザクションが保持される保証はありません。これはひどく聞こえるかもしれませんが、思い出してください。イーサリアムはマージ以前何年も「最終確定」という概念を持たず、ビットコインも今日そうであるように、取引所では資金損失のリスクを減らすために、預け入れには6回以上のブロック確認を待つ必要があるのです。
一部の方は、2023年5月に一部のコンセンサスクライアントにバグがあり、2日間にわたりチェーンが2度にわたって最終確定を停止し、多数のブロックが欠落し、一時はネットワークの40%しか稼働していなかったことを覚えているかもしれません。ネットワークが復旧した後、ほとんどのDAppユーザーは、若干のブロック確認遅延以外に問題を感じませんでした。

では、バリデータはどうなるでしょうか?
非アクティビティリーク(不活化ペナルティ)
少数派クライアントが故障した場合、ペナルティは報酬を得る速度と同じペースでETHを失うだけです(前述のバリデータのグラフで確認できます)。しかしGethが故障すると、チェーンの最終確定が即座に阻止されるため、ペナルティはさらに厳しくなります。この増強されたペナルティは「非アクティビティリーク(inactivity leak)」と呼ばれ、チェーンが4エポック(約25分)以上最終確定できなくなった場合、オフラインのバリデータに適用されます。この厳しいペナルティは、オフラインのバリデータができるだけ早く復旧するよう促進するためであり、最悪の場合、オフラインのバリデータのステークを破壊し続け、オンラインのバリデータのステークが全体の3分の1未満になるまで続け、最終的にチェーンの確定を可能にする仕組みです。

非アクティビティリーク中、バリデータがわずか2日間オフラインになると、そのステークの0.6%、つまり2ヶ月分のステーキング報酬相当を失います!
5日間オフラインになると、1年分のステーキング報酬(3.5%)が完全に消失します。つまり、イベント前の残高に戻るには2年以上のステーキングが必要になります。
1週間オフラインで10%のステーク、つまり3年分の報酬が失われます。約20日で50%、約40日で90%のステークが失われます。
一方、少数派クライアントの障害によりオフラインになったバリデータは、40日間でステークの0.4%しか失いません。
不活化ペナルティはどれくらい続くのか?
それはバグ次第です。
バグが修正可能であれば、ペナルティはGethチームがバグを修正し、あなたのバリデータに適用するまでの時間(あるいは別の実行クライアントに切り替えるまでの時間)続きます。
実際には、この問題は数時間から多くても数日以内に解決されると予想されます。最近のNethermind事件と同じ期間で修正された場合、バリデータはステークの0.004%を失うだけで、大きな問題ではありません。
しかし、バグがバリデータに無効ブロックを生成させ、Gethがそれを有効と判断して承認してしまう場合、状況は悪化します。これによりチェーンがフォークします。チェーンは、無効ブロックを含むブランチ(Gethチェーン)と、無効ブロックを無視するブランチ(非Gethチェーン)に分かれます。Gethを稼働するバリデータは両方のブランチを有効とみなすため、重みの大きいチェーン上で構築することを選択します。Gethチェーンには84%のバリデータがステークを賭けており、非Gethチェーンには16%しかいないため、GethバリデータはGethチェーンを重みの大きいチェーンと見なし、引き続きその上に構築を続けます。

もちろん、すべての問題が解決すれば、Gethチェーン上のブロックは廃棄されることになります(これ自体が新たな問題を引き起こします)。しかしより大きな問題は、Gethチェーンが十分なステーク(2/3以上)を持っているため、無効チェーンを最終確定できてしまうことです。
一度Gethチェーンが最終確定すると、Gethチェーンを承認したバリデータは、非Gethチェーンの構築に参加できなくなります(非Gethチェーンが最終確定するまで)。そうでなければスラッシング(罰則没収)を受けます。つまり、Gethを稼働するバリデータは無効チェーンの使用を約束しており、非Gethチェーンが最終確定するまでロックアウトされるのです。これが多くの人が誤解している核心的なリスクです。
Gethバリデータが無効チェーンに閉じ込められているため、非Gethチェーン上では非アクティブと見なされ、非アクティビティリークによる損失を被ります。ソフトウェアの更新やバグ修正ではこれらのバリデータを救出できません。彼らのステークは、ネットワークの1/3未満になるまで破壊され続けます。その結果、非Gethチェーンが最終確定可能になります。
現在、ネットワークには28,976,695 ETHがステーキングされています。うち84%(約2400万ETH)はGethを稼働するバリデータに、16%(約500万ETH)はGeth以外のバリデータに帰属します。非Gethチェーンを最終確定させるには、Gethバリデータのステークがネットワーク全体の1/3未満になるまで破壊される必要があります。つまり、約2150万ETH(全ステークの約90%)を破壊し、Gethのステークを約25万ETHまで削減する必要があります(250万+500万ETH未満)。これにより、非Gethバリデータが持つ約500万ETHが2/3以上を占め、チェーンの確定が可能になります。
これは極めて苦痛なプロセスであり、完了するまでに約40日かかります。これにより、すべてのETHの総供給量が約18%減少し、1億枚未満になります。

出口争奪戦
ここで重要な点は、無効チェーン上にいるバリデータたちが何もしないまま放置されないことです。彼らには依然としてステークの退出オプションがあり、それを行使しなければ、有効残高が16ETHに達した時点でネットワークが強制的に排除します。しかし、その場合の損失が16ETHに限定されるわけではありません。
バリデータを退出(強制退出も含む)しても、退出キューに入っている間は引き続きETHを失い続けます!
最悪の場合、非アクティビティリークにより有効チェーンが再び最終確定できるようになるまでに約40日かかることがわかっています。では、退出キューはどれくらいの時間かかるのでしょうか?
退出キューには流出制限があり、各期間(約6.4分)にネットワークから退出できるバリデータ数が制限されています。この制限は以下のように定義されています:

現在の退出レートは6.4分あたり13バリデータですが、すべてのGethバリデータが退出を希望した場合、全員が退出するには少なくとも約260日かかります。90%のステークが約40日で破壊されるため、大多数のバリデータは退出前にステークを完全に失ってしまうでしょう。
最初の2%のGethバリデータが退出を開始すれば、最初の5日以内に退出でき、損失は最大で1年分のステーキング報酬程度に抑えられます。
損失をステークの10%未満に抑えるには、上位3%に入る必要があります。
損失を50%未満に抑えるには、上位8%に入らなければなりません。この時点で、手動で退出を開始していない人は強制的に退出させられ、退出キューに16ETHの有効残高で追加されます。
40日後、ステークの90%が破壊された時点で、85%以上のバリデータがまだキューに残っています。
退出機能があってもあなたを救えないのです。損失は強制退出時の16ETHに限定されません。
では、スラッシングはどうか?
一部の人々は、バグが発生した場合、Gethを稼働するステーカーは非アクティビティリークだけでなく、スラッシングも受けると考えていますが、これは誤りです。
スラッシングは二重署名にのみ適用され、これは完全にコンセンサスクライアントによって制御されます。Gethのバグがコンセンサスクライアントにスラッシング可能なエラーを引き起こすことはありません。Gethが無効ブロックを生成することは、スラッシング対象のエラーではありません。
Gethのバグに適用されるのは、非アクティビティリークのペナルティのみです。
あなたは何をすべきか?
現在Gethを稼働しているステーカーは、絶対多数の実行クライアントを使用することに関連するリスクを完全に理解していない可能性があります。多くの人は、バグが発生しても数時間以内にパッチが提供され、その間の損失はわずかだと誤って想定しています。
多くの人は、無効ブロックを証明することで、無効な最終チェーンにロックオンされ、ほぼ確実に大部分のETHを失うことになるリスクを理解していません。これは現実となる可能性のある真のリスクです。
イーサリアムのステーキングはリスクゼロの投資ではありません。年間最大3.5%のリターンが期待できるツールに、最低7万5千ドルを投資しますか? しかし100%の損失の可能性もあるのです。おそらくしないでしょう。しかし、それがまさに今日のイーサリアムステーカーの84%が行っていることです。
少数派クライアントに移行すれば(同じバグが複数クライアントで同時に発生しないという仮定のもと)、損失は年率3.5%以内に限定できます。
こうした知識を持った上で、それでもGethを稼働し続けるのは狂気です。Gethを使い続けている人々は、このリスクを完全には理解していないとしか思えません。
stETHやcbETHなどのLST(流動性ステーキングトークン)を保有しており、そのLSTのバリデータがGethを稼働している場合は、あなたのイーサリアムがリスクに晒されていることを認識し、Gethが過剰に支配的でなくなるまで、ステーキング解除または別のLSTへの切り替えを検討してください。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News












