DAOガバナンス攻撃とは?——フラッシュローンで”民主主義”を乗っ取ったBeanstalk事件

DAOガバナンス攻撃とは?——フラッシュローンで"民主主義"を乗っ取ったBeanstalk事件 エッセイ
PR

フラッシュローン・票の買収・ガバナンス乗っ取りの構造

フライです。

「分散型民主主義」ってやつは、本当に分散してるのかネ。

DAO(Decentralized Autonomous Organization)ってのは、中央の管理者じゃなく、トークンを持ってる参加者たちの投票で物事を決める仕組みサ。

誰か一人が会社を所有するんじゃなく、参加者みんなでプロトコルの方向性を決める。

理念としちゃ悪くないヨ。

でもネ、DAOガバナンスには根本的な弱点がある。

「誰が投票できるか」
「どれだけ投票できるか」を、トークンの保有量に結びつけた瞬間
——ガバナンスってのは、お金で買えるものになるのサ。

2022年4月、この問題を極端な形でさらけ出した事件があった。

DeFiプロトコル「Beanstalk」のガバナンス攻撃だヨ。

DAOガバナンス攻撃とは何か

DAOガバナンス攻撃(governance attack)とは、プロトコルの投票制度そのものを利用して、攻撃者自身に有利な意思決定を成立させる攻撃です。

一般的なスマートコントラクト攻撃っていうと、バグを突いて資金を盗む、アクセス制御を破る、価格オラクル(外部の価格データをブロックチェーンに供給する仕組み)を操作する、再入可能性の脆弱性を突く……といったやり方が思い浮かぶでしょう?

でもガバナンス攻撃は、ちょっと毛色が違うのサ。

攻撃者は、ルールを「破る」必要すらない。
むしろルールどおりに投票し、ルールどおりに提案を可決させる

それだけで、本来DAO全体のために使われるはずの資金を、自分の懐に移せてしまうのヨ。

これがDAOガバナンスの厄介なところサ。

オラクルとは

Oracle
本来の意味(神託)
  • 古代ギリシャのアポロン神殿などで、神が神官を通じて告げた「預言」や「神の啓示」のこと。
  • 転じて、物事の本質を突く知恵を持つ人や場所を指すこともあります。

IT用語・企業

  • 現代では、アメリカの巨大IT企業の名前や、その有名なデータベース製品(Oracle Databaseや、関連する認定資格(オラクルマスターなど)を指す言葉として広く使われています。

フラッシュローンが「投票権」を一時的な資産に変える

フラッシュローン(Flash Loan)は、DeFi特有の仕組みだネ。

普通のローンなら担保や審査が必要だけど、フラッシュローンは「同一トランザクション内で借りた資金を返済する」ことだけを条件に、巨大な資金を一瞬だけ借りられる。

返済されなければトランザクション自体が成立しないから、貸し手にリスクはほぼないワケサ。

裁定取引くらいなら便利な仕組みだけど、これをガバナンスと組み合わせると話が変わってくる。

「資本」と「議決権」が同じものになる

DAOのルールが「1トークン=1票」に近い設計で、投票時点の保有量がそのまま議決権になるとしたら——攻撃者は長期間トークンを保有する必要がない。

一瞬だけ大量に持てばいいのサ。

長期的なメンバーシップと、瞬間的な資本力が区別されていない。
ここにフラッシュローンの危うさがあるヨ。

DeFi(ディーファイ)とは?

DeFi(ディーファイ)とは、「Decentralized Finance」の略で、日本語では分散型金融と呼ばれます。
銀行や証券会社といった中央の管理者を置かず、ブロックチェーン技術とスマートコントラクト(自動実行プログラム)を利用して、ユーザー同士が直接、貸し借りや取引を行う仕組みです。

2022年の代表例——Beanstalkガバナンス攻撃

2022年4月17日、DeFiプロトコルBeanstalkがガバナンス攻撃を受けたのサ。

Beanstalk自身の説明では、攻撃によって約7,700万ドル相当の資産が盗まれた。
外部の分析だと、攻撃全体で動いた資産は約1億8,000万ドル規模、攻撃者が最終的に手にしたのは約7,600万〜8,000万ドル規模と整理されてるネ。

重要なのは、これが単純な「資金流出」じゃないってことサ。
攻撃者はガバナンスそのものを利用して資金を動かした

攻撃の構造

Beanstalkでは、ガバナンス権限が「Stalk」という内部トークンと結びついていた。

Stalkは、Beanstalkのシルロ(Silo)と呼ばれる仕組みに資産を預けることで得られる、譲渡不可能なガバナンストークンで、多く持つほど投票力が強くなる設計だヨ。

攻撃者はフラッシュローンで巨大な資金を調達し、それを使ってStalkを大量に確保した。

Immunefiの分析によれば、Aave・Uniswap・SushiSwapから合計10億ドル超を調達し、議決に必要な約3分の2の議決権を一時的に握った。
緊急実行機構を利用したとされています。

そして、あらかじめ用意しておいた悪意ある提案を通したのサ。

ここが肝心なんだけど、「攻撃者が投票した」だけじゃないネ。
提案そのものが、攻撃者に資金を移転させるコードを実行する仕組みになっていた。

「お金を持っている人が政治を支配する」
という古典的な問題が、ブロックチェーン上では、

「一つのトランザクションの中だけ、お金を借りて政治権力を作る」
という形にまで高速化されたのです。

なぜフラッシュローンでガバナンスを乗っ取れたのか

理由は3つの組み合わせサ。

  • 議決権が資本量に依存していた(Stalkを多く持つほど投票力が強い)
  • その資本を一時的に、しかも巨額に調達できた(フラッシュローン)
  • 投票と実行の時間的距離が短かった(Beanstalkには「emergencyCommit」という緊急実行の仕組みがあり、通常の提案プロセスを飛ばして即座に実行できた)

攻撃者は事前に提案を準備しておき、当日に大量の議決権を調達して投票・実行まで一気に進めた。

「資金を借りる→議決権を作る→投票する→提案を実行する→資金を回収する→フラッシュローンを返済する」
という一連の流れを、驚くほど短い時間でやり切ったのヨ。

これは「スマートコントラクトのバグ」なのか

ここが今回いちばん面白いところサ。

Beanstalk事件を単純な「コードのバグ」だけで説明すると、本質を見失うネ。
攻撃者はガバナンスルールそのものを利用しただけで、コードは「設計どおり」に動いていた。

言い換えれば
——コードが間違っていたんじゃなく、コードが実現していた経済的ルールそのものが危険だった、ってことサ。

Immunefiも、投票と提案実行を同一トランザクション内で完結できる構造が、フラッシュローンによるガバナンス攻撃を可能にしたと分析しているヨ。

これは「Code is Law(コードこそが法)」というDeFiの有名な思想に対して、なかなか興味深い問いを投げかけたと言えるでしょう?

コードが正しく実行されただけなのに、結果は明らかに「不正」——このねじれこそが、DAOガバナンス攻撃の本質サ。

次回は、この事件から見えてくる「正しい投票でも起きる乗っ取り」
——票の買収や、委任の集中という、もっと厄介な問題について話すヨ。

お楽しみに。

フリーコンサルタントの市場価値を高める

フリーコンサルエージェント
企業とプロフェッショナルをつなぐマッチングサービス 

New Ace(ニューエース)

PR:VANES株式会社

概要: 特設ページ

 

最後まで読んでくださいまして、ありがとうございます。

コメント