4200万円のハッキング被害
「DeFiのためのオープンヘッジファンド」を目指す新しいDeFiプロトコル「ForceDAO」が、正式ローンチの数時間後にハッキング攻撃を受けたことがわかった。スマートコントラクトの脆弱性を突いた攻撃により、最終的に183ETH(執筆時価格で約4200万円)に相当するFORCEトークンが換金されたという。
ATTENTION
— Force (@force_dao) April 4, 2021
Our team is aware of the xFORCE contract exploit and has identified the nature of the issue.
There are no further funds available on the xFORCE contract to be exploited.
All other vaults are safe.
We will provide a post-mortem and next steps over the coming hours.
ForceDAOは事後分析の中で、影響を受けたのは、FORCEをステーキングした際に受け取る「xFORCE」トークンであり、プラットフォーム上の他の資産の安全は確保されていたと主張。UniSwapとSushiSwapのForce、xForce、Force/ETHの流動性プールが被害を受けたが、ForceDAOの戦略(Strategy)と保管庫(Vault)、報奨金プールのコントラクトは影響を受けていないと説明した。
裏目に出た大規模なエアドロップ計画
3月15日にパブリックベータ版がローンチされたForceDAOのチームは、プロジェクトの認知度向上と公平なローンチを実現するため、発行上限の4分の1にあたる合計2500万FORCEトークンのエアドロップを4月3日に開始。
対象は、チームが選んだDeFiプロトコルにステーキングしているユーザー等で、3週間にわたり実施される予定だった。(第一期の対象プロジェクトはAave、Alchemix、Badger、Balancer、Curve、Maker DAO、Synthetix、Sushi、Vesper、Yearn)
しかし、エアドロップ開始後、ハッカーがスマートコントラクトのバグを特定し、トークンを獲得し始める。幸い、最初にバグを発見したハッカーはホワイトハット(善意のハッカー)で、獲得した約1480万FORCEはネットワークに返還され事なきを得た。一方、4人のブラックハット(悪意のハッカー)が同じバグを利用し、獲得したFORCEトークンを様々な取引所でイーサリアムに換金した。
その後、ForceDAOチームが介入し、3人のブラックハットのアドレスに残っていたFORCEをバーン(焼却)することに成功したという。なお、ForceDAOチームはホワイトハッカーに感謝の意を示し、報奨金を用意したと呼びかけている。
ハッキングの分析
Polymath Networkのブロックチェーンリーダー、Mudit Gupta氏は、ハッキングの原因を、次のように説明した。
- FORCEトークンは送金者に十分な残高がないなど、送金に失敗した場合、送金関数はトランザクションを戻すのではなく「false」を返すようになっているため、xFORCEコントラクトでは、FORCEトークンがなくても「入金(deposit)」関数を呼び出す事ができる。
- そのため、xFORCEコントラクトは、存在しないFORCEのロックに失敗したとしても、新たなxFORCEを発行する。
- xFORCEを入手後に、「出金(withdraw)」関数を呼び出し、xFORCEをFORCEトークンに交換できる。
Gupta氏は、この脆弱性はイーサリアムのコードであるSolidityでは、既によく知られているバグだとして、Force DAOはセキュリティの専門家からの監査を受けていないことが明らかになったと指摘した。
ForceDAOは、過失の責任を認めている。現在、セキュリティ企業2社を契約し、すべてのコントラクトシステムが設計通りに動作するかどうか、レポの見直しと分析を行っていると説明。今後数日中に、スナップショットと新しいトークンを利用して、再度xFORCEのローンチを行うと述べた。