| # | Event | From | To | Amount | Deviation |
|---|---|---|---|---|---|
| 11 | LogWithdraw (Flash Borrow) | dYdX | Attacker | 100,000 WETH | — |
| Cycle 1 — Sub-CA: 0x9381... | |||||
| 16 | AddLiquidity (WETH only) | Attacker (0x9381) | sETH/ETH Pool | 57,660 WETH → 57,028.907 eCRV | WETH 편중 1.0111 WETH/eCRV |
| 19 | RemoveLiquidityOne (sETH) | sETH/ETH Pool | Attacker (0x9381) | 57,028.907 eCRV → 35,294.233 sETH | sETH 단면 인출 풀에 WETH 과잉 잔류 |
| 26 | AddLiquidity (earn) | BT.Finance Strategy | sETH/ETH Pool | 4,127.846 WETH → 3,216.322 eCRV | 1.2834 WETH/eCRV +28.3% 불리한 환율 |
| 31 | Deposit (Gauge) | BT.Finance Strategy | eCRV Gauge | 3,216.322 eCRV | — |
| 35 | AddLiquidity (sETH restore) | Attacker (0x9381) | sETH/ETH Pool | 35,294.233 sETH | 풀 비율 복원 |
| 37 | RemoveLiquidityOne (WETH) | sETH/ETH Pool | Attacker (0x9381) | 57,805.602 eCRV → 58,469.693 WETH | +809.7 WETH 복원 후 차익 |
| 42 | Withdraw (Gauge) | eCRV Gauge | BT.Finance Strategy | 3,394.102 eCRV | — |
| 45 | RemoveLiquidityOne (Vault) | sETH/ETH Pool | BT.Finance bETH | 3,394.102 eCRV → 3,425.875 WETH | 정상 환율 |
| Cycle 1 Loss | earn 4,127.846 − withdraw 3,425.875 | 701.971 WETH | $1,128,673 | ||
| Cycle 2 — Sub-CA: 0x2a98... | |||||
| 53 | AddLiquidity (WETH only) | Attacker (0x2a98) | sETH/ETH Pool | 57,660 WETH → 57,009.652 eCRV | WETH 편중 1.0114 WETH/eCRV |
| 56 | RemoveLiquidityOne (sETH) | sETH/ETH Pool | Attacker (0x2a98) | 57,009.652 eCRV → 35,288.777 sETH | sETH 단면 인출 풀에 WETH 과잉 잔류 |
| 63 | AddLiquidity (earn) | BT.Finance Strategy | sETH/ETH Pool | 4,145.952 WETH → 3,228.614 eCRV | 1.2841 WETH/eCRV +28.4% 불리한 환율 |
| 68 | Deposit (Gauge) | BT.Finance Strategy | eCRV Gauge | 3,228.614 eCRV | — |
| 72 | AddLiquidity (sETH restore) | Attacker (0x2a98) | sETH/ETH Pool | 35,288.777 sETH | 풀 비율 복원 |
| 74 | RemoveLiquidityOne (WETH) | sETH/ETH Pool | Attacker (0x2a98) | 57,790.480 eCRV → 58,474.235 WETH | +814.2 WETH 복원 후 차익 |
| 79 | Withdraw (Gauge) | eCRV Gauge | BT.Finance Strategy | 3,367.622 eCRV | — |
| 82 | RemoveLiquidityOne (Vault) | sETH/ETH Pool | BT.Finance bETH | 3,367.622 eCRV → 3,400.301 WETH | 정상 환율 |
| Cycle 2 Loss | earn 4,145.952 − withdraw 3,400.301 | 745.651 WETH | $1,198,905 | ||
| Cycle 3 — Sub-CA: 0x4679... | |||||
| 90 | AddLiquidity (WETH only) | Attacker (0x4679) | sETH/ETH Pool | 57,660 WETH → 56,990.222 eCRV | WETH 편중 1.0118 WETH/eCRV |
| 93 | RemoveLiquidityOne (sETH) | sETH/ETH Pool | Attacker (0x4679) | 56,990.222 eCRV → 35,282.771 sETH | sETH 단면 인출 풀에 WETH 과잉 잔류 |
| 100 | AddLiquidity (earn) | BT.Finance Strategy | sETH/ETH Pool | 4,145.765 WETH → 3,226.823 eCRV | 1.2848 WETH/eCRV +28.5% 불리한 환율 |
| 105 | Deposit (Gauge) | BT.Finance Strategy | eCRV Gauge | 3,226.823 eCRV | — |
| 109 | AddLiquidity (sETH restore) | Attacker (0x4679) | sETH/ETH Pool | 35,282.771 sETH | 풀 비율 복원 |
| 111 | RemoveLiquidityOne (WETH) | sETH/ETH Pool | Attacker (0x4679) | 57,771.226 eCRV → 58,474.707 WETH | +814.7 WETH 복원 후 차익 |
| 116 | Withdraw (Gauge) | eCRV Gauge | BT.Finance Strategy | 3,345.921 eCRV | — |
| 119 | RemoveLiquidityOne (Vault) | sETH/ETH Pool | BT.Finance bETH | 3,345.921 eCRV → 3,379.544 WETH | 정상 환율 |
| Cycle 3 Loss | earn 4,145.765 − withdraw 3,379.544 | 766.221 WETH | $1,231,978 | ||
| Cycle 4 — Sub-CA: 0xf67c... | |||||
| 127 | AddLiquidity (WETH only) | Attacker (0xf67c) | sETH/ETH Pool | 57,660 WETH → 56,970.697 eCRV | WETH 편중 1.0121 WETH/eCRV |
| 130 | RemoveLiquidityOne (sETH) | sETH/ETH Pool | Attacker (0xf67c) | 56,970.697 eCRV → 35,276.483 sETH | sETH 단면 인출 풀에 WETH 과잉 잔류 |
| 137 | AddLiquidity (earn) | BT.Finance Strategy | sETH/ETH Pool | 4,145.616 WETH → 3,225.135 eCRV | 1.2854 WETH/eCRV +28.5% 불리한 환율 |
| 142 | Deposit (Gauge) | BT.Finance Strategy | eCRV Gauge | 3,225.135 eCRV | — |
| 146 | AddLiquidity (sETH restore) | Attacker (0xf67c) | sETH/ETH Pool | 35,276.483 sETH | 풀 비율 복원 |
| 148 | RemoveLiquidityOne (WETH) | sETH/ETH Pool | Attacker (0xf67c) | 57,751.816 eCRV → 58,475.115 WETH | +815.1 WETH 복원 후 차익 |
| 153 | Withdraw (Gauge) | eCRV Gauge | BT.Finance Strategy | 3,326.260 eCRV | — |
| 156 | RemoveLiquidityOne (Vault) | sETH/ETH Pool | BT.Finance bETH | 3,326.260 eCRV → 3,360.838 WETH | 정상 환율 |
| Cycle 4 Loss | earn 4,145.616 − withdraw 3,360.838 | 784.778 WETH | $1,261,815 | ||
| Cycle 5 — Sub-CA: 0x0224... | |||||
| 164 | AddLiquidity (WETH only) | Attacker (0x0224) | sETH/ETH Pool | 57,660 WETH → 56,951.090 eCRV | WETH 편중 1.0124 WETH/eCRV |
| 167 | RemoveLiquidityOne (sETH) | sETH/ETH Pool | Attacker (0x0224) | 56,951.090 eCRV → 35,269.941 sETH | sETH 단면 인출 풀에 WETH 과잉 잔류 |
| 174 | AddLiquidity (earn) | BT.Finance Strategy | sETH/ETH Pool | 4,145.485 WETH → 3,223.527 eCRV | 1.2860 WETH/eCRV +28.6% 불리한 환율 |
| 179 | Deposit (Gauge) | BT.Finance Strategy | eCRV Gauge | 3,223.527 eCRV | — |
| 183 | AddLiquidity (sETH restore) | Attacker (0x0224) | sETH/ETH Pool | 35,269.941 sETH | 풀 비율 복원 |
| 185 | RemoveLiquidityOne (WETH) | sETH/ETH Pool | Attacker (0x0224) | 57,732.265 eCRV → 58,475.462 WETH | +815.5 WETH 복원 후 차익 |
| 190 | Withdraw (Gauge) | eCRV Gauge | BT.Finance Strategy | 3,308.690 eCRV | — |
| 193 | RemoveLiquidityOne (Vault) | sETH/ETH Pool | BT.Finance bETH | 3,308.690 eCRV → 3,344.238 WETH | 정상 환율 |
| Cycle 5 Loss | earn 4,145.485 − withdraw 3,344.238 | 801.247 WETH | $1,288,295 | ||
| 202 | LogDeposit (Flash Repay) | Attacker | dYdX | 100,000 WETH + 2 wei | — |
| Phase 1 Total Loss | 5 cycles × bETH Vault | 3,799.868 WETH | $6,109,667 | ||
| # | Event | From | To | Amount | Deviation |
|---|---|---|---|---|---|
| 9 | LogWithdraw (Flash Borrow) | dYdX | Attacker | 100,000 WETH | — |
| 13 | Mint (cETH) | Attacker | Compound | 100,134.20 WETH | — |
| 18 | Borrow | Compound | Attacker | 50,000,000 USDC | — |
| 22 | Borrow | Compound | Attacker | 25,000,000 USDT | — |
| Cycle 1 — Pool Distortion + Vault Deposit | |||||
| 48 | AddLiquidity (USDC+USDT) | Attacker (0x0b83) | a3CRV Pool | 19M USDC + 19M USDT → 37,175,046 a3CRV | — |
| 53 | RemoveLiquidityOne (aDAI) | a3CRV Pool | Attacker (0x0b83) | 37,175,046 a3CRV → 29,843,598 aDAI | DAI 대량 유출 풀 비율 교란 |
| 65 | Deposit (Aave via Curve) | BT.Finance Strategy | Aave | 7,418,197 USDC | — |
| 67 | AddLiquidity (iVault earn) | StrategyUSDCCurve | a3CRV Pool | 7,418,197 aUSDC → 6,269,074 a3CRV | 0.845 a3CRV/USDC 불리한 환율 (정상 ~1.0) |
| 72 | Deposit (Gauge) | StrategyUSDCCurve | a3CRV Gauge | 6,269,074 a3CRV | — |
| 85 | Deposit (Aave via Curve) | BT.Finance Strategy | Aave | 3,992,951 USDT | — |
| 87 | AddLiquidity (bVault earn) | StrategyUSDTCurve | a3CRV Pool | 3,992,951 aUSDT → 3,424,762 a3CRV | 0.858 a3CRV/USDT 불리한 환율 |
| 92 | Deposit (Gauge) | StrategyUSDTCurve | a3CRV Gauge | 3,424,762 a3CRV | — |
| 99 | AddLiquidity (aDAI restore) | Attacker (0x0b83) | a3CRV Pool | 29,843,598 aDAI → 38,494,228 a3CRV | 풀 비율 복원 |
| 104 | Withdraw (Gauge) | a3CRV Gauge | StrategyUSDCCurve | 6,413,788 a3CRV | — |
| 112 | RemoveLiquidityOne (USDC) | a3CRV Pool | StrategyUSDCCurve | 6,413,788 a3CRV → 6,564,509 USDC | 1.024 USDC/a3CRV 정상 환율 (복원 후) |
| 121 | Withdraw (Gauge) | a3CRV Gauge | StrategyUSDTCurve | 3,499,893 a3CRV | — |
| 129 | RemoveLiquidityOne (USDT) | a3CRV Pool | StrategyUSDTCurve | 3,499,893 a3CRV → 3,580,742 USDT | 1.023 USDT/a3CRV 정상 환율 |
| Cycle 1 iVault Loss | deposit 7.8M − withdraw 6,946,345 | $853,655 | USDC | ||
| Cycle 1 bVault Loss | deposit 4.2M − withdraw 3,787,711 | $412,289 | USDT | ||
| Cycle 2 — Pool Re-Distortion + Vault Deposit (심화) | |||||
| 138 | RemoveLiquidityOne (aDAI) | a3CRV Pool | Attacker (0x0b83) | 38,494,228 a3CRV → 29,887,667 aDAI | DAI 재유출 2차 풀 교란 |
| 150 | Deposit (Aave via Curve) | BT.Finance Strategy | Aave | 7,418,164 USDC | — |
| 152 | AddLiquidity (iVault earn) | StrategyUSDCCurve | a3CRV Pool | 7,418,164 aUSDC → 6,133,220 a3CRV | 0.827 a3CRV/USDC C1보다 악화 |
| 157 | Deposit (Gauge) | StrategyUSDCCurve | a3CRV Gauge | 6,133,220 a3CRV | — |
| 170 | Deposit (Aave via Curve) | BT.Finance Strategy | Aave | 3,993,030 USDT | — |
| 172 | AddLiquidity (bVault earn) | StrategyUSDTCurve | a3CRV Pool | 3,993,030 aUSDT → 3,360,324 a3CRV | 0.842 a3CRV/USDT C1보다 악화 |
| 177 | Deposit (Gauge) | StrategyUSDTCurve | a3CRV Gauge | 3,360,324 a3CRV | — |
| 184 | AddLiquidity (aDAI restore) | Attacker (0x0b83) | a3CRV Pool | 29,887,667 aDAI → 39,964,607 a3CRV | 풀 비율 복원 |
| 189 | Withdraw (Gauge) | a3CRV Gauge | StrategyUSDCCurve | 6,282,456 a3CRV | — |
| 197 | RemoveLiquidityOne (USDC) | a3CRV Pool | StrategyUSDCCurve | 6,282,456 a3CRV → 6,437,743 USDC | 1.025 USDC/a3CRV |
| 206 | Withdraw (Gauge) | a3CRV Gauge | StrategyUSDTCurve | 3,438,130 a3CRV | — |
| 214 | RemoveLiquidityOne (USDT) | a3CRV Pool | StrategyUSDTCurve | 3,438,130 a3CRV → 3,521,603 USDT | 1.024 USDT/a3CRV |
| Cycle 2 iVault Loss | deposit 7.8M − withdraw 6,819,469 | $980,531 | USDC | ||
| Cycle 2 bVault Loss | deposit 4.2M − withdraw 3,728,610 | $471,390 | USDT | ||
| Final — Pool Extraction + Loan Repay | |||||
| 230 | RemoveLiquidityImbalance | a3CRV Pool | Attacker (0x0b83) | 20,847,952 USDC + 19,891,195 USDT | — |
| 239 | RemoveLiquidityOne (DAI) | a3CRV Pool | Attacker (0x0b83) | 184,534 a3CRV → 188,657 DAI | 1.022 DAI/a3CRV |
| 246 | RepayBorrow | Attacker | Compound | 50,000,000 USDC | — |
| 249 | RepayBorrow | Attacker | Compound | 25,000,000 USDT | — |
| 253 | Redeem (cETH) | Compound | Attacker | 100,134.20 WETH | — |
| 258 | LogDeposit (Flash Repay) | Attacker | dYdX | 100,000 WETH + 2 wei | — |
| Phase 2 Total Loss | 2 cycles × (iVault + bVault) | $2,717,865 | USDC+USDT | ||
| Phase 2 Attacker Profit | 시맨틱 분석 기준 | +$2,927,804 | Net | ||
| Date | Protocol | Attack Vector | Loss |
|---|---|---|---|
| 2020-10-26 | Harvest Finance | Curve y Pool 조작 | $33.8M |
| 2021-02-04 | Yearn Finance yDAI | Curve 3pool 조작 + earn() | $11.1M |
| 2021-02-08 | ★ BT.Finance | Curve sETH/ETH + a3CRV 조작 | ~$8.93M |
| 2021-02-09 | Growth DeFi | Fake LP 토큰 주입 | $1.3M |
| Cycle | WETH In (earn) | WETH Out (withdraw) | Loss (WETH) | Loss (USD) |
|---|---|---|---|---|
| 1 | 4,127.85 | 3,425.87 | 701.97 | $1,128,674 |
| 2 | 4,145.95 | 3,400.30 | 745.65 | $1,198,904 |
| 3 | 4,145.76 | 3,379.54 | 766.22 | $1,231,979 |
| 4 | 4,145.62 | 3,360.84 | 784.78 | $1,261,815 |
| 5 | 4,145.48 | 3,344.24 | 801.25 | $1,288,295 |
| 합계 | 20,710.66 | 16,910.79 | 3,799.87 | $6,109,668 |
| Cycle | Vault | Deposit | Withdraw | Loss |
|---|---|---|---|---|
| 1 | iVault (USDC) | 7,800,000 | 6,946,345 | $853,655 |
| 1 | bVault (USDT) | 4,200,000 | 3,787,711 | $412,289 |
| 2 | iVault (USDC) | 7,800,000 | 6,819,469 | $980,531 |
| 2 | bVault (USDT) | 4,200,000 | 3,728,610 | $471,390 |
| 합계 | 24,000,000 | 21,282,135 | $2,717,865 | |