- 1 UniswapとLendf.Meからハッカーがドレイン
- 2 ERC777とUniswap/Lendf.Meコントラクトの問題
- 3 イーサリアムはCompatibleな実装が最も重要
- 4 Uniswap非中央集権性の高さは万能か?
- 5 The DAOとUniswapから見る問題点
- 6 被害に合うのを避けるには?
- 7 まとめ
え2020年4月18日、イーサリアムDeFiのUniswapのimBTCの清算プールに対し、ハッカーが脆弱性を利用して攻撃。19日に同様の攻撃が中国のDeFiスタートアップ“dForce Network”のLendf.Meにもハッカーが攻撃を行い27億円を超える被害を引き起こしました。フラッシュローンに続いてDeFi界隈で話題となっています。
本稿ではUniswapとLendf.Meに起きた攻撃の詳しい概要や問題点、今後に影響について解説を行います。
Uniswapを利用したbZxのフラッシュローンについては墨汁マガジンVol.381「イーサリアム上のDeFiフラッシュローンはハッキングなのか?攻撃が起きた理由と詳しい概要」を参照してください。
UniswapとLendf.Meからハッカーがドレイン
今回のイーサリアムDeFiでの新たな攻撃での被害は、DeFiでも人気の高いUniswapと中国のDeFiスタートアップdForce Networkが提供するプロダクトの中のLendf.Meからリエンチランシー攻撃により、
WETH: 55159.02
WBTC: 9.01
CHAI: 77930.93
HBTC: 320.27
HUSD: 432162.90
BUSD: 480787.88
PAX: 587014.6
TUSD: 459794.38
USDC: 698916.4
USDT: 7180525.08
USDx: 510868.16
imBTC: 291.34
約27億円がlends.Meからドレインされ、UniswapではETH/imBTCのプールから3240万円を超えるETHとimBTC(イーサリアム上のWBTCの様なBTCにペッグするERC777トークン)がドレインされています。
ハッカーアドレス:0xA9BF70A420d364e923C74448D9D817d3F2A77822
ERC777とUniswap/Lendf.Meコントラクトの問題
今回のUniswapのハッキングでは、イーサリアムのトークンスタンダードとして広く使われているERC20トークンとは異なり、DeFiコミュニティによる独自のトークンスタンダードであるERC777が発端となります。直接のハッカーによるETHとその他トークンのドレインハックは、2016年のThe DAOと同様にリエントランシー攻撃によるものです。
また最近ではコンスタンティノープル/サンクトペテルブルクで問題となったEIP-1283でも記憶に新しいでしょう。リエントランシー攻撃の解説はリサーチレポートの「イーサリアムの今後に影響するコンスタンティノープルの実装分析」を参照してください。
このリエントランシー攻撃はコントラクト間のCompatibility、つまり相互不適合に依存し、自由度の高いイーサリアムとコントラクトにおいてコントラクトデプロイ時に最も注意しなければならない点で、コントラクト監査の甘さが引き起こした問題であると言えます。
ERC777スタンダードとUniswap/Lendf.Meのコントラクト間の