アプリ ドキュメント エクスプローラー
← ブログに戻る エンジニアリング

テストネット第1フェーズ振り返り:メインネットより先に見つけたバグたち

August 4, 2026

テストネット第1フェーズ振り返り:メインネットより先に見つけたバグたち

イーサウェイの最初のテストネット ethwei-testnet-1 は、2026年6月29日から8月4日までの約5週間稼働し、1ブロックあたり約5秒のペースで最終的に621,526ブロックに到達し、計画外の停止は一度もありませんでした。最終供給量は6,999,827,484 ETEで着地しました。

この稼働時間の数字自体は、実はこの記事の本質ではありません。チェーンを5週間、落とさずに動かすこと自体は誰にでもできます。より有益な問いは、実際に意図された使い方をしようとしたときに何が壊れるのか、そしてそれを今、テストネットの段階で見つけるのか、それとも後で、実際の価値がかかったメインネットで見つけるのか、ということです。

私たちは4つの本物の問題を見つけました。その4つすべてが修正済みです。以下がその内容です。

実証されたこと

何が壊れたかに入る前に、このテストネットが実際に何をテストしていたのかを明確にしておく価値があります:

これが基本ラインです。ここから先が本当に重要な部分です。

1. ガバナンス回避手段(深刻度:高)

イーサウェイのテストネットは当初、2つのカスタムガバナンスルールを強制していました:提案を提出できるのはバリデーターのみであること、そして「強い反対(NoWithVeto)」の投票オプションが無効化されていることです。

セキュリティレビューにより、この両方の制限が完全に回避可能であることが判明しました——CosmosのレガシーガバナンスAPIと加重投票(weighted votes)を通じてであり、どちらもカスタムルールを尊重していませんでした。これは理論上の話ではありませんでした。実際に稼働中のテストネット上で悪用可能であることが確認され、その後修正されました。

実戦で鍛えられたフレームワークの上にカスタムルールを継ぎ足すことは、誰かが実際に継ぎ目を確認するまでは問題なく見える、まさにそういう類のものです。

2. その後下された決断

修正はパッチではありませんでした。イーサウェイはカスタムガバナンスのコードを完全に削除し、未改変の標準的なCosmosガバナンスに戻しました——スパム対策はカスタムの権限チェックの代わりに、標準的な方法である提案デポジット(proposal deposit)による経済的な抑止に置き換えられました。

カスタムガバナンスの攻撃対象領域は「回避可能な2つのルール」からゼロになりました。回避すべきカスタムロジックがもはや存在しないからです。パッチを重ねながら脆弱なカスタムルールを永遠に維持し続けることは、より「賢い」選択だったかもしれません。それを削除することは、よりシンプルな選択でした。私たちはよりシンプルな方を選びました。

3. 供給上限が突破されかねなかった問題(深刻度:高)

発行モジュールは、これまでにどれだけ発行したかを内部カウンターで追跡していました。しかし、このカウンターはジェネシスのエクスポート/インポート——多くのチェーンアップグレードが依存するメカニズム——を通じて保持されていませんでした。

アップグレード一つで、このカウンターが静かにリセットされ、ステーキング準備金全体がゼロから再発行される可能性があり、どの個別の取引も異常に見えないまま、100億のハードキャップを崩してしまう恐れがありました。修正方法は、このカウンターをもはや信頼しないことでした:上限は現在、チェーンの実際のオンチェーン供給量に対して強制されるため、内部カウンターが何を記録していようと上限は維持されます。

4. スラッシングの事故(最も興味深い話)

CyphCube-2が廃止された際、それはオフラインになりました——そしてわずか約4分のダウンタイムの後、収監され1%がスラッシングされました。これは10,020,000 ETEに相当し、そのバリデーターに委任していたすべてのデリゲーターに比例して影響を与えました。

調査の結果、これはバグよりもさらに単純な何かに起因することが分かりました:イーサウェイはCosmos SDKの生のデフォルトスラッシングパラメータをそのまま使用していました——100ブロックの署名ウィンドウ(約4分の猶予)と1%のダウンタイムペナルティです。メインネットでは、この設定は日常的なサーバーの再起動や緩やかなソフトウェアアップグレード——攻撃ではなく、ただの通常運用——だけで、そのバリデーターに委任しているすべてのデリゲーターがスラッシングされることを意味します。

修正は二段階で行われました。まず、署名ウィンドウが100ブロックから10,000ブロックに拡大され、ダウンタイムペナルティは1%から0.01%に引き下げられました。その後さらなる見直しにより、この方針はCosmos Hub自身の設定に合わせて再び緩和されました——ウィンドウ内のブロックのうち5%だけが署名されていればよいというもので——猶予期間は約4分から約13時間へと延びました。

二重署名(double-sign)のスラッシングは5%のまま変更されていません。ダウンタイムは事故であり、二重署名は攻撃です。この2つは同じように罰せられるべきではなく、今はそうなっていません。

副産物として得られた、検証可能な供給量の瞬間

同じそのスラッシングは、言うのは簡単でも証明するのはより難しいことを確認する、綺麗な機会も与えてくれました:焼却されたETEは実際に破棄されているのであって、誰かに再分配されているわけではないということです。

総供給量はちょうど10,020,000 ETE減少しました——スラッシング額とトークン単位まで正確に一致しています。そのおかげで、テストネットは開始時よりも実際に少ないETEで終了しました:5週間の累積焼却量が、発行によって生み出された量すべてを上回ったのです。スラッシングから利益を得る者は誰もいません。価値はただ失われるだけです。

この期間で検証された設計上の選択

同じ5週間の運用の中で、いくつかのアーキテクチャ上の決定もその妥当性が証明されました:

このテストネットの限界について正直に

これは制御されたテストネット運用であり、ストレステストではありませんでした。その違いについては率直に述べておく価値があります。ここには、外部の第三者バリデーター、実際のユーザーや実際の資産がかかった状況、実質的な規模での敵対的環境、そして独立した専門的なセキュリティ監査は含まれていませんでした。これらは依然としてメインネット以前に満たすべき前提条件であり、この振り返り記事はそのいずれの代わりにもなりません。

次のステップ:フェーズ2

フェーズ2は、大規模なプレマインではなく、フェアローンチの原則を中心に再設計されたトークノミクスを持つ、まったく新しいテストネットで運用されます。

ジェネシス供給量は最大供給量の70%から10%——10億ETE——に減少し、残りの90%(90億ETE)は参加者が30年間にわたり、年間固定3億ETEのステーキングを通じて獲得します。最大供給量は100億のまま維持されます。

理由は明快です:トークノミクスをどう組み立てようとも、総供給量の70%を単一のアドレスに事前発行することは、脆弱なフェアローンチの物語です。他の誰かが参加する前に事前に配分してしまうのではなく、供給量の90%を参加を通じて獲得できるようにすることは、イーサウェイが実際に基づいている原則により近いものです。

退屈でシンプルなブロックチェーンこそ、良いブロックチェーンです——しかし退屈であることは、テストされていないことを意味しません。それは、本当に重要な瞬間に何も「興味深い」ことが起きないほど、十分に、そして十分早くテストしたということを意味するのです。