Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Euler Finance Hacking Incident
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
biga816
March 30, 2023
Technology
680
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Euler Finance Hacking Incident
biga816
March 30, 2023
More Decks by biga816
See All by biga816
BlockchainTokyo23.pdf
biga816
1
420
BuidlMeetupVol2.pdf
biga816
0
40
Service Worker Cache Problems
biga816
1
1.8k
Consider how distributed IPFS is
biga816
2
5.3k
Centralized Dapps to read from Dapps game
biga816
1
2.5k
Usage of ethereum libraries for dapps
biga816
0
4.6k
Other Decks in Technology
See All in Technology
Agentic Web
dynamis
1
200
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.9k
やさしいA2A入門
minorun365
PRO
10
1.7k
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
220
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
3
2.1k
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
1
560
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
380
RSA暗号を手計算したくなること、ありますよね?? (20260615_orestudy6_rsa)
thousanda
0
160
Reliability in the Age of AI: Engineering for AI Velocity
rrreeeyyy
0
120
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
660
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
130
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
370
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.6M
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Everyday Curiosity
cassininazir
0
230
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Odyssey Design
rkendrick25
PRO
2
690
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
Practical Orchestrator
shlominoach
191
11k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Transcript
Akihiro Tanaka Euler Financeハッキング事件から学ぶ フラッシュローン攻撃
自己紹介 - Ethereum Japan / Secured Finance スマートコントラクトエンジニア - 2014年にMt.GOXですべてを失ったことからブロックチェーンに目覚める
- 2018年より複数社でブロックチェーン関連の開発に従事 - NFTを利用したエンタメアプリ、 AMLツール、STOプラットフォーム等の開発を手がける - 現在はSecured FinanceでDeFiプロダクトを開発中 - Twitter: @biga816
Photo by Pixabay フラッシュローンとは? - フラッシュローンとは、短時間で無担保の融資を行い、 一時的に巨額の資金を借り入れて利用してすぐに返済す ることができる仕組み - この仕組みでは担保を用意することなく、同一トランザ
クション内で借り入れた金額を返済することでのみ資金の 借り入れが可能となっている - UniswapやAaveなど多くのDeFiプロトコルがフラッシュ ローンを提供している
Euler Financeとは? - CompoundやAaveのようなDeFiプロトコルと同じく資 金の貸し借りのできるレンディングプラットフォーム - このプロトコルの特徴は、各トークンのリスク特性に応 じて資産の「階層分け」を行っている点がある
- 3/13にEuler Financeがフラッシュローン攻撃を受け、約 2億ドルが盗まれた - フラッシュローン攻撃は Euler Financeの以下の2つの機能を利用して行われた 1) 手数料の保管や損失のカバーなどを行うリザーブへの寄付機能
(donateToReserves) 2) 最大19倍までレバレッジを効かして借入ができる Mint機能 (mint) - ハッキングは、この寄付機能にアカウントのヘルスチェックがなかったことを悪用して実施された - 実際のトランザクションの 1つがこちら https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6 b111d ハッキング概要
ハッキング詳細(1) : Main contract 1. Aaveからフラッシュローンで 3000万DAIを借りる 2. 攻撃のために2つのコントラクト「Vaiolator」「Liquidator」をデプロイする 3.
3000万DAIをMainからVaiolatorに送る。 Main Vaiolator Liquidator 3000万DAI 3000万DAI 1.Transfer 2.Deploy 2.Deploy 3.Transfer
ハッキング詳細(2) : Vaiolator contract 4. Euler Financeに2000万DAIを入金し、それに応じた 1956万eDAI(資産)を受け取る 5. レバレッジをかけ、資産として
1億9568万eDAI、負債として2億dDAIをmintする。 Vaiolator 2000万DAI 1956万eDAI 1億9568万eDAI&2億dDAI 4.Deposit 4.Transfer 5.Mint 4.Transfer 1956万+1億9568万 = 2億1524万(eDAI) 2億(dDAI)
ハッキング詳細(3) : Vaiolator contract 6. 1000万 DAIを返済し、dDAI残高を1億9000万に減らす 7. 資産に余力が生まれたので、再度レバレッジをかけ 1億9568万eDAIと2億dDAIをmintする
Vaiolator 1000万DAI 1000万dDAI 1億9568万eDAI&2億dDAI 6.Repay 6.Transfer 7.Mint 7.Transfer 2億1524+1億9568万 ≒ 4億1093万(eDAI) 2億 - 1000万 + 2億 = 3億9000万(dDAI)
ハッキング詳細(4) : Vaiolator contract 8. 資産として保持している 4億1093万eDAIのうち、1億をリザーブに寄付する (donateToReserves) 9. 結果、eDAIより負債であるdDAIの方が多くなり、精算対象のアカウントとなる
Vaiolator 1億eDAI 4.Donate 4億1093万 - 1億 = 3億1093万(eDAI) 3億9000万(dDAI)
ハッキング詳細(5) : Liquidator contract 10. Vaiolatorに対し精算処理を実行し、その報酬として 3億1093万eDAIと2億5931万dDAIを取得する 11. 資産であるeDAIの方が多いため、その余力分の 3890万DAIを引き出す
Vaiolator 10.Liquidate 10.Transfer 11.Transfer Liquidator 10.Transfer 3億1093万eDAI &2億5931dDAI 11.Withdraw 3890万DAI 3億1093万eDAI &2億5931dDAI
ハッキング詳細(6) : Main contract 12. 3890万DAIをMainコントラクトに送る 13. Aaveに3000万DAIを送り、フラッシュローンで借りた分を返済する 14. 結果、890万DAIが手元に残る
Main Vaiolator Liquidator 3000万DAI 3890万DAI 13.Transfer 12.Transfer
ハッキングの原因 - 寄付機能であるdonateToReservesファンクションにヘルスチェックがなかったことが原因 - それにより、担保不足の状態を意図的に作ることができてしまった
ハッキングの原因
ハッキングの原因
ハッキングへの対策 - 定期的にセキュリティ監査を実施していた → donateToReservesは監査の対象外 - Bug Bountyプログラムも実施していた → 利用していたプラットフォームがリンク切れ
- フォーラムにて更新内容の提案 (eIP-14)、事前デプロイ、ディスカッション、コントラクト更新という手順を踏 んでいた → ディスカッションが活発にはされていない
セキュリティ対策を徹底しよう
フラッシュローン攻撃を防ぐ一般な方法 - コントラクトからの呼び出しを不可能にすればフラッシュローンは防げるが、呼び元がコントラクトかどうか を確実に判定することはできない。 (OpneZeppelinのAddress.isContract参照。) - フラッシュローンを防ぐ方法は、以下の 3つが考えられる。 1) ロジックを2つのトランザクションに分割する
2) 信頼のできる外部オラクルを利用する 3) スリッページにリミットを設ける
Euler Financeハッキング事件のその後 - 盗まれた資金のうち約 80%にあたる31,000ETHと3,000万DAIが返却された - オンチェーンメッセージで謝罪をしているらしい。 https://etherscan.io/tx/0xedd8102ca037abaeb75ce6a1afe951d2953258392d891ff23510276993 a5437c
Appendix - A Detailed Analysis of Euler Finance’s $196 Million
Flash Loan Attack https://medium.com/@numencyberlabs/a-detailed-analysis-of-euler-finances-196-million-flash-loan-attack-81cdef370024 - Euler Finance Incident Post-Mortem https://medium.com/@omniscia.io/euler-finance-incident-post-mortem-1ce077c28454 - Mitigations against flash-loan enabled attacks https://www.smartcontractresearch.org/t/mitigations-against-flash-loan-enabled-attacks/615 - Euler Finance Hacker Apologizes, Returns Stolen $177 Million https://icoinmarket.com/euler-finance-hacker-apologizes-returns-stolen-177-million/
Thank you for your time 😊