← Dashboard
Ethereum Mainnet Chain ID: 1
PMA Case #—

Eminence Finance

본딩 커브 + eToken 순환 조작으로 ~$15M DAI를 탈취한 플래시론 공격 (Tx 3/3)
Bonding Curve Manipulation Flash Loan (Uniswap V2) Single Tx Unaudited Contract

Block 1 — 프로토콜 의존성 구조도

All
Step 1: Flash Loan
Step 2: DAI→EMN Mint
Step 3: EMN→eAAVE Burn
Step 4: EMN→DAI Sell
Step 5: eAAVE→EMN Cycle
Step 6: Repay + Profit
전체 흐름: 공격자는 Uniswap V2에서 15M DAI를 플래시론으로 차입 → Eminence 본딩 커브에 예치하여 EMN 민팅 → EMN의 절반을 소각하여 eAAVE 민팅(EMN 공급 감소로 가격 상승) → 나머지 EMN을 높은 가격에 DAI로 판매 → eAAVE를 다시 EMN으로 교환 후 재판매. 이 사이클을 3회 반복하여 본딩 커브의 DAI를 연쇄적으로 추출.
Single atomic transaction — Block #10954411 Uniswap V2 WETH/DAI Pool Attacker CA 0x3882...713f Eminence (EMN) DAI ↔ EMN 본딩 커브 Eminence AAVE EMN ↔ eAAVE 커브 Attacker EOA 0x2230...1cA9 15M DAI 1 DAI → EMN 2 ½ EMN burn → eAAVE mint 3 ½ EMN → DAI 4 eAAVE→EMN→DAI ×3 라운드 반복 5 15.04M DAI 5.92M DAI 6

Block 2 — 종합 대시보드

2-1. Transaction Info

Block 10,954,411
Date / Time (UTC) 2020-09-29 01:20:41
Attack Type Bonding Curve Manipulation + Flash Loan
Attacker Profit (this tx) +5,919,922 DAI (~$5.92M)
Total Victim Loss (3 txs) ~15,015,533 DAI (~$15M)
Returned by Attacker 8,000,000 DAI ($8M)

2-2. Attack Execution Flow

Step 1 — Flash Loan
Uniswap V2 Flash Swap으로 15,000,000 DAI 차입
Uniswap V2 WETH/DAI 풀에서 flash swap을 통해 대규모 DAI를 무담보로 차입. 동일 트랜잭션 내 상환 필수.
15,000,000 DAI
Step 2 — Round 1: DAI→EMN Mint
본딩 커브에 DAI 예치 → EMN 민팅
Eminence 본딩 커브(CashShopBuy)에 15M DAI를 예치하여 ~1.38B EMN을 민팅.
15,000,000 DAI → 1,383,650,487 EMN
Step 3 — Round 1: EMN→eAAVE (Supply 조작)
EMN 절반 소각 → eAAVE 민팅 (가격 펌핑 핵심)
EMN의 절반(~691M)을 eAAVE 본딩 커브에 소각. EMN 공급이 급감하면서 본딩 커브 상 EMN 가격이 대폭 상승. 이것이 공격의 핵심 — 소각 행위 자체가 가격 조작을 유발.
691,825,243 EMN → 572,431 eAAVE
Step 4 — Round 1: EMN→DAI Sell (Profit 1차)
나머지 EMN을 높아진 가격으로 DAI 회수
EMN 공급 감소로 올라간 가격에 나머지 EMN을 CashShopSell. 그 후 eAAVE를 다시 EMN으로 교환 후 재판매.
691M EMN → 10,024,579 DAI + (eAAVE→EMN→) 6,649,057 DAI = 16,673,636 DAI
Step 5 — Round 2: 재투입 (스케일 확대)
Round 1 수익 전액 재투입 → 더 큰 스케일로 반복
Round 1의 16.67M DAI를 그대로 재투입. 동일 Buy→Burn→Sell 패턴을 반복하여 18.65M DAI 추출.
16,673,637 DAI → 18,653,307 DAI (+1,979,670 순이익)
Step 6 — Round 3: 최종 라운드
Round 2 수익 전액 재투입 → 본딩 커브 잔여 DAI 모두 추출
18.65M DAI를 재투입하여 최종 20.96M DAI를 추출. 본딩 커브의 DAI 잔고가 사실상 소진됨.
18,653,308 DAI → 20,965,177 DAI (+2,311,869 순이익)
Step 7 — Flash Loan 상환 + 수익 이전
Uniswap에 15.04M DAI 상환, 5.92M DAI 순이익 확보
Flash Swap 원금 + 0.3% 수수료(45,255 DAI) 상환 후 잔여 DAI를 공격자 EOA로 이전.
NET PROFIT: +5,919,922 DAI (~$5.92M)

2-3. Involved Entities & PnL

ATTACKER EOA
공격자 외부 소유 계정
+5,919,922 DAI
ATTACKER CA
공격 실행 컨트랙트
중간 실행 역할
VICTIM — EMINENCE
Eminence (EMN) 본딩 커브
-~$15M DAI (전체 풀 소진)
INTERMEDIARY
Eminence AAVE (eAAVE) 커브
공급 조작 경유 컨트랙트
FLASH LOAN — UNISWAP V2
Uniswap V2 WETH/DAI Pool
+45,255 DAI (수수료)

2-4. Bonding Curve Manipulation Detail

Round 1 수익률
입금15,000,000 DAI
회수16,673,636 DAI
순이익+1,673,636 DAI (+11.2%)
⚠ Round 3 수익률 (최종)
입금18,653,308 DAI
회수20,965,177 DAI
순이익+2,311,869 DAI (+12.4%)
Burn 효과 (가격 조작)
R1 매입가$0.01084/EMN
R1 매도가 (post-burn)$0.01449/EMN
가격 상승률+33.7%
Flash Loan 비용
원금15,000,000 DAI
수수료 (0.3%)45,255 DAI
상환 총액15,045,255 DAI

2-5. Key Events

#EventFromToAmountDeviation
1Swap (Flashloan borrow)Uniswap V2Attacker CA15,000,000 DAI
2CashShopBuyAttacker CAEminence15,000,000 DAI → 1,383,650,487 EMN $0.01084/EMN
기준가 설정 (R1)
3CashShopBuy (eAAVE)Attacker CAEminence AAVE691,825,243 EMN → 572,431 eAAVE
4CashShopSellEminenceAttacker CA691,825,243 EMN → 10,024,579 DAI $0.01449/EMN
+33.7% from $0.01084
5CashShopSell (eAAVE→EMN→DAI)Eminence AAVE + EminenceAttacker CA572,431 eAAVE → 691,825,243 EMN → 6,649,057 DAI $0.00961/EMN
−11.4% (커브 소진 효과)
6CashShopBuy (R2)Attacker CAEminence16,673,637 DAI → 1,734,440,732 EMN $0.00961/EMN
R2 진입가
7CashShopBuy (eAAVE, R2)Attacker CAEminence AAVE867,220,366 EMN → 665,997 eAAVE
8CashShopSell (R2)EminenceAttacker CA867,220,366 EMN → 11,578,029 DAI $0.01335/EMN
+38.9% from R2 base
9CashShopSell (eAAVE→EMN→DAI, R2)Eminence AAVE + EminenceAttacker CA665,997 eAAVE → 867,220,366 EMN → 7,075,278 DAI $0.00816/EMN
−15.1% (누적 소진)
10CashShopBuy (R3)Attacker CAEminence18,653,308 DAI → 2,285,646,347 EMN $0.00816/EMN
R3 진입가
11CashShopBuy (eAAVE, R3)Attacker CAEminence AAVE1,142,823,173 EMN → 797,273 eAAVE
12CashShopSell (R3)EminenceAttacker CA1,142,823,173 EMN → 13,579,728 DAI $0.01188/EMN
+45.6% from R3 base
13CashShopSell (eAAVE→EMN→DAI, R3)Eminence AAVE + EminenceAttacker CA797,273 eAAVE → 1,142,823,173 EMN → 7,385,449 DAI $0.00646/EMN
−20.8% (풀 거의 소진)
14 Swap (Flashloan repayment)Attacker CAUniswap V215,045,255 DAI
15Profit TransferAttacker CAAttacker EOA5,919,922 DAI NET PROFIT

2-6. 유사 공격 비교

공격명날짜피해 규모기법프로토콜
bZx Hack I2020-02-15~$350KFlash Loan + Oracle ManipbZx / Fulcrum
bZx Hack II2020-02-18~$600KFlash Loan + sUSD PumpbZx / Kyber / Synthetix
Harvest Finance2020-10-26~$34MFlash Loan + AMM ManipHarvest / Curve
Eminence Finance2020-09-29~$15MFlash Loan + Bonding CurveEminence (Yearn)
Yam Finance2020-08-13~$750KRebase BugYam

2-7. Root Causes & Lessons

취약점 (Root Causes)
본딩 커브 간 상호작용에서 공급 감소 → 가격 상승의 순환적 차익이 통제되지 않음. EMN 소각이 eToken 커브를 경유해 즉시 재민팅 가능.
미감사 컨트랙트가 메인넷에 배포된 상태에서 접근 제한 없이 대규모 자금 유입을 허용. 프론트엔드조차 없는 알파 단계.
Flash Loan 방어 메커니즘 부재. 동일 블록 내 대량 mint/burn/sell 사이클에 대한 제한이 없었음.
본딩 커브 설계에서 대량 매수/소각 시 가격 영향(slippage)이 공격자에게 유리하게 작용하는 구조적 결함.
교훈 (Lessons Learned)
본딩 커브 기반 프로토콜은 다중 토큰 간 순환 차익 가능성을 반드시 검증해야 함. eToken 패밀리 간 mint/burn 재진입 방지 필요.
미완성 컨트랙트는 접근 제한(whitelist, cap) 없이 메인넷에 배포되어서는 안 됨. "Test in prod"의 위험성 증명.
Flash Loan 방어: 동일 블록 내 mint+burn 조합에 대한 딜레이 또는 재진입 가드 구현 필수.
프로젝트 창시자의 소셜 미디어 영향력이 FOMO를 유발할 수 있으므로, 미완성 프로젝트 홍보에 주의 필요.

2-8. 공격 당시 토큰 가격

DAI
$1.00
스테이블코인 기준가
WETH
~$354.90
공격 시점 시가
EMN (조작 대상)
~$0.0108
본딩 커브 가격 (조작 전)
eAAVE
~$1.018
EMN 연동 파생 토큰
💡 가격 조작 핵심: 공격자가 EMN의 절반을 eAAVE로 소각하면 EMN 공급이 줄어 본딩 커브 상 가격이 급등(R1: +33.7%, R2: +38.9%, R3: +45.6%). 이 가격 차이가 각 라운드에서 DAI 순이익을 생성. 커브가 소진될수록 라운드별 수익률은 증가(11.2% → 11.9% → 12.4%).

Block 3 — Fund Flow

Step 1: Flash Loan
Step 2: Buy EMN
Step 3: Burn→eAAVE
Step 4: Sell EMN
Step 5: Cycle eAAVE
Step 6: ×3 Rounds
Step 7: Repay + Profit
Uniswap V2 WETH/DAI Pool Attacker CA 0x3882...713f Eminence (EMN) DAI↔EMN Curve Eminence AAVE EMN↔eAAVE Curve Attacker EOA 0x2230...1cA9 15M DAI DAI → EMN ½ EMN burn ½ EMN→DAI eAAVE→EMN→DAI ×3 라운드 Steps 2~5 반복 CYCLE ×3 15.04M DAI repay 5.92M DAI DAI flow Token flow Repay / Sell Burn flow
Step 1: Uniswap V2 WETH/DAI 풀에서 15,000,000 DAI를 flash swap으로 차입. 동일 트랜잭션 내에 원금 + 0.3% 수수료를 상환해야 함.
DAI Balance
15,000,000
EMN Balance
0
Status
Flash Loan 수령

Block 4 — DAI Balance Waterfall

Flash Loan 유입 유출 (커브 매수) Exploit 유입 (매도 회수) 상환 Net profit