プラナフ・ガリミディ、スコット・デューク・コミナーズ、ティム・ラフガーデン著
ソース: a16z
多くの Web3 プロジェクトは、権限のない投票に代替可能で取引可能なネイティブ トークンを使用しています。許可のない投票には、参入障壁の低下から競争の激化まで、多くの利点があります。トークン所有者は、トークンを使用して、単純なパラメータ調整からガバナンスプロセス自体の見直しまで、さまざまな問題に投票できます。ただし、許可のない投票は、攻撃者が法的手段 (公開市場でトークンを購入するなど) を通じて投票権を取得し、その投票権を使用して攻撃者自身の利益のためにプロトコルを操作するガバナンス攻撃に対して脆弱です。これらの攻撃は純粋に「プロトコル内」攻撃であり、暗号的に解決することはできません。むしろ、これらの攻撃を防ぐには、思慮深いメカニズム設計が必要です。この目的を達成するために、DAO が脅威を評価し、潜在的なガバナンス攻撃に対応できるようにするフレームワークを設計します。
実際のガバナンスへの攻撃
ガバナンス攻撃の問題は理論的なものだけではありません。それらは現実の世界で起こり得るだけでなく、これまでも、そしてこれからも起こり続けるのです。
この明らかな例を見てみましょう。 Steemit は、ブロックチェーン Steem 上に分散型ソーシャル ネットワークを構築するスタートアップで、オンチェーン ガバナンス システムは 20 人の立会人によって制御されています。有権者は STEEM トークン (プラットフォームのネイティブ トークン) を使用して証人を選出します。 Steemit と Steem の魅力がますます高まったとき、Justin Sun は Steem を Tron に合併する計画を立てました。 Tron は、彼が 2018 年に設立したブロックチェーン プロトコルです。議決権を獲得するために、Sun は Steem の創設者の 1 人にアプローチし、総供給量の 30% に相当するトークンを購入しました。スティームの証人が彼の取引を発見すると、彼らはすぐにサンのトークンを凍結した。その後、Sun と Steem の間で公開のやり取りが行われ、必要な証人上位 20 名を選択できる十分なトークンを制御することができました。主要な取引に参加し、トークンに何十万ドルも費やした後、ジャスティン・サンは最終的に勝利を収め、事実上ネットワークを自由に統治できるようになりました。
Beanstalk の例をもう一度見てください。ステーブルコインのプロトコルである Beanstalk は、Flashloan ガバナンス攻撃に対して脆弱であることが判明しました。攻撃者は、Beanstalk の準備金 1 億 8,200 万ドルを没収することを可能にする悪意のある提案を即座に可決するのに十分な Beanstalk ガバナンス トークンを入手するために借金をしました。 Steem への攻撃とは異なり、この攻撃は単一ブロックの規模で発生しました。つまり、攻撃はすでに終了しており、まだ誰も反応する時間がありませんでした。
これら 2 つの攻撃は公然と公衆の面前で行われましたが、ガバナンス攻撃は長期間にわたって秘密裏に実行された可能性もあります。攻撃者は、大量の匿名アカウントを作成し、他の所有者と同じように通常どおりに動作しながら、ガバナンス トークンの漏洩を避けるためにゆっくりとガバナンス トークンを蓄積する可能性があります。実際、多くの DAO では有権者参加率が低いことが多いため、これらのアカウントは疑惑を抱かずに長期間休眠状態に留まる可能性があります。 DAO の観点から見ると、攻撃者の匿名アカウントは、健全なレベルの分散投票力を実証するのに役立つ可能性があります。ただし、攻撃者は最終的に、コミュニティが対応できずにこれらの Sybil ウォレットが一方的にガバナンスを制御する権限を有するしきい値に達する可能性があります。同様に、投票率が十分に低い場合、悪意のある攻撃者はガバナンスを制御するのに十分な投票権を獲得し、他の多くのトークン所有者が非アクティブなときに悪意のある提案を可決しようとする可能性があります。
私たちはすべてのガバナンス活動を単に市場の力が働いた結果であると考えるかもしれませんが、実際にはガバナンスはインセンティブの失敗やプロトコル設計のその他の抜け穴によって非効率な結果を生み出すことがあります。政府の政策決定が利益団体や単純な惰性によって左右されるのと同様に、DAO のガバナンスも適切に構築されていない場合、劣悪な結果につながる可能性があります。
では、この種の攻撃に仕組み設計でどのように対処すればよいのでしょうか。
根本的な課題: 識別不能性
トークン配布の市場メカニズムは、プロジェクトに貴重な貢献をしたいユーザーと、干渉などによってプロジェクトをコントロールしたい攻撃者を区別できません。トークンが公開市場で売買できる世界では、どちらのグループも市場の観点から見分けがつかないような行動をとっているわけではありません。どちらも、ますます高値で大量のトークンを購入しようとしています。
この区別不能の問題は、分散型ガバナンスには代償が伴うことを意味します。代わりに、プロトコル設計者は、オープンな分散ガバナンスと、ガバナンス メカニズムを悪用しようとする攻撃からシステムを保護することの間で、基本的なトレードオフを行う必要があります。コミュニティのメンバーがガバナンス権限を獲得し、プロトコルに影響を与える自由が増えるほど、攻撃者が同じメカニズムを使用して悪意のある変更を加えることが容易になります。
この区別がつかないという問題は、プルーフ・オブ・ステークのブロックチェーン ネットワークの設計においてよく見られます。さらに、トークン市場の流動性が高いため、攻撃者がネットワークのセキュリティを侵害するのに十分な株式を獲得することが容易になります。それにもかかわらず、トークンのインセンティブと流動性設計の組み合わせにより、プルーフ・オブ・ステーク・ネットワークが可能になります。同様の戦略は、DAO プロトコルのセキュリティを確保するのに役立つ可能性があります。
脆弱性を評価して対処するためのフレームワーク
さまざまなプロジェクトが直面する脆弱性を分析するために、次の式で捉えられるフレームワークを使用します。

プロトコルがガバナンス攻撃の影響を受けないようにするためには、攻撃者の利益がマイナスになるようにする必要があります。プロジェクトのガバナンス ルールを設計する場合、この公式を使用して、さまざまな設計選択の影響を評価することができます。プロトコルを悪用するインセンティブを減らすために、この方程式は、攻撃の価値を下げる、投票権を取得するコストを増やす、攻撃を実行するコストを増やすという 3 つの明確な選択肢を意味します。
攻撃値を下げる
プロジェクトが成功すればするほど攻撃の価値が高まるため、攻撃の価値を制限することは困難な場合があります。明らかに、プロジェクトは、攻撃の価値を下げるために、それ自体の成功を意図的に妨害すべきではありません。
それにもかかわらず、設計者はガバナンスの範囲を制限することで攻撃の価値を制限できます。ガバナンスにプロジェクト内の特定のパラメーター (ローン契約の金利など) を変更する権限のみが含まれている場合、潜在的な攻撃の範囲は、ガバナンスがスマート コントラクトの完全な制御を許可している場合よりもはるかに狭くなります。
ガバナンスの範囲はプロジェクトのフェーズに応じて決まります。プロジェクトの初期段階で、足場を固めると、より広範なガバナンスが適用される可能性がありますが、実際には、ガバナンスは創設チームとコミュニティによって厳密に制御される場合があります。プロジェクトが成熟し、管理が分散化されるにつれて、ガバナンスにある程度の摩擦を導入することが前向きになる可能性があります。最も重要な決定を下すには、少なくとも大きな定足数が必要です。
議決権取得コストの増加
プロジェクトでは、攻撃者が攻撃に必要な投票権を取得するのをより困難にするための措置を講じることもあります。トークンの流動性が高いほど、議決権の主張が容易になります。そのため、ほとんど逆説的ですが、プロジェクトはガバナンスを保護するために流動性を削減する必要があるかもしれません。トークンの短期取引可能性を直接低下させることもできますが、これは技術的に実現できない可能性があります。
流動性を間接的に削減するために、プロジェクトは個々のトークン所有者がトークンを販売する傾向を弱めるインセンティブを提供することができます。これは、ステーキングを奨励するか、純粋なガバナンスから独立した価値をトークンに与えることによって行うことができます。トークン所有者が受け取る価値が高くなるほど、プロジェクトの成功との連携が高まります。
スタンドアロン トークンの特典には、対面イベントやソーシャル エクスペリエンスへの参加が含まれる場合があります。重要なことは、そのような利点はプロジェクトに参加する個人にとっては非常に価値がありますが、攻撃者にとっては役に立たないということです。このような利点を提供すると、攻撃者がトークンを取得する際に直面する実効価格が上昇します。独立性の利点により市場価格が上昇するため、現在の所有者は販売意欲が低下します。ただし、攻撃者はより高い価格を支払わなければなりませんが、独立性の利点の存在は増加しません。攻撃者がトークンを取得した後に取得できる値。
攻撃を実行するコストが増加します
投票権のコストが上昇することに加えて、攻撃者がトークンを取得した場合でも投票権を行使することが困難になる摩擦が生じる可能性があります。たとえば、デザイナーは、KYC 検証や評判スコアのしきい値など、投票するために何らかの種類のユーザー認証を要求することができます。そもそも、認証されていない参加者が投票トークンを取得する能力を制限し、新しい参加者の正当性を検証するために既存のバリデーターを必要とすることさえ可能です。
ある意味、これはまさに多くのプロジェクトが最初のトークンを配布し、信頼できる当事者が投票権のかなりの部分を制御することを保証します。 (多くのプルーフ・オブ・ステーク ソリューションは、セキュリティを確保するために同様の手法を使用しています。誰が早期にステークを取得するかを厳密に制御し、そこから徐々に分散化します。)
あるいは、プロジェクトは、たとえ攻撃者が大量の投票権を制御したとしても、悪意のある提案を可決するのが困難に直面するようにすることもできます。たとえば、一部のプロジェクトにはタイムロックがあるため、スワップ後の一定期間はトークンを投票に使用できません。その結果、大量のトークンを購入または借りようとする攻撃者は、投票を待つという追加コストに直面し、その間に潜在的な攻撃が投票メンバーに気づかれブロックされるリスクに直面します。この点では、代表団も役立ちます。積極的だが悪意のない参加者に投票権を与えることで、ガバナンスにおいて特に積極的な役割を果たしたくない個人でも、システムを保護するために自分の投票を使用できます。
一部のプロジェクトでは拒否権を使用し、不活発な有権者に潜在的に危険な提案を警告するために一定期間投票を延期できるようにしています。このスキームによれば、たとえ攻撃者が悪意のある提案を行ったとしても、有権者はそれに応答して提案を閉じることができます。これらおよび同様の設計の背後にある考え方は、攻撃者が悪意のある提案をすり抜けるのを阻止し、プロジェクト コミュニティに対応する時間を与えることです。理想的な世界では、明らかに合意の利益となる提案であれば、こうしたハードルに直面する必要はないでしょう。
たとえば、Nouns DAO では、DAO 自体が代替ガバナンス モデルを実装する準備が整うまで、拒否権は Nouns Foundation にあります。彼らがウェブサイトに書いているように、「Nouns Foundationは、Nouns DAOまたはNouns Foundationに重大な法的または存続リスクをもたらす提案に拒否権を発動します。」
プロジェクトは、コミュニティの変更に対してある程度のオープンさ (時には歓迎されないこともある) を許容しつつ、悪意のある提案の抜け穴を許さないバランスを取る必要があります。通常、プロトコルを無効にするためには悪意のある提案のみが必要となるため、提案の受け入れと拒否によるリスクのトレードオフを明確に理解することが重要です。もちろん、ガバナンスを確保することとガバナンスを可能にすることの間には大きなトレードオフがあります。潜在的な攻撃者を阻止するために摩擦をもたらすメカニズムは、当然、ガバナンスのプロセスをより困難なものにするでしょう。
ここで概説するソリューションは、完全に分散化されたガバナンスと、プロトコル全体の健全性のために望ましい分散化を部分的に犠牲にすることの間のどこかにあります。私たちのフレームワークは、ガバナンス攻撃が利益をもたらさないようにするために、プロジェクトが取り得るさまざまな道を強調しています。私たちは、コミュニティがこのフレームワークの利用を開始し、独自の実験を通じてこれらのメカニズムをさらに開発し、将来的に DAO をさらに安全にすることを願っています。