あるプロトコルの投票遅延期間を非常に長く設定すれば、完全に安全になりますか?
遅延期間は「純粋なフラッシュローン型」の即時攻撃を効果的に防ぐことができる。なぜなら遅延期間があることで、借りたトークンを投票終了前に返却できなくなり、攻撃者はより長期間の資金ロックと価格変動リスクを負わざるを得なくなり、これにより攻撃の資金コストと複雑さが大幅に上昇するからだ。しかし遅延期間はあらゆる形態のガバナンス攻撃を防げるわけではない——もし攻撃者が(フラッシュローンではなく)自己資金で本当に十分なガバナンストークンを買い入れて保有し遅延期間全体を耐え抜く意思があれば、あるいは複数のアドレスを連携させて単一アドレスの投票重み上限を回避すれば、遅延期間だけではこうした「忍耐強く資金力のある」攻撃者を止められない。
遅延期間のより正確な位置づけは「フラッシュローン型即時攻撃のハードルを大幅に上げる」ことであり、「ガバナンスメカニズムを絶対的に安全にする」ことではない。それは多層防御メカニズムの一層にすぎず、通常はスナップショット時点の設計や定足数のしきい値といった他のメカニズムと組み合わせて使うことで、比較的完全な防御体系を構築できる。
スナップショット時点の前倒しという設計は、具体的にどう機能し、ガバナンス攻撃を完全に阻止できますか?
運用ロジックは以下の通りだ:プロトコルは提案が正式に投票段階に入る前に「スナップショットブロック」を記録し、このスナップショットブロックで各アドレスが保有するトークンの量が、その後の投票期間全体を通じてそのアドレスの投票の重みとなる。たとえこのアドレスがスナップショット後にトークンを送金したり、より多くのトークンを受け取ったりしても、投票の重みは変わらない。これは、攻撃者がフラッシュローンを使って投票結果を操作しようとする場合、借りたトークンがちょうどそのスナップショットブロックの時点ですでに攻撃者の手元になければならないことを意味する——しかし攻撃者は通常、プロトコルがいつ新しい提案を発起しスナップショット時点を確定させるかを正確に予測できず、「一時的に借りて、ちょうどスナップショットの瞬間に間に合わせる」ことを極めて困難にする。
この仕組みは大多数の即興的に発起されるフラッシュローン攻撃を効果的に防げるが、これも万能ではない:もし攻撃者がプロトコルがある提案を発起することを事前に予測できれば(コミュニティでの議論や公開情報を通じて知るなど)、理論上は事前に布陣し、予想されるスナップショット時点で十分なトークンを保有していることを確保できる。このシナリオでの攻撃の難易度は純粋な即時フラッシュローン攻撃よりもはるかに高いが、完全に不可能というわけではなく、必要な情報優位性と準備時間が大幅に攻撃のハードルを引き上げるにすぎない。
veToken(投票エスクロートークン)モデルはフラッシュローン攻撃に耐性があるように聞こえますが、このモデル自体に弱点はありますか?
確かに、veTokenモデルはトークンを先にロックしなければ投票権を得られないという要件のため、「瞬間的に借りて即座に返却する」フラッシュローン攻撃パターンに本質的に耐性があり、これが他のモデルと比べて最大の利点である。しかしこのモデルにも固有のトレードオフがある:資金効率の低下——ロックされたトークンはロック期間中自由に使えないため、保有者にとって明確な機会費用となり、一部のユーザーがガバナンスへの参加意欲を下げる可能性がある。同時に、ロック期間と投票の重みの換算メカニズムの設計が不適切な場合(例えばロック期間が長いほど換算される重みが高くなるが合理的な上限がない場合)、ガバナンス権力が長期間巨額の資金をロックする意思のある少数の大口保有者に集中する可能性があり、これは別の形の権力集中となる。ただし攻撃手法が「トークンを借りる」から「もともと資金力があってトークンを溜め込む」に変わっただけである。
さらに、veToken自体が他のデリバティブトークンにラップされて市場で取引可能になる場合(一部のプロトコルエコシステムでは実際にveTokenを取り巻く二次市場のデリバティブが登場している)、こうしたデリバティブ市場の存在は、ある意味で「金融工学的手段を通じて間接的に投票への影響力を得る」可能性を再び持ち込むことになり、形式が直接トークンを借りることから、デリバティブ市場を通じて間接的に影響を及ぼすことへと変わっただけである。
一般のガバナンストークン保有者は、自分が関わるプロトコルでガバナンス攻撃が発生する確率を下げるために何ができますか?
個々の保有者が単独でガバナンス攻撃を防ぐことは難しい(これは主にプロトコルレベルの仕組み設計の問題である)が、できることには次のようなものがある:積極的に投票に参加すること——健全な投票参加率自体が一種の防御となる。投票に参加するアドレスが多く、より分散しているほど、単一の巨額ポジション(借入であれ自己保有であれ)が一方的に結果を支配することは難しくなる;プロトコルのガバナンスフォーラムでの提案の議論に注目し、明らかに異常な提案(内容が曖昧、緊急の迅速可決を求める、金庫資金の大規模な移転を伴うなど)に警戒し公然と疑問を呈すること——コミュニティレベルでのリアルタイムな監視自体が、遅延期間の設計が達成しようとしている効果である;そしてある協議に資金を投入するかどうかを決める前に、そのプロトコルのガバナンスメカニズムの設計(遅延期間があるか、スナップショット時点がどう設計されているか、定足数のしきい値がどれくらい高いか)を具体的に確認し、ガバナンスメカニズムの健全性をプロトコル全体の安全性を評価する基準の一つとして扱うこと。
もしあるプロトコルがガバナンスメカニズムの技術的な詳細をまったく開示していない、あるいは投票参加率が長期的に極めて低く、意思決定権が明らかに少数のアドレスに集中している場合、これらのシグナル自体が資金投入規模を決める際に考慮に入れる価値がある。
ガバナンストークンの設計の本来の目的は、プロトコルの意思決定権を段階的にチームからより広範なコミュニティへと移すことだが、この仕組み自体が特殊な攻撃対象領域も生み出している:もし投票権が何らかの方法で一時的に取得でき、本当に長期保有する必要がないのであれば、悪意のある人物は理論上極めて短時間で十分な票数を集め、自分に有利でプロトコルに有害な提案を可決させることができる。この攻撃パターンがどう起こるかを理解することは、あるプロトコルのガバナンスメカニズムが健全かどうかを評価する上で重要な要素である。
ほとんどのガバナンス攻撃の核心的なステップはシンプルだ:攻撃者はフラッシュローンや他の短期借入経路を通じて、一度に大量のガバナンストークンを借り入れ、同一のトランザクションまたは極めて短い時間枠内で、この借りたトークンを使って悪意ある提案(例えばプロトコルの金庫資金を攻撃者が管理するアドレスに移転する提案)を可決させ、投票終了後すぐに借りたトークンを返却する。この一連のプロセス全体を通じて、攻撃者は自分自身でトークンを長期保有する必要がなく、トークン価格変動のリスクを負う必要もない——彼らが求めているのはトークン自体の価値ではなく、これらのトークンが一時的に与える投票権である。
ガバナンス攻撃がフラッシュローンを悪用できる鍵は、ほとんどのプロトコルが投票権を投票時点でのトークン保有量のスナップショットに基づいて計算しており、保有者が一定期間継続して保有していることを要求していない点にある。あるプロトコルの投票メカニズムが「この瞬間にあなたのウォレットにトークンがいくつあるか、それがそのまま票数になる」というものであれば、フラッシュローンが提供する瞬間的な巨額資金は、まさにこの攻撃が必要とする条件に完璧に合致する——借りて、投票して、返す。この一連の操作は同一ブロック内で完結でき、攻撃者をリスクにさらす長期的なポジションを一切残さない。
2022年4月、ステーブルコインプロトコルのBeanstalkは典型的なガバナンス攻撃に見舞われた:攻撃者はフラッシュローンで大量の資金を借り入れ、極めて短時間でプロトコルのガバナンストークンの過半数の投票権を獲得し、表面上は慈善寄付を装いながら、実際にはプロトコルの金庫資金の大部分を攻撃者のアドレスに移転する悪意ある提案を可決させた。攻撃全体は1つのトランザクション内で完結し、攻撃者は8,000万ドル以上の利益を得て、プロトコルの金庫はほぼ空になった。この事件が特に代表的であるのは、「投票権スナップショットメカニズム」と「フラッシュローン」という、それぞれ単体では合理的な設計が組み合わさることでどのような破壊力を生むかを明確に示したからである。
このリスクに直面し、より成熟したプロトコルはいくつかの緩和メカニズムを採用している:投票遅延期間——提案の発起から正式発効までの間に一定の待機期間(通常数日間)を設け、コミュニティが悪意ある提案が発効する前に異常を発見し対応する機会を与える;スナップショット時点の前倒し——投票の重みを投票時点の即時残高ではなく、提案発起前のある固定時点での過去のスナップショットを使って計算し、事後に借り入れたトークンが投票にまったく使えないようにする;投票エスクロートークン(veToken)モデル——トークンを一定期間ロックしなければ投票権を得られないようにし、ロック期間中は資産を自由に移動できないため、フラッシュローンのような瞬間的な借入・返却の攻撃手法に本質的に耐性を持つ;そして提案可決の最低定足数と単一アドレスあたりの最大投票重み上限を設定し、単一の巨額ポジション(自己保有であれ借入であれ)が投票結果を一方的に支配する可能性を下げる。
もしあなたがどこかのプロトコルの預金者やガバナンストークン保有者であれば、ガバナンス攻撃の仕組みを理解することは、そのプロトコルのガバナンス設計に明らかな構造的弱点があるかどうかを判断するのに役立つ——具体的に確認できる問いには次のようなものがある:投票の重みは即時残高で計算されるか、それともロックされたスナップショットで計算されるか;提案の発起から発効までの間に遅延期間が設けられているか;プロトコルの金庫は単一回の投票で直接移転できてしまうか。これらの問いは普段は学術的に見えるかもしれないが、まさに「あなたが預けた資金が、ある日フラッシュローンによる投票一回で丸ごと持ち去られるかどうか」を左右する重要な細部なのである。