DeFiレンディングサービス「bZx」で「フラッシュ・ローン」を利用した攻撃
分散型金融(DeFi)のレンディングサービスであるbZxで、イーサリアム(ETH)が喪失した。
DeFiのレンディングプラットフォームであるbZxが15日攻撃された。攻撃者は、1トランザクション内なら無担保で仮想通貨を借り入れることができる「フラッシュ・ローン」の仕組みを利用してETHを借り入れ、異なるDeFiプラットフォームで空売り。通貨価格を価格を急落させたのちに決済を行い短時間で利益を上げた模様だ。
bZxは現在攻撃の詳細について調査中で、喪失した額の詳細は明らかにされていないが、defiprimeの調査によるとbZxのプラットフォーム「Fulcrum」の被害額は100万ドル相当に及ぶという。
tldr; Market manipulation attack on Fulcrum caused $1M worth of ETH loss.
— defiprime (@defiprime) February 15, 2020
Lost funds will be compensated. https://t.co/vTD5WnOBwT
bZxの報告によると、ユーザーの預金は安全な状況で、今回の攻撃を受けてFulcrumは一時閉鎖された。現時点では、攻撃を防ぐアップデートが実行され、復旧に至っている。
システムの穴をつく価格操作攻撃
DeFiでは、スマートコントラクトを用いて仮想通貨のレンディングなどを行う。今回の攻撃では、スマートコントラクトは正常に作動している。この攻撃はシステムの穴をついた攻撃であり、通常のスマートコントラクトなどのシステム自体がハッキングされたわけではないことに留意しなければならない。
攻撃者は以下のようなプロセスで攻撃を行った。
①DeFiプラットフォーム「dYdX」の「フラッシュ・ローン」を利用して10,000 ETHを借り入れた。このローンでは、1トランザクション内に返済を行えば、無担保で多額の資金を借り入れることができる。
②攻撃者は借り入れた10,000 ETHのうち5,000 ETHをDeFiプラットフォーム「Compound」で112 WBTCと交換(WBTCは、ビットコインに紐づいたイーサリアムベースのトークン)。
③一部のETHを担保にしてbZxのプラットフォーム「Fulcrum」でWBTCを空売りした。④112 WBTCを別のプラットフォーム「Uniswap」に送金。需給バランスが崩れWBTC/ETHが一時的にクラッシュした。
⑤「Fulcrum」のWBTC参照価格も下落。
⑥WBTCの空売りを成功させた。
⑦dYdXに10,000 ETHを返済。これらの一連の流れを同一のトランザクション内に収めることで攻撃者は10,000 ETHという巨額の資金を無担保で借り入れ、需給バランスを崩壊させて利益を得た。
今回の攻撃は、フラッシュ・ローンとbZxの価格決定アルゴリズムの欠陥を利用したものであると考えられる。これを受けてbZxは同社のプラットフォームの一部機能を一時閉鎖し、攻撃に対応するためのアップデートを行った。