相次ぐDeFi(分散型金融)からの資金流出、その攻撃手法とはなにか?

相次ぐDeFi(分散型金融)からの資金流出、その攻撃手法とはなにか?

DeFi(分散型金融)は順調に成長しているように見えます。12月下旬の本コラム執筆時点で約1兆4,000億円がイーサリアム(Ethereum)のスマートコントラクトにロックされています。

このロックされている資産はユニスワップ(Uniswap)などで流動性提供されていたり、コンパウンド(Compound)やメイカーダオ(MakerDAO)などのプロトコルで他の資産借り入れのための担保資産として差し入れされていることを意味します。つまりはDeFi経済圏の成長を表す一つの指標です。

相次いだDeFiからの資金流出

しかしながら、DeFiは着実に成長をしているわけではありません。さまざまなDeFiプロトコルから資金流出が相次いでいます。以下は11月に起きたDeFiからの資金流出一覧です。

  • $2 million (約2.2億円)- Akropolis
  • $3.3 million (約3.5億円)- Cheese Bank
  • $6 million (約6.5億円)- Value Finance
  • $7 million(約7.5億円) – Origin Protocol
  • $25million(約27.5億円) – Harvest
  • $20million(約22億円) – Pickle Finance

この数を見ると、DeFiは取引所などの中央集権的な第三者に依存しないノンカストディだから安全であるとはお世辞にも言えないことが伝わるはずです。

DeFiへの攻撃手法とはなにか?

これらのDeFiの資金流出の原因の多くがフラッシュローンによる攻撃です。

フラッシュローン攻撃には「借り入れが可能なので手持ちの資産が必要ない(ガス代のみ)」、「1トランザクション内で完了するので気付いた頃には攻撃が完了している」等の特徴があります。そのためスマートコントラクトそのものにはバグがなくとも仕様上の特性を利用することで悪用が可能という厄介さがあります。具体的には、1トランザクション内で他のプロトコルで取引を実行して価格オラクルを操作して、その価格を参照する別のオラクルで安価な取引を実行するなどの形式はよく用いられます。

以下の図はbZxがフラッシュローンで攻撃された際に起きたトランザクションフローを図解したものです。

#
出典:https://hashhub-research.com/

スマートコントラクトセキュリティの監査を行っていたとしても、フラッシュローン攻撃やオラクル攻撃への耐性は別途検討しなければならないことを意味します。フラッシュローン攻撃とオラクル攻撃は別物ですが、最近のフラッシュローン攻撃はほとんどがオラクル攻撃を内包したものであり、その意味ではオラクル攻撃が進化して1トランザクション内で完結したものの一種だと捉えることも可能です。

プロトコル側からの対応策としては、時間加重平均値を使う、M-of-N方式で特定のユーザーのみが価格情報を更新できるようにする、価格情報の更新のリアルタイム性を捨て遅延を導入する等があります。

ユーザーとしては、それらの各プロトコルの対応を理解してなるべく考えうるリスクを洗い出すことが大切です。また、実際に自分でさまざまな攻撃ケーススタディを考えられることが理想ではあります。そのためには過去の攻撃ケーススタディを知る必要があり、膨大な時間を要することもまた事実です。

そういった調査時間を投下できない場合でも、少なくともDeFiにはさまざまなリスクがあるということだけは知っておくべきでしょう。HashHub ResearchではDeFiを安全に使用するためのリスクやガイドラインの解説をさまざまな取り上げています。興味がある方はぜひご利用ください。

【こんな記事も読まれています】
DeFi=開発者を信用しなくてい良いはウソ!?Admin Keyリスクとは?
DeFi(分散型金融)のスマートコントラクトリスクとはなにか
仮想通貨で月30万円の不労所得を得るには?イーサリアムDeFiでの運用実態


HashHub Researchでは、ブロックチェーン業界の動向解説から、更に深いビジネス分析、技術解説、その他多くの考察やレポート配信を月に25本以上の頻度で行なっています。コミュニティでは議論も行えるようにしており、ブロックチェーン領域に積極的な大企業・スタートアップ、個人の多くに利用頂いています。
▼HashHub Research
https://hashhub-research.com/

参照元:CoinChoice

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です