← Dashboard
BNB Smart Chain (BSC)Chain ID: 56
PMA Case #—

Belt Finance

Ellipsis 3EPS 풀 가격 조작을 통한 beltBUSD Vault 지분 과대 평가 — 7회 내부 루프 × 8회 트랜잭션으로 $6,234,753 BUSD 탈취
Share Valuation ManipulationFlash LoanMulti-Tx (×8)Yield Aggregator

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

All
Step 1: Flash Loan
Step 2: Deposit (Ellipsis)
Step 3: Deposit (Venus)
Step 4: Price Manipulation
Step 5: Withdraw
Step 6: Reverse Swap
Step 7: Re-deposit
Step 8: Repay & Profit
PancakeSwap 8개 페어에서 $387.3M BUSD 플래시론 → Belt Vault 경유 Ellipsis/Venus 전략 예치 → Ellipsis 3EPS에서 $190M BUSD→USDT 대규모 스왑(BUSD 스팟가 −10.6%) → Belt Vault 지분 과대 평가 → 초과 인출 → 역스왑 슬리피지 회수. 7회 내부 루프 후 상환, ×8 트랜잭션.
Block #7,838,862 — 단일 Tx 내 7회 루프 (×8 Tx 반복) Attacker CA0x4eB3…1B5D PancakeSwap8 Pairs Flash Loan Belt FinancebeltBUSD VaultMulti-Strategy Ellipsis 3EPSBUSD / USDC / USDT Venus ProtocolvBUSD Lending Ellipsis StrategybEllipsisBUSD Venus StrategybVenusBUSD $387.3M BUSD1 $10M BUSD2 $187.3M BUSD3 ⚠ 가격 의존$190M BUSD→$169.9M USDT⚠ BUSD −10.6% 하락4 $198.2M BUSD5 $169.9M USDT→$189.4M BUSD6 $197.5M re-deposit7 Repay $388.5M8

Block 2 — 종합 대시보드

2-1. Transaction Info

Block Number7,838,862
Date / Time (UTC)2021-05-29 19:09:34
Attack TypeShare Valuation Manipulation
Attacker Profit (this tx)407,975.96 BUSD
Attacker Profit (8 txs total)~$6,234,753 BUSD
Protocol Loss (total)~$50,000,000 BUSD
Flash Loan Amount387,315,996.87 BUSD
Flash Loan Fee (this tx)1,165,444.32 BUSD

2-2. Attack Execution Flow

Step 1 — Flash Loan (idx #212~#219)
PancakeSwap 8개 페어에서 BUSD 차입
WBNB/BUSD ($107.7M), USDT/BUSD ($153.6M), USDC/BUSD ($38.2M), DAI/BUSD ($31.4M), UST/BUSD ($17.5M), VAI/BUSD ($17.3M), ALPACA/BUSD ($10.8M), Cake/BUSD ($10.7M) — EOA(0xBFAA…3077)가 트랜잭션 발신, CA(0x4eB3…1B5D)가 실행
+387,315,996.87 BUSD
Step 2 — Vault → Ellipsis Strategy (idx #223~#236, 첫 Tx에서만)
Belt Vault → StrategyEllipsis → Ellipsis 3EPS AddLiquidity
CA → beltBUSD Vault에 $10M BUSD 예치 (#223) → Vault가 bEllipsisBUSD로 라우팅 (#225→#227) → StrategyEllipsis가 3EPS에 AddLiquidity (#232) → 9,979,523 3EPS LP 수령 → LpTokenStaker에 Deposit (#236). 40.9 EPS 리워드 자동 스테이킹 (Staked #234)
−10,000,000 BUSD → 9,815,290 beltBUSD
Step 3 — Vault → Venus Strategy (idx #239~#244)
Belt Vault → bVenusBUSD 전략 대규모 예치
CA → beltBUSD Vault에 187,315,996.87 BUSD 예치 (#239) → Vault가 bVenusBUSD로 라우팅 (#242) → 183,330,311 bVenusBUSD 발행 (#241)
−187,315,996.87 BUSD → 183,917,614 beltBUSD
Step 4 — 가격 조작 (TokenExchange #248, ×7 반복)
공격자 CA가 직접 Ellipsis 3EPS에서 BUSD→USDT 대규모 스왑
$190M BUSD → $169,949,807 USDT (첫 루프). 실효 환율 0.8945 = −10.55%. Belt의 calcPoolValueInToken()이 이 왜곡된 3EPS virtual_price를 참조하여 beltBUSD 지분을 5~6% 과대 평가. 매 루프마다 USDT 수령량 감소 추세 (169.95M → 169.75M)
−190,000,000 BUSD → +169,949,807 USDT
Step 5 — 초과 인출 (Redeem #257, ×7 반복)
과대 평가된 beltBUSD 소각 → Venus에서 BUSD 인출
193,732,905 beltBUSD 소각 (#249) → Vault가 bVenusBUSD 전략에서 인출 → Venus Redeem 10,845,199 BUSD (#257, RedeemFee 1,084 BUSD). Vault에서 CA로 198,156,858 BUSD 전송 (#265). 루프 2~7은 853K~871K BUSD씩 Redeem. 총 Redeem 합계: 16,017,749 BUSD
+198,156,858 BUSD (첫 루프) | Σ Redeem: 16,017,749 BUSD
Step 6 — 역스왑 (TokenExchange #269, ×7 반복)
USDT→BUSD 역스왑으로 슬리피지 회수
169,949,807 USDT → 189,368,140 BUSD (첫 루프 #269). 실효 환율 1.1143 = +11.4% 프리미엄. 3EPS 풀이 USDT 과잉/BUSD 부족 상태이므로 역방향 프리미엄 획득
−169,949,807 USDT → +189,368,140 BUSD
Step 7 — 재예치 (idx #270, ×6 반복)
Belt Vault → Venus Strategy 재예치
197,524,998 BUSD → bVenusBUSD 재예치 (첫 루프 #270~#274). 다음 루프의 Step 4~5를 위한 상태 복원. 7번째 루프에서는 재예치 생략 후 바로 Step 8 진행
−197,524,998 BUSD (첫 루프)
Step 8 — Flash Loan 상환 + 이익 실현 (Swap #452~#473, Transfer #474)
PancakeSwap 8개 페어 상환 후 잔액을 EOA로 전송
388,481,441.20 BUSD 상환 (수수료 1,165,444.32 BUSD 포함). 잔여 407,975.96 BUSD를 수익금 수령 주소(0x8937…14ae)로 전송 (#474). 전체 8회 Tx 반복으로 $6,234,753 BUSD 달성
NET PROFIT: 407,975.96 BUSD (이 Tx) | ~$6,234,753 (8 Tx 합산)

2-3. Involved Entities & PnL

ATTACKER EOA
Exploiter
+$6,234,753 BUSD
ATTACKER CA
Attack Contract
이익금 → 0x8937…14ae로 전송
VICTIM
Belt Finance — beltBUSD Vault
−$50,000,000 BUSD
beltBUSD 보유자 21.36% 손실 / 4Belt LP 5.51% 손실
FLASH LOAN
PancakeSwap (8 Pairs)
$387.3M BUSD / fee: $1.17M
INTERMEDIARY
Ellipsis — 3EPS Pool
EPS LP/staker 스왑 수수료 수령
INTERMEDIARY
Venus Protocol
VBep20Delegator — BUSD 예치/인출

2-4. Share Valuation Manipulation Detail

정상 상태
BUSD/USDT 환율1.0000
beltBUSD 가치≈ 1.00 BUSD
3EPS 풀균형
⚠ 조작 후
BUSD/USDT 실효 환율0.8945
괴리율−10.55%
beltBUSD 과대 평가+5~6%
조작 비용 (첫 루프)
BUSD→USDT 손실−$20,050,192
USDT→BUSD 복구+$19,418,333
순 스왑 손실−$631,859
이익 원천 (첫 루프)
Vault 초과 인출+$10,840,861
Flash fee−$1,165,444
순이익 (이 Tx)$407,975

2-5. Key Events (온체인 데이터 기반)

#EventFromToAmountDeviation
1Swap (×8 pairs, Flashloan borrow)PancakeSwapAttacker CA387,315,996.87 BUSD
2AddLiquidity (#232)Belt StrategyEllipsisEllipsis 3EPS10,000,000 BUSD → 9,979,523 3EPS
3Vault Deposit → bVenusBUSDAttacker CA → Belt VaultVenus Strategy187,315,996.87 BUSD
4TokenExchange (×7)Attacker CAEllipsis 3EPS7 × 190M BUSD → Σ 1,188.9M USDT$0.894/BUSD
($0.8945→$0.8934) −10.6%
5Redeem (×7)VenusBelt StrategyVenusV2Σ 16,017,749.79 BUSD
6TokenExchange — 역스왑 (×7)Attacker CAEllipsis 3EPSΣ 1,188.9M USDT → Σ 1,325.6M BUSD$1.114/BUSD
($1.114→$1.116) +11.5%
7Re-deposit (×6)Attacker CA → Belt VaultVenus Strategy$197.5M~$198.7M BUSD
8Swap (×8 pairs, Flashloan repayment)Attacker CAPancakeSwap388,481,441.20 BUSD
9Profit Transfer (#474)Attacker CA0x8937…14ae407,975.96 BUSD

TokenExchange 상세 (BUSD→USDT, 7회 루프)

LoopIdxBUSD SoldUSDT BoughtRateDev
1248190,000,000169,949,8070.8945−10.55%
2279190,000,000169,915,9130.8943−10.57%
3309190,000,000169,882,0210.8941−10.59%
4339190,000,000169,848,1300.8939−10.61%
5369190,000,000169,814,2400.8938−10.62%
6399190,000,000169,780,3520.8936−10.64%
7429190,000,000169,746,4660.8934−10.66%

Venus Redeem 상세 (7회 루프)

LoopIdxRedeem (BUSD)RedeemFeeMint 재예치
125710,845,199.671,084.634,338.51
2287853,070.4285.32341.26
3317856,642.8885.67342.69
4347860,242.1486.03344.13
5377863,868.5286.40345.58
6407867,522.3186.76347.04
7437871,203.8687.13348.52
합계16,017,749.791,601.946,407.74

2-6. 유사 공격 비교

프로토콜날짜체인공격 유형피해액
Harvest Finance2020-10-26ETHShare Valuation / Curve Pool$25.0M
Yearn Finance (v1)2021-02-05ETHFlash Loan / Share Manipulation$11.0M
bEarn Fi2021-05-16BSCFlash Loan / Logic Error$11.0M
PancakeBunny2021-05-19BSCFlash Loan / Price Oracle$45.0M
BurgerSwap2021-05-28BSCFlash Loan / Reentrancy$7.2M
Belt Finance2021-05-29BSCShare Valuation Manipulation$6.3M ($50M total)

2-7. Root Causes & Lessons

취약점
Ellipsis 3EPS 풀의 스팟 가격(virtual_price)을 Belt Vault 전체 지분 가치 평가에 사용 — $190M 단일 스왑으로 조작 가능
모든 전략이 균형이라는 잘못된 가정 하에 Ellipsis 전략 가치만으로 전체 Vault 가치를 추정하는 calcPoolValueInToken() 로직
V1에서 Venus 통합 버그 발생 후에도 V2에서 동일 패턴의 Ellipsis 통합 취약점 방치
동일 블록 내 예치/인출 제한 없음 — 플래시론 공격에 무방비
교훈
멀티 전략 Vault는 각 전략의 가치를 독립적으로 산정해야 하며, 단일 AMM 풀의 스팟 가격에 의존 금지
AMM 스팟 가격 대신 TWAP 오라클이나 Chainlink 외부 오라클 사용 필요
동일 블록 예치+인출 제한, 지분 가치 변동 상한선(cap) 설정 필수
프로토콜 통합(포크) 시 개별 보안 감사 수행 — V1 감사가 V2 신규 전략을 커버하지 못함

2-8. 공격 당시 토큰 가격 (tokenPriceCache)

BUSD
$1.00
USDT
$1.00
BNB (WBNB)
$329.60
3EPS LP
$9.935
CAKE
$15.97
BUSD in 3EPS (조작 후)
~$0.894
−10.6%
💡 가격 조작 핵심: 공격자 CA(0x4eB3…1B5D)가 Belt Vault를 통하지 않고 직접 Ellipsis 3EPS Vyper 컨트랙트(0x160C…4E76)에서 $190M BUSD→USDT 스왑 실행. Belt의 StrategyEllipsis(0x4cdb…f135)가 아닌 공격자가 직접 풀을 조작한 것이 핵심. Belt Vault는 이 왜곡된 3EPS virtual_price를 기반으로 beltBUSD 지분 가치를 계산하여, 인출 시 예치 대비 5~6% 더 많은 BUSD를 지급함.

Block 3 — 인터랙티브 Fund Flow

Step 1: Flash Loan
Step 2: Deposit EPS
Step 3: Deposit Venus
Step 4: BUSD→USDT
Step 5: Withdraw
Step 6: USDT→BUSD
Step 7: Re-deposit
Step 8: Repay
Attacker CA0x4eB3…1B5D PancakeSwap8 Pairs Ellipsis StrategybEllipsisBUSD Belt VaultbeltBUSD Venus StrategybVenusBUSD Ellipsis 3EPSBUSD/USDC/USDT $387.3M BUSD $10M BUSD $187.3M BUSD $190M BUSD→$169.9M USDT $198.2M BUSD $169.9M USDT→$189.4M BUSD $197.5M re-deposit Repay $388.5M BUSD flowDeposit / TokenPrice manipulationWithdraw / Repay
PancakeSwap 8개 BUSD 페어에서 387,315,996.87 BUSD 플래시론 수령. Transfer #212~#219 — 8개 페어 각각에서 공격자 CA(0x4eB3…1B5D)로 BUSD 전송.
BUSD Balance
387,315,996
USDT Balance
0
beltBUSD
0
Status
Flash Loan 수령

Block 4 — BUSD Balance Waterfall (단일 Tx)

Flash Loan 유입유출Exploit 유입Net Profit