
Resolv 해커 공격: 하나의 비밀 키 유출이 어떻게 2300만 달러 상당의 토큰을 불법적으로 발행하게 만들었는가
작성: Chainalysis
번역: AididiaoJP, Foresight News
2026년 3월 22일, Resolv DeFi 프로토콜은 보안 가정이 무력화될 경우 DeFi 생태계가 얼마나 빠르게 위기 상황에 빠질 수 있는지를 보여주는 최신 사례가 되었다. 단 몇 분 만에 공격자가 담보 없이 수천만 개의 Resolv 스테이블코인 USR을 발행했고, 이로 인해 약 2,500만 달러 상당의 자산을 유출했다. 그 결과 USR 가격이 급격히 달러와 연동을 잃었으며, 프로토콜은 즉시 운영을 중단不得不 했다.
표면적으로 보면 이는 또 하나의 스마트 계약 취약점 사건처럼 보인다. 그러나 사실은 그렇지 않다. 관련 코드는 설계된 대로 정확히 작동하고 있었다.
실제로 이 사건은 오프체인 인프라에 대한 과도한 신뢰에서 비롯된 사고였다. DeFi 시스템이 점차 복잡해지고 외부 서비스, 특권 키(privileged key), 클라우드 인프라 등에 더 많이 의존하게 되면서, 공격 표면(attack surface)은 블록체인 자체를 훨씬 넘어선 범위로 확장되었다.
본 기사에서는 이번 사건의 전개 과정과 영향을 정리하고, 동시에 다음과 같은 핵심 주제를 심층적으로 탐구한다: 오프체인 구성 요소가 침해될 경우, 실시간으로 작동하는 체인상 위협 탐지 및 대응 메커니즘이야말로, 통제 가능한 사고와 수백만 달러 규모의 손실을 초래하는 취약점 악용 사이에서 근본적인 차이를 만드는 마지막 방어선이다.
사건 개요
공격자는 먼저 소액의 자금(약 10만~20만 달러 상당의 USDC)을 예치한 후 Resolv의 USR 스테이블코인 발행 시스템과 상호작용했다. 일반적으로 사용자가 USDC를 예치하면, 동일한 가치의 USR을 받게 된다. 그러나 이번 사건에서는 공격자가 자신의 예치금에 비해 터무니없이 많은 약 8,000만 개의 USR 토큰을 발행해냈다.
이와 같은 상황이 발생한 이유는, 발행 승인 과정이 오프체인 서비스에 의존하기 때문이었다. 해당 서비스는 특권 개인키를 사용해 USR 발행 수량을 승인한다. 그러나 관련 스마트 계약 자체는 발행 수량에 대해 어떤 상한선도 설정하지 않았다—단지 서명의 유효성만 검증할 뿐이다.
담보 없이 발행된 USR을 얻은 후, 공격자는 이를 즉시 스테이킹 버전인 wstUSR로 전환했다. 이후 점진적으로 다른 스테이블코인으로 교환한 다음, 최종적으로 ETH로 인출하였다. 공격이 완료되었을 때, 공격자는 약 2,500만 달러 상당의 ETH를 획득했다. 담보 없이 급격히 시장에 쏟아진 막대한 양의 USR은 해당 토큰 가격을 약 80% 하락시켰다.
사건 결과를 명확히 확인한 후, 아래에서는 발행 단계의 설계 결함이 어떻게 이번 공격을 가능하게 했는지를 추가로 분석한다.
Resolv 토큰 발행의 정상 프로세스
이번 공격의 원인을 이해하려면, 우선 Resolv의 발행 메커니즘 설계를 알아야 한다.
사용자가 Resolv의 토큰 USR을 발행하려 할 때, 상호작용 대상은 완전히 자율적인 체인상 메커니즘이 아니라, 두 단계로 구성된 오프체인 프로세스이다:
requestSwap — 사용자가 USDC를 USR Counter 계약에 예치하고, 발행 요청을 제출한다.
completeSwap — SERVICE_ROLE이라는 이름의 특권 개인키로 제어되는 오프체인 서비스가 해당 요청을 검토한 후, 콜백 계약을 통해 최종 USR 발행 수량을 결정한다.
계약 수준에서는 USR 발행의 최소 수량만 규정되어 있으며, 상한선은 전혀 설정되어 있지 않다. 또한 체인상에서 담보 예치량과 USR 발행량 간 비율 검증, 가격 오라클(price oracle), 총 발행 한도, 최대 발행 비율 등 제한 메커니즘도 통합되어 있지 않다. 즉, 해당 키로 서명된 모든 수량은 무조건 실행될 수 있다.
공격 단계 상세 분석
첫 번째 단계: Resolv AWS KMS 환경 접근 확보
공격자는 Resolv의 클라우드 인프라를 침해함으로써, Resolv가 사용하는 AWS 키 관리 서비스(KMS) 환경에 대한 접근 권한을 확보했다. 이 환경에는 프로토콜의 특권 서명 키가 저장되어 있었다. KMS 환경을 장악한 후, 공격자는 Resolv 자체의 발행 키를 이용해 원하는 모든 발행 작업을 승인할 수 있게 되었다.
두 번째 단계: USR 토큰 발행
서명 키를 확보한 후, 공격자는 두 차례의 swap 요청을 제출했는데, 각 요청은 소액의 USDC 예치를 기반으로 하였으며, 총 금액은 약 10만~20만 달러 규모로 여러 거래에 분산되어 있었다. 이후 공격자는 SERVICE_ROLE 키를 사용해 completeSwap 함수를 호출하면서, 실제보다 크게 부풀린 출력 수량을 입력하여, 소량의 USDC만 예치한 상태에서 수천만 개의 USR을 발행하도록 승인받았다.
체인상에서는 다음의 두 가지 주요 거래가 확인되었다:
- 5,000만 USR 발행 거래
- 3,000만 USR 발행 거래
이 두 거래를 합쳐 총 8,000만 개의 USR이 발행되었으며, 이는 약 2,500만 달러 상당의 가치를 지닌다.
세 번째 단계: wstUSR을 통한 유동성 제약 우회
공격자는 이후 USR을 wstUSR로 전환했다. wstUSR은 스테이킹 풀 지분을 나타내는 파생 토큰으로, USR과 고정된 비율로 가치가 연동되지 않는다. USR에서 wstUSR로 자금을 전환함으로써, 공격자는 USR 시장에 직접적인 충격을 주지 않고, 유동성은 낮지만 대체 가능성은 높은 자산 형태로 포지션을 이전시켰다.
네 번째 단계: 현금화 및 탈출
wstUSR을 보유한 상태에서 공격자는 이를 추가로 스테이블코인으로 교환한 후, 다시 ETH로 전환하였다. 그리고 여러 탈중앙화 거래소의 유동성 풀과 크로스체인 브리지를 활용해 자금을 이체함으로써, 인출 금액을 극대화하고 자금 추적 난이도를 높였다.
본 기사 작성 시점 기준, 공격자 주소에는 여전히 다음 자산이 보유되어 있다:
- 약 11,400 ETH (약 2,400만 달러 상당)
- 약 2,000만 wstUSR (탈피(脫錨) 후 가격 기준, 약 130만 달러 상당)
USR 보유자에게 미친 영향
이번 사건은 USR 보유자들에게 직접적이고 심각한 타격을 입혔다.
신규 발행된 담보 없는 8,000만 개의 USR 토큰이 순차적으로 탈중앙화 거래소의 유동성 풀에 유입되었다. 공급량이 급격히 증가함에 따라, USR의 달러 연동 가격은 급속도로 붕괴되었다. 이 토큰은 일시적으로 0.20달러까지 하락하며 80% 폭락했고, 이후 몇 시간 내에 약 0.56달러 수준으로 일부 회복되었다.
사건 발생 직후 Resolv Labs는 추가적인 손실을 방지하기 위해 프로토콜 전체 기능을 일시 중단하고, 침해 사건 조사를 시작했다. 공격자가 계속해서 더 많은 USR을 발행하려 시도하고 있다는 점을 고려할 때, 손실 확대를 막기 위한 신속한 대응의 필요성은 명백하며, 이러한 공격에 대한 빠른 반응 능력의 중요성이 강조된다.
견고한 보안 철학은 ‘취약점은 반드시 발생한다’는 전제 하에 세워져야 한다
Resolv는 기존의 모든 일반적인 보안 조치를 시행했으며, 총 18차례의 보안 감사를 완료했다. 그럼에도 불구하고 이번 해킹 공격은 어느 정도는 단순한 이야기로 요약할 수 있다: 공격자가 키를 탈취했고, 이를 이용해 불법적으로 자산을 발행한 후, 관련 당사자들이 이를 인지하기 전에 자산을 현금화했다.
그러나 더 깊이 들여다보면, 이 사건은 DeFi 프로토콜이 의존하는 오프체인 인프라의 보안 가정과 잠재적 리스크를 그대로 계승한다는 점을 드러낸다. 체인상 스마트 계약은 설계대로 정확히 작동했으나, 시스템 전체의 설계와 침해된 오프체인 인프라는 그에 상응하는 보안 수준을 달성하지 못했다.
취약점 악용이 종종 몇 분 안에 완료되며, 일단 손실이 발생하면 수동 대응을 위한 시간조차 남지 않는 현실에서, 실시간 모니터링 및 자동화된 응답 메커니즘은 이제 선택이 아닌 필수적인 보호 수단이 되었다.
Hexagate 예방 사례 분석
Resolv가 겪은 해킹 공격은 실시간 체인상 모니터링 메커니즘이 탐지하도록 설계된 시나리오를 충분히 보여준다. Chainalysis Hexagate를 도입했더라면, 다음 두 가지 구체적인 탐지 방식이 효과를 발휘했을 것이다:
방안 1: 비정상적인 발행 이벤트 모니터링
Hexagate와 같은 모니터링 시스템을 설정함으로써, completeSwap 함수 호출 행위를 감시하고, 특히 발행된 USR 수량과 예치된 담보 수량 간 심각한 비례 불일치를 식별할 수 있다.
예치된 USDC가 10만 달러인데도 5,000만 USR을 발행하도록 승인한 것은, 정상적인 사용자의 행동 범위를 훨씬 초과하는 비정상적인 비율이다. 따라서 해당 함수 호출 패턴에 대해 경고 규칙을 설정하여, 예를 들어 발행 비율이 정상 값의 1.5배를 초과할 경우 즉시 알림을 트리거하도록 하면, 위의 두 주요 거래를 첫 순간에 식별할 수 있었을 것이다.
Hexagate의 맞춤형 모니터링 메커니즘은 Resolv 발행 로직을 악용하는 비정상적인 행위를 탐지했을 경우, 자동화된 대응을 유발할 수 있었다.
방안 2: GateSigner와 맞춤 기능을 결합해 핵심 계약 이벤트 관리
공격자는 requestSwap와 completeSwap 프로세스를 차례로 실행해야 하며, 각 단계는 모두 체인상 이벤트를 생성한다. Hexagate의 GateSigner 기능과 계약 이벤트 모니터링을 결합하면, 비정상적인 Mint 이벤트를 탐지할 경우 자동으로 계약을 일시 중단하도록 설정할 수 있어, 8,000만 USR 중 어느 것도 공개 시장에 유입되기 전에 이를 차단할 수 있었을 것이다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














