8가지 일반적인 DeFi 경제 모델 공격 사례 복기
저자: Jonas, Foresight Ventures
암호화폐 산업의 어두운 숲에서 DeFi는 해커의 인출 기계가 되었으며, 올해까지의 총 손실 금액은 300억 달러를 초과했습니다. 첫째, DeFi 플랫폼이 대량의 자금을 보유하고 있어 공격 성공 시 보상이 크기 때문입니다. 둘째, 대부분의 DeFi 프로토콜 코드가 오픈 소스이기 때문에 사이버 보안 위협에 더 쉽게 노출됩니다. 셋째, DeFi는 일반적으로 생태계가 상호 연결되어 있어 공격의 편리함을 증대시킵니다. Token Terminal 보고서에 따르면, DeFi의 약 50%의 취약점은 크로스 체인 브리지에서 발생하며, 그 다음으로는 대출, 거래소 및 총알 풀입니다.
DeFi의 경제 모델 공격은 더 많은 연구 가치가 있으며, 특히 극단적인 상황에서 일부 메커니즘의 방향은 토큰 경제학을 이해하는 데 유리합니다. 어떤 의미에서는 해커가 피싱, 크래킹 등의 사회 공학 수단을 통해 자산을 탈취하는 것은 부당한 재산으로 간주될 수 있습니다. 반면 DeFi의 규칙을 통해 차익 거래를 하는 것은 명백하게 돈을 버는 행위로, 수단은 교묘하지만 비난할 수 없습니다.
가격 조작, 계약을 통한 현금화
가격 조작은 DeFi에서 가장 초기이자 일반적인 취약점입니다. 그리고 체인 상의 파생상품이 등장하면서 공격의 수익률이 매우 높아졌습니다.
사례 1: MANGO
2022년 10월 Solana 체인의 분산형 계약 플랫폼 Mango가 공격을 받았습니다.
성공 요소: 알트코인 계약 포지션에 제한이 없음
공격 과정:
a) 포지션 구축: 공격자는 먼저 Mango 거래 플랫폼 A, B 주소에 각각 500만 달러를 전송했습니다. 이후 해커는 A 주소를 통해 Mango에서 MANGO 토큰을 공매도하고, 동시에 B 주소에서 MANGO를 매수했습니다. 공매도와 매수의 이유는 Mango 플랫폼이 알트코인 계약 포지션에 제한이 없지만, 유동성이 부족하여 자신과의 반대 포지션 없이 높은 포지션을 열기 어렵기 때문입니다.
b) 가격 조작: 공격자는 더 많은 자금을 사용하여 MANGO 토큰을 구매하고, 10분 내에 가격을 2센트에서 91센트로 올렸습니다. MANGO는 유동성이 낮은 토큰이기 때문에 공격자가 가격을 빠르게 조작할 수 있었습니다.
c) 현금화: 이때 공격자의 매수 포지션 수익은 4.2억 달러에 달하며, Mango 플랫폼에서 계좌 순자산을 이용해 대출을 받았습니다. 유동성이 부족하여 결국 1.1억 달러만 대출되었습니다.
사례 2: GMX
2022년 9월 Arbitum 체인의 분산형 계약 플랫폼 GMX가 공격을 받았습니다.
성공 요소: 0 슬리피지 메커니즘, 공격 비용이 낮음
공격 과정:
a) 포지션 구축: 공격자는 GMX에서 대량의 AVAX 매수 및 매도 포지션을 반복적으로 열었습니다.
b) 가격 조작: GMX는 0 슬리피지이기 때문에 오라클의 가격 제공이 실행 가격과 거의 동일하지만, GMX의 대량 포지션은 다른 거래소의 AVAX/USD 가격에 영향을 미치고, 이후 오라클이 반응하여 GMX에 가격을 제공하게 됩니다. 0 슬리피지는 공격자가 언제든지 무한한 유동성을 보유하고 있음을 의미합니다. 극단적인 예로, GMX에서 10억 달러의 AVAX를 매수하면, 이처럼 큰 자금이 실제 거래 가격을 높일 것 같지만, GMX의 메커니즘은 0 슬리피지이므로 여전히 오라클의 가격 제공에 따라 포지션을 열 수 있습니다. 그러나 이 거래 규모는 다른 거래소의 AVAX 가격을 높일 것이며, 만약 20% 상승하면 오라클은 최신 가격을 GMX에 피드백하게 되고, 이때 AVAX가 20% 상승한 가격으로 포지션을 청산하고, 얻은 AVAX를 다른 거래소에서 판매할 수 있습니다.
c) 현금화: 이때 공격자는 포지션을 청산하여 수익을 얻고, 공격자가 얻은 AVAX는 GLP 보유자가 손실을 입은 AVAX입니다.
오라클 오류를 이용한 담보 대출 현금화
이러한 공격은 실행하기 매우 복잡하지만, 그 패턴은 유사합니다. 즉, 가격 제공 시스템이 일시적으로 가격을 조작하여 프로토콜의 내부 회계를 왜곡합니다. 그런 다음 자금을 유리한 금리로 예치하고, 오라클을 정상 값으로 재설정한 후 즉시 다른 통화 또는 동일한 통화로 인출합니다.
사례 3: ANKR
2022년 12월 Bsc 체인의 대출 프로토콜 Helio가 공격을 받았습니다.
성공 요소: 오라클 가격 제공이 지연됨
공격 과정:
a) 오라클 오류: Bsc 체인의 스테이킹 프로젝트 Ankr가 해커에 의해 계약 취약점을 직접 이용당해 10조 개의 aBNBc를 무한정 발행하여 aBNBc 가격이 거의 0에 가까워졌습니다. 대출 프로토콜 Helio의 오라클 가격 제공은 6시간 평균 가중치 설정을 사용합니다.
b) 포지션 구축: 공격자는 10개의 BNB로 Ankr의 초과 발행된 18만 개의 aBNBc를 구매한 후, aBNBc를 Hello의 hBNB로 교환했습니다.
c) 담보 대출: 공격자는 hBNB를 담보로 Helio에서 대출을 진행하여 1644만 개의 스테이블코인 HAY를 대출받았습니다.
d) 현금화: 공격자는 스테이블코인 HAY를 BNB 및 USDC 등 약 1500만 달러 상당의 자산으로 교환하여 인출했습니다.
사례 4: XVS
2022년 5월 Bsc 체인의 대출 프로토콜 Venus가 공격을 받았습니다.
성공 요소: 오라클 가격 제공이 지연됨
공격 과정:
a) 오라클 오류: LUNA의 증발 붕괴 시, Chainlink의 LUNA 가격 피드백이 가격 하한에 도달하여 0.107달러 가격으로 중단되었습니다. 그러나 Bsc 체인 상의 대출 프로토콜 Venus의 LUNA 시장은 계속 운영되고 있었으며, 가격 제공은 Chainlink에서 제공되었습니다. LUNA 가격이 약 0.01달러일 때 팀이 프로토콜을 중단했습니다.
b) 포지션 구축: 차익 거래자는 2차 시장에서 대량으로 증발된 LUNA를 가져와 Bsc 체인으로 이동했습니다.
c) 담보 대출 현금화: 차익 거래자는 Venus에서 LUNA를 담보로 대출을 진행하여 약 1400만 달러 상당의 자산을 대출받아 인출했습니다.
사례 5: BZRX
2020년 5월 Bsc 체인의 대출 프로토콜 bZx가 공격을 받았습니다.
성공 요소: 오라클 가격 출처가 단일
공격 과정:
a) 포지션 구축: 공격자는 먼저 플래시 론을 통해 분산형 계약 플랫폼 DYDX에서 1만 개의 ETH를 대출받고, 그 중 5500개의 ETH를 사용하여 대출 플랫폼 Compound에서 112개의 WBTC를 대출받았습니다.
b) 오라클 오류: bZx는 마진 거래 프로토콜로, 사용자가 한 종류의 코인을 담보로 사용하여 다른 종류의 코인을 레버리지 대출할 수 있습니다. 이 두 코인의 변동 환율은 bZx가 오라클을 통해 가격 제공을 받아야 하며, Uniswap의 가격에 단일 의존합니다. 공격자는 1300개의 ETH를 사용하여 bZx에서 5배 ETH 공매도 포지션을 열었고(즉, 그 중 5637개의 ETH를 WBTC로 교환), Uniswap 풀에서 교환 가능한 WBTC가 제한되어 있어 WBTC 가격이 정상 가격의 3배로 상승했습니다.
c) 현금화: 공격자는 Compound에서 대출받은 112개의 WBTC를 판매하여 총 36만 달러의 수익을 얻었습니다.
오라클 조작은 항상 DeFi 공격의 주요 피해 지역이며, 유사한 사례로는 Vee Finance, Harvest Finance, Value DeFi, Warp Finance 등이 있으며, 여기서는 일일이 열거하지 않겠습니다.
DeFi 레버리지 공매도, 죽음의 나선 초래
약세장에서 유동성이 점차 부족해지고, 비주류 자산의 가격 깊이가 부족하며 변동성이 커집니다. 대규모 공매도는 DeFi 레버리지 청산과 자본 공매도가 함께 촉발할 수 있습니다.
사례 6: LUNA
2022년 5월 Terra 체인의 스테이블코인 UST가 공격을 받았습니다.
성공 요소: 자금이 약세장에서 유동성 위기에 직면
공격 과정:
a) 포지션 구축: 공격자는 LUNA-UST 메커니즘이 장기적으로 유지될 수 없다고 판단했습니다. Terra는 Anchor를 통해 제공하는 높은 수익률이 유입 전략으로, 사용자가 UST를 더 많이 사용하도록 유도합니다. 그러나 20%의 수익률은 지속 가능하지 않습니다. 금리가 20%에서 7-12%로 하락하면 약 900억 달러의 LUNA가 이탈하게 되지만, LUNA/UST의 유동성이 좋지 않아 약 500억 달러의 UST가 탈출 위기에 처할 것으로 예상됩니다. 500억 달러의 UST를 LUNA로 교환하고 시장에서 안전하게 이탈하려면 약 400억 달러의 LUNA 시가총액이 필요하지만, 당시 LUNA의 최대 시가총액은 400억 달러에 불과했습니다. Terra 측은 이미 준비금을 소진했거나 UST의 안정성을 유지할 자금이 없거나, UST의 안정성을 유지하는 것을 포기한 것으로 보입니다. 따라서 지속 가능성을 관찰하는 창은 Curve의 UST 풀에서 불균형이 발생하는지 여부입니다. 따라서 Terra가 Curve에서 1.5억 달러의 유동성을 제거하고 4pool을 준비할 때, 작은 유동성 풀 규모는 UST 판매가 가격에 미치는 영향을 평소보다 더 크게 만듭니다. 공격자는 2.85억 달러의 UST를 매도하기 시작하여 스테이블코인이 탈피하기 시작했습니다.
소문에 따르면 공격자 Alameda는 UST 붕괴 전에 Voyager에서 9자리 수의 BTC를 빌려 BTC를 공매도하여 Terra 준비금을 저지했습니다. 동시에 Genesis Trading은 Alameda에 10억 달러의 UST를 제공하여 UST 탈피 공격에 대한 총알을 제공했습니다.
b) 레버리지 순환 청산:
UST는 알고리즘 스테이블코인으로, 간단한 발행 및 소각 메커니즘을 사용하여 안정성을 유지합니다. UST를 발행하려면 동등한 가치의 LUNA를 소각해야 하며, 사용자는 UST를 소각하여 동등한 가치의 LUNA로 교환할 수 있습니다. UST가 하락함에 따라 가상의 죽음의 나선이 현실이 되어 투자자들은 점점 낮은 가격으로 UST를 소각하여 LUNA를 교환하게 되어 미상환 LUNA 공급이 과도하게 팽창하게 됩니다. 실제로 LUNA의 공급량은 불과 며칠 만에 3.5억 개에서 6.5조 개 이상으로 증가했습니다.
동시에 UST는 Abracadabra에서 대규모 청산을 당했습니다. 지난해 11월, Abracadabra는 UST에 대해 Degenbox 전략을 시작하여 사용자가 UST를 담보로 MIM을 대출받고, 순환 담보를 통해 수익률을 극대화할 수 있었습니다. UST가 1달러를 유지하는 한 이 전략은 기본적으로 무위험이지만, UST가 탈피하면 사용자의 담보 가치가 하락하여 청산 위험에 직면하게 됩니다. UST 가격이 0.97에 도달하면 대량 청산이 발생하고, 0.9 이하로 떨어지면 이 전략을 사용하는 사람의 50% 이상이 청산됩니다. 순환적으로 UST 가격이 낮아질수록 청산되는 사람이 많아집니다.
사례 7: CRV
2022년 11월 이더리움 체인의 분산형 스테이블코인 거래 플랫폼 Curve가 공격을 받았습니다.
성공 요소: 대출 프로토콜에서 긴 꼬리 자산을 담보로 사용할 수 있음
공격 과정:
a) 포지션 구축: Curve의 토큰 잠금 메커니즘과 매수 조작 메커니즘으로 인해 유동성이 심각하게 부족해졌습니다. 공격자는 먼저 거래소에서 CRV의 고배율 공매도를 열었습니다.
b) 대출을 통한 공매도: 공격자는 AAVE에서 총 6360만 USDC를 담보로 하여 9200만 CRV를 대출받아 가격을 하락시켰습니다. CRV 가격이 폭락함에 따라 AAVE의 USDC 담보는 계속해서 더 많은 CRV를 대출받을 수 있게 됩니다.
c) 레버리지 순환 청산: CRV 자체가 대출 프로토콜의 담보이기 때문에 가격의 급격한 하락은 대량의 CRV 청산을 초래하며, 이는 죽음의 나선의 연쇄 반응을 일으킬 수 있습니다. 공격자는 CRV 창립자의 담보 포지션 청산선을 뚫어 그를 청산시키려 했습니다. 비록 나중에 창립자와 커뮤니티의 협력으로 공매도가 실패하고 청산되었지만, 이 작업의 사고 방식은 여전히 배울 가치가 있습니다.
플래시 론 거버넌스 공격
DeFi 공격은 더 이상 가격 조작에 국한되지 않으며, 프로토콜의 방어선이 부족할 경우 거버넌스 메커니즘의 취약점도 공격자가 이용할 수 있습니다.
사례 8: BEAN
2022년 4월 이더리움 체인의 분산형 스테이블코인 Beanstalk이 공격을 받았습니다.
성공 요소: 투표 가능한 자금에 시간 잠금을 추가하지 않음
공격 과정:
a) 제안: 공격자는 공격 전날 악의적인 제안을 게시하고, 제안이 통과되면 Beanstalk 계약에서 자금을 인출할 수 있습니다.
b) 포지션 구축: 공격자는 플래시 론을 통해 3.5억 개의 DAI, 5억 개의 USDC, 1.5억 개의 USDT, 3200만 개의 BEAN 및 1100만 개의 LUSD를 자금으로 확보하여 해당 프로토콜의 거버넌스 토큰을 대량으로 축적했습니다.
c) 투표: 공격자는 BEAN3CRV-f와 BEANLUSD-f를 사용하여 제안에 대한 투표를 진행하여 제안이 통과되도록 했습니다. 공격자는 24830개의 ETH와 3600만 개의 BEAN 스테이블코인을 획득하여 약 8000만 달러의 수익을 올렸습니다.
비록 약세장이지만, DeFi 시장은 여전히 일정한 활력을 유지하고 있습니다. 잠금량을 보면, 암호화 시장이 원주율 자산 ETH가 아닌 달러로 계산된다면, 2022년 Maker DAO, Lido 등 주요 프로젝트의 TVL은 여전히 긍정적인 성장을 이룰 것입니다. 달러로 계산하더라도 DeFi 시장은 여전히 400억 달러 이상의 TVL을 유지하고 있으며, 이는 2021년보다 훨씬 나은 상황입니다. 이는 DeFi 시장이 암호화 시장에서 필수 불가결한 부분이 되었음을 의미합니다.
이번 상승장은 DeFi의 번영의 시작점이며, 이 산업의 부상과 함께 사람들의 관심을 끌게 되면서 공격자들도 이 분야로 주목을 돌리게 되었습니다. 위의 공격에서 알 수 있듯이, DeFi 프로토콜을 공격하는 방법은 단일하지 않으며, 몇 가지 일반적인 공격 벡터가 존재하여 일부 젊은 DeFi 프로젝트가 희생양이 되었습니다. 현재까지 이러한 증가하는 공격으로 인한 손실은 재앙적이지는 않지만, 생태계의 지속적인 발전과 총 잠금량의 증가에 따라 관련 자금이 더 많아지고 공격이 더 수익성이 높아질 것이며, 앞으로 더 복잡한 DeFi 공격을 보게 될 것입니다. 실천이 진리를 알게 합니다.