Resolv 프로토콜 해킹 사건에 대한 심층 연구 보고서: 누가 최종적으로 책임을 져야 할까?

이 기사는 기계로 번역되었습니다
원문 표시

핵심 요약

공격 방식: 공격자는 약 10만 달러 상당의 USDC만을 사용하여 USR 발행 기능의 치명적인 취약점(아마도 오라클 조작, 오프체인 서명자 키 유출 또는 발행 요청과 실행 간의 금액 검증 부족 때문일 수 있음)을 악용하여 민트 천만 USR(약 8천만 달러 상당)을 무산 발행한 후 이를 실제 자산으로 신속하게 교환했습니다.

차익거래 경로: 공격자들은 불법적으로 민트 USR을 Curve Finance와 같은 유동성 풀에 일괄적으로 판매하여 USR 가격을 2.5센트까지 떨어뜨렸습니다. 페그 해제로 인한 혼란 속에서 그들은 약 2,500만 달러를 현금화한 후, 차익거래 수익금을 ETH로 전환하여 현금화를 완료했습니다.

손실 분담: Resolv의 2단계 리스크 관리 구조 설계 논리에 따르면, 이번 공격으로 인한 담보 부족분은 우선 RLP 보험 풀 보유자가 부담합니다(프로토콜의 순자산 가치가 하락함에 따라 RLP 가격도 하락함). USR 보유자는 프로토콜이 상환을 중단하기 전까지는 이론적으로 보호받지만, Morpho와 같은 대출 프로토콜에서 USR을 활용한 레버리지 루핑 포지션 디앵커링으로 인해 강제로 청산되어 2차 손실이 발생합니다.

관련 프로토콜: 영향을 받은 주요 DeFi 프로토콜에는 Curve Finance(USR/USDC 유동성 풀이 즉시 붕괴됨), Morpho(USR을 담보로 사용한 레버리지 포지션 청산을 촉발함), Fluid 및 Euler(USR/RLP 유통 포지션 도 있음)가 포함됩니다.

업계 경고: 이번 사건은 델타 중립 스테이블코인의 근본적인 약점을 드러냅니다. 코인 발행 로직과 오프체인 서명/ 오라클 간의 연결 지점이 시스템에서 가장 취약한 공격 표면입니다. "1단위의 통화를 1단위로 발행"하는 자본 효율성 설계는 매우 엄격한 계약 보안 감사 에 기반해야 합니다.

I. RESOLV 및 USR: 이 시스템을 이해하는 것은 이러한 공격을 이해하는 데 필수적입니다.

공격에 대해 논의하기 전에 먼저 USR이 어떻게 작동하는지 이해해야 합니다. 공격자들은 USR 설계에서 가장 독창적이면서도 취약한 부분을 악용하기 때문입니다.

USR의 핵심 메커니즘: 델타 중립 스테이블코인

USR은 은행 예금으로 뒷받침되는 USDT와 같은 스테이블코인도 아니고, DAI와 같은 과잉담보 스테이블코인도 아닙니다. USR은 델타 중립 스테이블코인으로, "ETH 현물 1랏을 보유하고 ETH 무기한 계약 1랏을 숏(Short)"함으로써 순 리스크 중립성을 달성하는 아키텍처입니다[주 1].

논리는 다음과 같습니다.

1달러 상당의 ETH를 민트 1 USR을 발행하면, Resolv 프로토콜은 동시에 무기한 계약 시장에서 동일한 금액의 ETH 공매도(Short) 포지션 개설합니다. ETH 가격이 상승하면 현물 시장은 이익을 얻고 계약 시장은 손실을 봅니다. ETH 가격이 하락하면 계약 시장은 이익을 얻고 현물 시장은 손실을 봅니다. 이 두 가지가 서로 상쇄되어 순자산 가치는 항상 약 1달러로 유지됩니다. 이로써 USR은 ETH 가격과 분리되면서도 미국 달러와의 1:1 페그를 유지합니다[주 2].

이 아키텍처의 장점은 자본 효율성이 매우 높다는 것입니다. 초과담보 없이 1 USR을 민트 데 1달러 상당의 ETH만 필요합니다. 수익은 헤지 포지션 의 펀딩 비율(롱 포지션이 공매도(Short) 에 지불하는 수수료)과 ETH 스테이킹 수익에서 발생하므로 USR 보유자는 연간 약 5~6%의 수익률을 얻을 수 있으며, 스테이킹 버전인 stUSR의 이자율은 이보다 더 높습니다[주 3].

2단계 아키텍처: USR과 RLP 간의 리스크 분리

"프로토콜 운영의 리스크 누가 부담해야 하는가"라는 질문에 답하기 위해 Resolv는 2단계 토큰 구조를 설계했습니다.

USR 등급(최우선순위): 보유자는 안정적인 앵커 보호를 받으며 손실에 대한 책임이 없습니다.

RLP 계층(하위 계층): RLP 보유자는 계약에 대한 "보험 풀" 역할을 하며 시장 리스크, 거래 상대 리스크(지속적으로 마이너스인 자금 조달률 등) 및 잠재적 계약 리스크 감수하는 대가로 더 높은 수익(연간 20-40%)을 얻습니다[주 4].

규칙은 명확합니다. 손실은 먼저 RLP에서 차감된 다음 USR에서 차감됩니다. USR의 담보 비율이 110% 미만으로 떨어지면 USR 보유자를 우선시하기 위해 RLP 상환이 자동으로 동결 됩니다[주 5].

이는 이번 공격으로 인한 손실 분포를 이해하는 데 있어 핵심적인 전제입니다.

공격 핵심: 발행 기능에 정확히 어떤 문제가 있나요?

현재 이 부분이 가장 중요하면서도 정보가 가장 부족한 부분입니다. 온체인 데이터는 한 가지 사실을 확인했습니다. 공격자는 10만 달러 상당의 USDC[1]로 5천만 달러 상당의 USR을 "구매"했습니다. 이 1:500의 민트 비율은 계약의 발행량 검증이 완전히 실패했음을 의미합니다.

암호화폐 펀드 D2 Finance는 세 가지 가능한 공격 경로 가설을 제시했습니다[주 9]:

가설 A: 오라클 조작. USR의 민트 가격은 가격 오라클 에 따라 달라집니다. 공격자가 거래에서 오라클 견적을 일시적으로 낮출 수 있다면(예: 플래시 론(Flash loan) 통해 시장을 붕괴시켜), 계약이 사용자가 예치한 자산의 가치가 더 높다고 믿게 만들 수 있으며, 초과 USR이 민트 수 있습니다[주 6].

가설 B: 오프체인 서명자 침해. Resolv의 민트 프로세스에는 오프체인 서명 검증 단계가 포함됩니다. 사용자의 민트 요청은 실행되기 전에 프로토콜의 백엔드 서비스에 의해 서명되어야 합니다. 이 서명 키가 도난당하면 공격자는 모든 온체인 제한을 우회하여 임의의 금액에 대한 합법적인 민트 지침을 위조할 수 있습니다[2].

가설 C: 요청과 실행 간의 검증 격차. 민트 과정은 "요청 시작"과 "채굴 민트"의 두 단계로 구성됩니다. 계약이 실행 중에 최종 실행 금액이 요청 금액과 일치하는지 엄격하게 검증하지 않으면 공격자는 요청을 시작한 후 실행 전에 매개변수를 조작하여 과잉 민트 달성할 수 있습니다.

이 글을 쓰는 시점 기준으로 Resolv는 아직 완전한 근본 원인 분석(RCA) 결과를 발표하지 않았으므로 위에 언급된 세 가지 가설의 우선순위를 확실하게 확인할 수 없습니다.

공격의 효과를 판단해 보면, 가설 B(서명자 키 유출) 또는 가설 C(검증 로직 누락)가 더 가능성이 높습니다. 오라클 조작은 일반적으로 대량 자본을 필요로 하며, 이처럼 극단적인 가격 차이를 만들어내기는 어렵기 때문입니다. 반면 8천만 USR이 민트 되었을 때 공격자의 실제 투자액은 극히 제한적이었으며, 이는 "계약 검증 우회"의 특징과 더 일치합니다.

공격자들이 돈을 챙기는 방법: 전형적인 DeFi 탈출 시나리오

공격자들이 8천만 USR을 획득한 후 직면한 과제는 부정하게 민트 스테이블코인을 어떻게 실제 가치로 바꿀 것인가였습니다.

D2 Finance는 이를 "교과서적인 DeFi 해킹 현금 인출 경로"라고 부릅니다. 공격자는 여러 유동성 프로토콜에 USR을 일괄적으로 전송했으며 Curve Finance의 USR/USDC 풀(일일 거래량이 360만 달러에 달하는 USR 최대 유동성 풀)에서 대량 매도를 우선시했습니다. [주 10]

Curve의 유동성은 제한적이기 때문에 8천만 USR이 갑자기 유입되자 풀이 완전히 마비되었고, USR 가격은 17분 만에 1달러에서 2.5센트로 폭락했습니다. 공격자들은 USR을 모두 1달러에 매도하려는 것이 아니라, 0.25달러에서 0.50달러 사이의 가격으로 USDC/USDT로 점진적으로 교환한 후, 최종적으로 차익거래 자금을 ETH로 전환하여 현금화를 완료하려는 의도였습니다.

PeckShield는 최종 현금 인출액을 약 2,500만 달러로 추산합니다[주 11]. 극히 낮은 가격에 대량 의 USR이 매도되어 발생한 슬리피지 손실을 고려하면, 이 수치는 공격자의 실제 클레임 률이 약 30%($2,500만 달러 / $8,000만 달러)였음을 의미합니다. 나머지 70%의 "가치"는 유동성 고갈로 인한 막대한 슬리피지 때문에 사라졌습니다.

III. 앵커링 해제 이후: USR, RLP 및 담보 시스템은 어떻게 되었는가?

USR의 담보대출비율이 순식간에 급락했다.

정상적인 상황에서 USR은 ETH+ 헤지 포지션 으로 1:1 비율로 담보됩니다. 그러나 담보 없이 발행된 USR이 8천만 개 증가하면서 전체 USR 공급량 에 상응하는 실물 자산이 1:1 상환에 필요한 수준에 훨씬 못 미치게 되었고, 담보 비율이 100% 아래로 급격히 떨어졌습니다.

이는 RLP 계층의 보호 메커니즘을 직접적으로 작동시켰습니다. 이론적으로 프로토콜은 USR 보유자 보호를 우선시하기 위해 RLP 상환을 동결 하게 됩니다. 그러나 동시에 USR 자체가 고정환율제에서 벗어나 (유통시장 에서 약 0.87달러에 거래됨) 시장가로 매도할 경우 USR 보유자는 손실을 입을 위험에 직면하게 됩니다.

대출 계약의 연쇄적 청산

이는 이번 사건에서 가장 과소평가된 부수적 피해 중 하나입니다.

Resolv의 성장은 주로 전략에 달려 있습니다. 사용자는 Morpho, Fluid, Euler와 같은 대출 프로토콜에 USR을 담보로 예치하고 USDC를 빌린 다음 더 많은 USR을 구매하여 레버리지 순환 포지션(루핑)을 형성하기 위해 이 과정을 반복합니다. 일부 사용자는 레버리지 비율이 최대 10배에 달합니다[3].

USR 가격이 1달러에서 0.87달러 또는 그 이하로 급락했을 때, 이러한 레버리지 포지션 의 담보 가치는 순식간에 13% 이상 증발했습니다. 대출 계약은 담보 비율이 청산선 아래로 떨어지면 자동으로 청산을 강제하기 때문에, 대량 USR이 봇에 의해 청산되어 더 많은 USR이 유통시장 에 쏟아져 나와 가격을 더욱 하락시켰습니다. 이는 전형적인 악순환의 압력입니다[주 7].

Morpho에는 "MEV Capital Resolv USR Vault"라는 전용 공간이 있는데, 이곳에서는 공격 전에 TVL이 상당한 규모에 도달했고 이러한 포지션 부수적 피해의 주요 원인이었습니다[4].

프로토콜의 TVL이 급격히 감소함

Resolv의 TVL은 공격 전에 수억 달러로 증가했습니다(Morpho와 Euler에 대한 레버리지 포지션 으로 인해 6억 5천만 달러 이상으로 정점을 찍었습니다). 프로토콜이 중단된 후 사용자는 USR을 상환할 수 없게 되었고 USR 가격의 앵커링 해제로 인해 TVL 수치 계산이 혼란스러워졌습니다.[5]

IV. 누가 손실을 부담할 것인가? 각 당사자의 리스크 노출 분석.

RLP 보유자는 설계에서 첫 번째 손실 계층입니다. 공격으로 인한 담보 부족(8천만 무담보 USR 민트)은 RLP 순자산의 하락에 직접적으로 반영됩니다. RLP 가격은 계약의 초과담보 부분에 대한 지분증서이며, 계약 전체에 미담보 채무 있을 때 RLP는 먼저 평가절하됩니다[6].

USR 레버리지 포지션 보유자들이 가장 큰 타격을 입었습니다. 이들은 청산(일반적으로 5~10%의 페널티가 수반됨)에 직면할 뿐만 아니라, USR 디앵커링 기간 동안 앵커 가격보다 낮은 가격으로 포지션 매도하여 추가 손실을 피할 수 없게 되었습니다.

Curve LP 유동성 공급자는 비영구적 손실을 입습니다. 공격자가 대량 USR을 판매하면 LP 풀은 "50% USR/50% USDC"(USDC를 판매하고 더 저렴한 USR을 보유)에서 대량 의 USR을 수동적으로 흡수하여 차익거래 손실이 발생합니다[주 8].

일반 USR 보유자의 경우: 설계상 프로토콜이 정상적으로 정지 메커니즘을 작동시키면 USR 보유자는 남은 실물 담보로 1:1 비율로 USR을 상환할 수 있습니다. 그러나 문제는 공격 이후 프로토콜의 모든 기능이 정지되고 상환 기간이 종료되어 실제 판매자는 시장가인 0.87달러로만 거래할 수 있어 13%의 페깅 손실이 발생한다는 것입니다.

V. 긴급 대응: RESOLV 팀의 대응 조치

Resolv 팀의 첫 번째 반응은 공격자가 추가 작업에 접근할 수 없도록 차단하기 위해 민트, 상환 및 전송을 포함한 모든 프로토콜 기능을 즉시 중단하는 것이었습니다[1].

이 글을 쓰는 시점에서 Resolv는 공격 사실을 공식적으로 확인했지만, 아직 완전한 사후 분석 및 공식적인 보상 계획은 발표하지 않았습니다. 이는 DeFi 보안 사고 처리 과정의 일반적인 일정과 일치합니다. 일반적으로 보안팀은 상세한 복구 계획을 발표하기 전에 온체인 포렌식 및 취약점 확인을 완료하는 데 48~72시간이 소요됩니다.

Resolv가 이전에 Immunefi와 협력하여 버그 바운티 프로그램을 구축하고 Hypernative의 사전 예방적 보안 모니터링 시스템을 배포했다는 점에 주목할 가치가 있습니다.[7] 후자는 이론적으로 비정상적인 민트 이벤트의 조기 경고 신호를 포착할 수 있어야 합니다. 이는 조기 경고 시스템이 제때 작동했는지, 아니면 공격 속도가 수동 개입의 범위를 초과했는지에 대한 질문을 제기합니다.

USR이 17분 만에 2.5센트까지 급락한 것을 보면, 이번 공격은 매우 효율적이었고 대응할 수 있는 시간은 극히 제한적이었다는 것을 알 수 있습니다.

VI. 유사 프로토콜에 대한 경고: 델타 중립 스테이블코인의 시스템 리스크

Resolv 사태는 단지 하나의 사례가 아니라, DeFi "합성 달러" 경쟁에서 나타나는 전형적인 실패 사례입니다.

핵심 교훈 1: 오프체인 서명자는 중앙 집중화의 위험 요소입니다. 델타 중립 스테이블코인은 일반적으로 효율적인 민트 달성하기 위해 주문 검증을 위한 오프체인 백엔드 서비스를 도입합니다. 이 "오프체인 구성 요소"는 본질적으로 중앙 집중식 파워 노드입니다. 개인 키가 유출되면 공격자는 프로토콜에서 코인을 발행할 권한을 얻게 됩니다. 이는 Web2의 보안 취약점을 Web3에 도입하는 것입니다[8].

두 번째 핵심 교훈: "1:1 자본 효율성"은 양날의 검이다. 과담보 시스템(예: MakerDAO)은 사소한 계약 결함이 있더라도 초과 담보를 통해 손실을 일부 흡수할 수 있도록 설계되었다. 그러나 델타 중립 시스템은 이러한 담보를 0으로 줄여버린다. 민트 오류가 발생하면 시스템에 비례하는 직접적인 손실이 발생하며, 이를 막을 수 있는 안전장치가 없다.

세 번째 핵심 교훈: 감사 TVL의 급속한 성장을 따라잡을 수 없습니다. Resolv는 Morpho의 레버리지 루프 전략에 힘입어 3개월 만에 TVL이 5천만 달러 미만에서 6억 5천만 달러 이상으로 성장했습니다. 시스템 복잡성과 통합 지점의 급속한 확장은 감사 에 엄청난 압력을 가합니다. DeFi 역사에서도 비슷한 교훈을 볼 수 있습니다. Euler Finance(2023년 3월 1억 9,700만 달러 손실)와 Inverse Finance(2022년 4월 1,560만 달러 손실)는 모두 "합리적인 설계였지만 결함 있는 발행/대출 논리"[9]의 비극입니다.

VII. 핵심 결론

이번 공격은 계약상의 취약점뿐만 아니라 델타 중립 스테이블코인 부문 내의 구조적 모순까지 드러냈습니다.

이 이야기는 USR의 야심찬 설계에서 시작됩니다. 즉, 법정화폐 준비금이나 과잉 담보에 의존하지 않고 파생상품 헤징만으로 1:1 자본 효율성을 달성하는 것이었습니다. 상승장에서는 이 설계가 완벽해 보였습니다. 사용자들은 1달러의 이더리움(ETH)으로 1 USR을 민트, 프로토콜은 펀딩 수수료를 통해 사용자들에게 보상을 제공하여 TVL(총 예치 자산)을 빠르게 수억 달러까지 축적했습니다.

하지만 "1:1 자본 효율성"은 시스템에 담보 완충 장치가 전혀 없다는 것을 의미합니다. 발행 로직에서 취약점이 발견되면(오프체인 서명자 키 유출이나 요청과 실행 간의 검증 부족 등) 공격자는 거의 비용 없이 원하는 만큼의 스테이블코인을 생성할 수 있습니다. 안전장치 역할을 하는 과담보 시스템과는 달리, 이러한 공격은 시스템을 직접적으로 침해합니다.

8천만 개의 USR 토큰을 발행하는 데는 단 10만 달러, 17분, 그리고 최저 가격 2.5센트가 소요되었습니다. 공격자들은 실제 가치로 2천5백만 달러를 인출해 갔고, 프로토콜에는 복구가 필요한 블랙홀만 남았습니다. RLP 보유자, 레버리지 포지션 사용자, 그리고 Curve LP들은 발생한 실제 비용을 상세히 기록한 청구서를 작성해야 할 것입니다.

Curve, Morpho, Fluid, Euler와 같은 주변 프로토콜에 발생한 부수적 피해는 DeFi 세계의 "초고도 조합 가능성"의 또 다른 측면을 드러냅니다. 프로토콜 간 통합은 평상시에는 수익을 증폭시키지만, 위기 시에는 리스크 증폭시킵니다. 궁극적으로 여기서 얻을 수 있는 교훈은 DeFi에서는 효율성을 높이는 모든 기회가 잠재적인 공격 표면을 노출시킨다는 것입니다. 오프체인 서명자의 존재는 프로토콜을 더욱 유연하게 만들지만, 동시에 치명적인 약점, 즉 중앙 집중화를 초래합니다.

메모

[주석 1] 델타 중립(Delta Neutral): 금융 파생상품 용어. 델타는 자산 가격이 기초 자산 가격 변동에 얼마나 민감한지를 나타내는 지표입니다. "델타=0"포지션 기초 자산 가격의 상승 또는 하락에 영향을 받지 않는다는 의미, 즉 완전히 헤지되었다는 것을 의미합니다. Resolv의 경우, 1달러 상당의 ETH를 보유(델타=+1)하면서 동시에 동일한 수량의 ETH 선물을 숏(Short)(델타=-1)하면 순 델타가 0이 되므로 이를 "델타 중립"이라고 합니다.

[주석 2] 무기한 선물: 만기일이 없는 선물 계약의 한 종류로, 암호화폐 시장에서 널리 사용되는 파생 상품입니다. 공매도(Short) 선물 계약을 매도하는 것은 ETH 가격이 하락할 때 이익을 얻고 상승할 때 손실을 보는 것을 의미하며, 따라서 현물 ETH 가격 변동 리스크 헤지하는 수단입니다.

[주석 3] 펀딩 수수료: 무기한 계약 시장의 균형 유지 메커니즘. 롱 포지션 공매도(Short) 포지션 초과하면 롱 포지션 보유자는 주기적으로 공매도(Short) 보유자에게 "펀딩 수수료"를 지불하고, 반대의 경우도 마찬가지입니다. 공매도(Short) 업체인 Resolv는 일반적으로 불장(Bull market) 화폐 시장이 강세일 때 펀딩 수수료를 지속적으로 징수할 수 있으며, 이것이 Resolv의 주요 수익원입니다.

[주석 4] 주니어 트랜치: 금융 계층 구조에서 주니어 트랜치 투자자는 손실을 가장 먼저 입지만("최초 손실자"에 해당), 이익 분배 시 더 높은 리스크 프리미엄 보상을 받습니다. Resolv 프로토콜에서 RLP는 주니어 트랜치에 해당하고, USR은 시니어 트랜치에 해당합니다.

[주 5] 담보비율 110% 발동 조건: 이는 모든 USR 담보 자산의 총 가치가 USR 총 유통량의 1.1배에 도달함을 의미합니다. 이 비율이 임계값 아래로 떨어지면 RLP 상환이 중단되어 남은 자산이 USR 보유자에 의한 상환 우선권을 보장하게 됩니다.

[주석 6] 플래시 론(Flash loan): DeFi 특유의 무담보 대출 도구로, 차입과 상환이 동일한 거래(동일한 블록) 내에서 완료되어야 합니다. 공격자는 이를 이용하여 거래 종료 전에 자금을 상환하는 한, 자금 조달 비용이 거의 발생하지 않는 방식으로 가격 조작을 위해 일시적으로 대량 자금을 확보할 수 있습니다.

[주 7] 데스 스파이럴: 디레버리징 중 발생하는 자기 강화적 붕괴: 자산 가격 하락 → 청산 촉발 → 더 많은 자산 매각 → 가격 추가 하락 → 추가 청산 촉발 등.

[주 8] 비영구적 손실: 자동 마켓메이커(AMM)(AMM) 유동성 공급자가 직면하는 고유한 리스크. 풀 내 두 자산의 가격 비율이 초기 상태에서 벗어나면 LP의 포트폴리오 가치가 두 자산을 직접 보유했을 때의 가치보다 낮아지는데, 이 차이가 비영구적 손실이다.

[주석 9] D2 Finance/CoinTelegraph 분석, D2 Finance 논평 인용: "오라클이 조작되었거나, 오프체인 서명자가 손상되었거나, 요청과 완료 사이의 금액 검증이 누락되었을 수 있습니다." 위와 동일한 출처.

[주석 10] CoinTelegraph는 Curve USR/USDC 풀에서 USR의 24시간 거래량이 360만 달러였으며 UTC 2시 38분에 가격이 2.5센트로 떨어졌다고 보도했습니다.

[주석 11] 코인텔레그래프의 동일한 출처에서 인용한 PeckShield의 추정치: "PeckShield는 공격자가 USR의 페그 해제 기간 동안 공격을 통해 약 2,500만 달러를 빼낼 수 있었다고 추정했습니다."

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
67
즐겨찾기에 추가
19
코멘트