Flash Loan: DeFi プロジェクトをプレイする新しい方法、MakerDao を攻撃して 7 億米ドルを獲得する方法
头等仓-区块链研究院
2020-02-20 11:12
本文约2923字,阅读全文需要约12分钟
新しいガバナンス契約の導入を遅らせることなく、Maker の担保 (7 億ドル) をすべて盗み、フラッシュ ローンを使用して任意の額の Dai を発行することが可能になります。

編集者注: この記事は以下から引用しました第一種倉庫ブロックチェーン研究所(ID:first_vip1)編集者注: この記事は以下から引用しました

  • 第一種倉庫ブロックチェーン研究所(ID:first_vip1)

  • 第一種倉庫ブロックチェーン研究所(ID:first_vip1)

  • 、著者:Dominik Harz、編纂者:First Class Warehouse-Mark、Odaily の許可を得て転載。

  • フラッシュ ローン プールの流動性プールがしきい値を超える前に Maker が遅延を導入しない場合、攻撃を停止する可能性はほとんどありません (競合状態)。

導入

Maker はこの攻撃について知っており、2 月 21 日に攻撃を阻止するための投票を実施しました。

  • 副題

  • 導入

  • a16z:60000 MKR

  • 0xfc7e22c6afa3ebb723bdde26d6ab3783aab9726b:51291 MKR

  • 0x000be27f560fef0253cac4da8411611184356549:39645 MKR

[メーカーガバナンス契約: 192910 MKR]

メーカー財団: 117993 MKR

注: Maker ガバナンス契約には、複数の当事者の MKR トークンが含まれています。

副題

ガバナンス攻撃

必要な MKR トークンの数を減らすために、新しいガバナンス契約の投票時に攻撃を実行することを提案しています。現在、192,910 個の MKR トークンがガバナンス契約にロックされています。ただし、2 つまたは 3 つの契約が同様のトークン配布で並行して投票される場合、攻撃者が必要とするトークンは少なくなります。

以下の図に示すように、これは過去によく発生していました。

明らかな攻撃戦略は、スマート コントラクトを通じて必要な MKR トークンをクラウドファンディングし、各攻撃者に報奨金の一部を支払うことです。ただし、Maker がこれらの動きに気づかずにシステムを攻撃するチャンスを得るには、攻撃者は約 50,000 MKR トークンを蓄積する必要があると考えられます。

副題

新しい攻撃戦略: フラッシュ ローン

ただし、フラッシュ ローンを考慮すると、大量の MKR トークンの要件を完全に取り除くことができます。フラッシュローンはかなり新しい概念なので、ここで簡単に説明します。通常、借り手はDeFiプロジェクトで融資を受けるために担保を提供する必要があります。たとえば、Maker では、A は ETH を入金することで Dai を借りることができます。これは必須であり、これは弱いアイデンティティと経済的に健全なエージェントのモデルの下で機能します。

フラッシュ ローンでは、この要件は 1 回の取引でのみ発生するため、不要になります。

1. A はフラッシュ ローン流動性プロバイダー (Aave や dYdX など) からローンを借ります。

Aさんはフラッシュローンに利息を付けて返済しました。

フラッシュ ローンは、イーサリアム仮想マシンの設計方法により機能します。

取引中のいずれかの時点でフラッシュ ローンが失敗した場合、取引全体が元に戻されます。したがって、A さんはローンのリスクを無料で負うことができ、ローンを返済できなかった場合は、ローンを借りなかったことと同じになります。流動性プロバイダーも有利です。A がローンを返済できる場合にのみ資金を貸し出します。

副題

2月14日と2月18日、フラッシュローンに関する2件の事件が発生し、bZxはプラットフォームを停止した。最初の取引では、1 回のフラッシュ ローンで 1,193 ETH (約 298,250 ドル) の利益が得られました。この取引は、wBTC でフルクラムのショート ポジションをオープンするスマート コントラクトを使用して実行されました。同じ取引では、コンパウンドから wBTC ローンを借り、カイバーの Uniswap リザーブで wBTC を取引し、スリッページを引き起こし、最終的にフルクラムの価格も引き下げました。これは、bZx の事後詳細で確認できます。

(第一種倉庫注: Fulcrum は、シンプルかつ効果的なローンおよび信用取引方法を提供する製品であり、現時点では、認可も手数料も手数料も必要ない、最初で唯一の信託不要の証拠金プラットフォームであると主張しています)アカウントを作成します。)

同様に、2 回目の事件は 2 月 18 日に発生し、1 回の取引で 2,378 ETH (約 60 万ドル) の利益が得られました。この取引には、Synthetix の sUSD でロングポジションを取るための 7500 ETH の最初の借入が含まれていました。

副題

現在の為替レートでは、攻撃者がその量の MKR を購入するには約 485,000 ETH が必要ですが、十分な利用可能容量がある取引所は Kyber の 1 つだけです。ただし、攻撃者は複数の取引所を使用して、Kyber から 38,000 MKR、Uniswap から 11.5,000 MKR、Switcheo から 500 MKR、合計 378,940 ETH を購入する可能性があります。この数字はまだ高いですが、ほぼ 100,000 ETH 削減されました。

十分な流動性を得る

副題

十分な流動性を得る

オラクル操作であっても、Maker を攻撃するには大量の ETH が必要です。攻撃者は、同じ取引で 2 つのフラッシュ ローンを引き出すことで、流動性を高めることができます。 Aave と dYdX は再入から保護し、1 つのトランザクションで 1 つのフラッシュ ローンのみを許可しますが、攻撃者は同じトランザクションで両方のプロトコルから ETH を借用できます。

組み合わせプラン

もちろん、クラウドファンディングとフラッシュローンは組み合わせることができます。利用可能な流動性約 107,000 ETH を使用すると、Kyber から約 10,800 MKR を得ることが可能です。これにより、複数の攻撃者は合計 50,000 MKR の必要量を約 39.2,000 MKR に減らすことができます。 Twitter の非公式アンケートが示すように、一部の人々はこの種の攻撃に興味を持っているようです。

また、上位 4 人のアカウント所有者 (実際には 5 人ですが、現在の Maker ガバナンス契約を考慮していない) がクラウドファンディングなしで攻撃を実行できたことにも注意してください。

攻撃するのに最適なタイミング

フラッシュローンプールを通じて十分な流動性(オラクル業務の組み合わせの有無にかかわらず)が得られると、誰でもMakerガバナンス契約を引き継ぐことができます。流動性プールがそのしきい値に達し、Maker が投票を開始すると、Maker はできるだけ少ない MKR トークンが割り当てられるようにする必要があります。この投票プロセス中の任意の時点で MKR が配布された場合、この脆弱性が悪用される可能性があり、担保が剥奪される可能性があります。

攻撃者は 7 億ドル相当の ETH 担保を盗み、新しい Dai を自由に作成できる可能性があります。 Dai は他のプロトコルの裏付け担保として使用されているため、この種の攻撃は DeFi プロジェクト全体に浸透する可能性があります。さらに、攻撃者は自身の Dai を約 2 億 3,000 万ドル相当の他の通貨と交換することができました。

副題

対策

头等仓-区块链研究院
作者文库