Resolv 해킹: AWS 키 하나가 2,500만 달러를 발행하고 DeFi를 다시 무너뜨린 방법
2026년 3월 22일, 한 공격자가 10만 달러 상당의 USDC를 가지고 Resolv Labs에 들어와 2,500만 달러 상당의 ETH를 챙겨 나갔습니다. 스마트 컨트랙트에는 오류가 없었습니다. 오라클은 거짓말을 하지 않았습니다. 델타 중립 헤징 전략도 설계된 대로 정확하게 작동했습니다. 대신, 블록체인 외부에 존재하던 단 하나의 AWS 키 관리 서비스 (KMS) 자격 증명 — 즉, 서명 키 — 이 침입자에게 10만 달러 예치금에 대해 담보가 없는 8,000만 USR 토큰을 발행할 수 있는 권한을 부여했습니다. 17분 후, USR의 가격은 1.00달러에서 0.025달러로 97.5% 폭락했으며, 이더리움 전역의 대출 프로토콜들이 그 충격을 고스란히 떠안았습니다.
Resolv 사건이 주목받는 이유는 수법이 기발해서가 아닙니다. 오히려 그렇지 않았기 때문입니다. 온체인 최대 발행량 확인 (max-mint check)의 부재, 클라우드 키 관리의 단일 장애점 (SPOF), 그리고 디페깅된 스테이블코인 가격을 1달러로 책정한 오라클까지 — DeFi 업계는 이러한 실패 사례 를 이미 수차례 겪어왔습니다. 이번 해킹이 드러낸 불편한 진실은 현대 스테이블코인의 공격 표면이 Solidity 코드에서 AWS 콘솔로 조용히 옮겨갔으며, 업계의 보안 모델이 이를 따라잡지 못했다는 점입니다.
17분간의 강도 사건 해부
Resolv의 발행 (minting) 흐름은 2단계의 오프체인 절차로 구성되었습니다. 사용자가 USDC를 예치하기 위해 requestSwap()을 호출하면, 권한을 가진 오프체인 서명자인 SERVICE_ROLE이 요청을 검토하고 발행할 USR 수량을 결정한 뒤 completeSwap()을 호출하여 발행을 완료하는 방식이었습니다. 컨트랙트는 최소 출력값은 강제했지만 최대값은 제한하지 않았습니다. 키 보유자가 서명하는 것은 무엇이든 컨트랙트가 수락했습니다.
이 설계는 5억 달러 이상의 TVL (총 예치 자산)을 보유한 프로토콜의 무결성 전체를 AWS KMS에 저장된 단일 개인 키에 의존하게 만들었습니다. 공격자가 Resolv의 클라우드 환경을 장악하고 KMS에 저장된 서명 자격 증명에 접근하자, 이후의 공격 과정은 거의 기계적이었습니다.
requestSwap()을 통해 약 10만~20만 달러 상당의 USDC를 예치합니다.- 탈취한
SERVICE_ROLE키를 사용하여 8,000만 USR에 대한completeSwap()승인 서명을 생성합니다. - 발행된 USR을 wstUSR (스테이킹된 래핑 버전)로 전환하여 초기 시장 충격을 완화합니다.
- Curve, Uniswap, KyberSwap을 통해 유동성을 고갈시키며 ETH로 변환합니다.
02:38 UTC 무렵, USR은 Curve에서 0.025달러에 거래되며 97.5% 디페깅되었습니다. 공격자의 지갑에는 당시 가치로 약 2,400만 달러에 달하는 11,400 ETH가 남았습니다. 전체 작업은 시작부터 끝까지 단 17분이 걸렸습니다.
아무도 감사하지 않는 오프체인 공격 표면
놀라운 점은 Resolv가 감사를 받았다는 사실입니다. Solidity 코드에는 문제가 없었습니다. 재진입 (Reentrancy) 방지, 정수 오버플로 체크, 로직 검토 모두 완벽했습니다. 익스플로잇은 엔지니어들이 설계한 코드 경로를 그대로 따랐습니다.
취약점은 발행 권한을 제어하는 클라우드 인프라라는 한 단계 더 높은 계층에 존재했습니다. 현대의 DeFi 프로토콜은 순수한 온체인 시스템이 아닙니다. 오프체인 가격 피드, 오프체인 키퍼 (Keeper), 오프체인 거버넌스 멀티시그, 그리고 Resolv의 사례처럼 클라우드 플랫폼에 호스팅된 오프체인 서명 서비스에 의존합니다. 표준 스마트 컨트랙트 감사는 온체인 코드를 검토합니다. AWS IAM 정책, KMS 키 순환 일정, 환경 변수 관리 위생, 또는 침해된 CI/CD 파이프라인의 피해 범위 등은 감사하지 않습니다.
체이널리시스 (Chainalysis)의 사후 분석은 교훈을 직설적으로 전달했습니다. "다음 익스플로잇은 피싱 이메일, 잘못 설정된 IAM 정책, 또는 유출된 환경 변수에서 발생할 수 있습니다." 즉, 현대 스테 이블코인에서 보안을 유지하기 가장 어려운 부분은 본딩 커브나 담보 비율이 아닙니다. 발행 키를 보유한 클라우드 계정입니다.
Resolv의 세 가지 설계 선택이 위험을 키웠습니다.
- 온체인 최대 발행량 제한 부재. 컨트랙트는 오프체인 서명자를 전적으로 신뢰했습니다. "단일 발행량이 총 공급량의 5%를 초과할 수 없다"는 식의 간단한 규칙만 있었어도 피해액을 2,500만 달러가 아닌 수백만 달러 수준으로 억제할 수 있었을 것입니다.
- 레이트 리밋 (Rate Limiting) 부재. 발행 로직은 예치 금액보다 수십 배나 큰 8,000만 토큰이 단 한 번의 호출로 발행되었다는 사실을 감지하지 못했습니다.
- 다자간 승인 부재. 임계값 서명 (Threshold signature)이나 멀티시그가 아닌, 단일
SERVICE_ROLE서명만으로도 어떤 규모의 발행이든 완료하기에 충분했습니다.
이러한 통제 장치 중 단 하나만 있었어도 이번 사건은 대참사가 아닌 해프닝으로 끝났을 것입니다.
전염: 눈 하나 깜짝하지 않은 오라클
Resolv 사건의 후반부에서 피해는 걷잡을 수 없이 커졌습니다. USR과 그 스테이킹 버전인 wstUSR은 Morpho, Euler, Fluid/Instadapp과 같은 여러 대형 대출 시장에서 담보로 채택되어 있었습니다. 스테이블코인이 폭락했을 때, 해당 시장의 오라클은 wstUSR의 가격을 여전히 1달러 근처로 책정 했습니다. 이는 시장 가격이 아닌 내부 상환율을 사용했거나, 가격 피드가 반응하기 전에 급락이 발생했기 때문입니다.
기회주의적인 트레이더들이 이를 즉시 알아차렸습니다. 그들은 공개 시장에서 0.025달러에 저렴한 USR을 매수한 뒤, 오라클이 1달러로 믿고 있는 대출 프로토콜에 담보로 예치하고 USDC, ETH 등 실제 자산을 빌렸습니다. 디페깅을 인지하지 못한 프로토콜들은 이 거래를 수락했습니다. 결과는 다음과 같습니다.
- Fluid/Instadapp은 1,000만 달러 이상의 불량 부채를 떠안았고, 하루 만에 3억 달러 이상의 자금이 유출되는 역대 최악의 상황을 겪었습니다.
- Morpho의 Gauntlet USDC Core 볼트는 Public Allocator를 통해 약 600만 달러의 손실을 입었습니다. (차익거래자들이 잘못 책정된 담보를 바탕으로 대출을 받으면서 이용률이 급증한 풀로 자금을 재배분했기 때문입니다.)
- Euler는 강제 청산 직면에 따른 가격 폭락이 가속화되면서 USR을 디페깅 죽음의 소용돌이 (Death Spiral) 속으로 더 깊이 밀어 넣었습니다.
DeFi는 이런 장면을 이미 본 적이 있습니다. 2022년 UST 붕괴, 2023년 Euler 해킹 이후의 불량 부채 사태, 2024년 Prisma 및 Curve 디페깅 에피소드 등은 모두 같은 교훈을 주었습니다. 담보 자산이 디페깅될 때, 몇 분 안에 반응하지 못하는 대출 시장은 정직한 공급자의 자산을 차익거래자에게 옮겨주는 부의 이전 기계가 됩니다. Protos의 헤드라인은 이를 명확히 짚어냈습니다. "Resolv 해킹은 DeFi가 지난 전염 사태로부터 아무것도 배우지 못했음을 보여준다."
Resolv vs Terra: 서로 다른 실패 과정, 같은 결과
Resolv를 Terra / LUNA와 같은 부류로 묶고 싶은 유혹이 생길 수 있습니다. 둘 다 스테이블코인으로서 치명적인 디페깅을 겪었기 때문입니다. 하지만 실패의 양상은 이보다 더 다를 수 없으며, 이러한 차이는 프로토콜이 향후 스스로를 어떻게 방어해야 하는지에 있어 매우 중요합니다.
테라는 내부 메커니즘의 실패였습니다. 신뢰가 깨지자 UST와 LUNA 사이의 알고리즘 결합(bonding)이 설계된 대로 풀려버렸습니다. 시스템은 스스로의 규칙을 따르며 안에서부터 붕괴되었습니다. 외부 공격자는 없었으며, 인센티브 구조 자체가 버그였습니다.
Resolv는 외부 키 탈취(external key compromise) 사례였습니다. USR을 뒷받침하는 델타 중립 헤징 전략은 사건 내내 정상적으로 작동했습니다. 예치금도 준비되어 있었습니다. 페깅은 민팅 인터페이스를 제외한 모든 곳에서 유지되었으나, 탈취된 권한을 가진 누군가가 아무런 담보 없이 공급량을 무한정 생성해냈습니다. 시스템이 실패한 것이 아니라, 시스템이 무력화된 것입니다.
이러한 차이는 방어 전략(playbook)을 근본적으로 재구성합니다. 알고리즘 실패에 대비해서는 메커니즘을 개선해야 합니다 : 더 나은 본딩 커브(bonding curves), 서킷 브레이커(circuit breakers), 담보 버퍼 등입니다. 반면 키 탈취에 대해서는 메커니즘 개선이 무의미합니다. 엄격한 사용 정책을 가진 하드웨어 보안 모듈(HSM), 여러 당사자가 필요한 임계값 서명(threshold signatures), 단일 키로 우회할 수 없는 온체인 속도 제한 및 민팅 한도(mint caps), 그리고 권한이 있는 역할을 보유한 클라우드 계정에 대한 지속적인 모니터링이 필요합니다.
다음에 변화할 것 — 또는 변화해야 할 것
3,080억 달러($ 308B +) 이상의 스테이블코인 시장은 이제 단일 프로토콜의 실패가 시스템 전체에 영향을 미칠 만큼 커졌습니다. Resolv 사건은 2026년까지 진지한 발행사와 DeFi 통합자들이 구현하게 될 몇 가지 변화를 시사합니다 :
- 온체인 민팅 한도의 표준화. 어떤 오프체인 서명도 단 한 번의 호출로 전체 공급량의 일정 비율 이상을 민팅할 수 없어야 합니다. 서명 주체와 관계없이 말입니다. 이것 하나만으로도 Resolv 공격 피해를 수백만 달러 수준으로 제한할 수 있었을 것입니다.
- 대출 시장의 디페깅 서킷 브레이커. 시장 가격과 상환 가격을 비교하여 두 가격이 임계치 이상으로 벌어지면 자동으로 대출을 중단하는 오라클입니다. Morpho, Euler, Fluid 등은 사건 이후 이 방향으로의 작업을 시사했습니다.
- 클라우드 인프라 감사와 병행하는 스마트 컨트랙트 감사. Halborn 및 Chainalysis와 같은 기업들은 KMS 설정, IAM 검토, 키 로테이션 감사 등으로 범위를 확장하고 있습니다. 이는 특권 오프체인 서명자를 보유한 모든 프로토콜에게 필수적인 요소가 될 것입니다.
- 민팅 권한을 위한 임계값 서명 및 MPC. 무제한 민팅을 제어하는 단일 KMS 키는 초기 DeFi의 유물입니다. 여러 독립적인 당사자가 민팅 작업에 공동 서명해야 하는 MPC 기반 체계는 이제 상용화 준비가 되었으며 공격 비용을 획기적으로 높입니다.
- 담보 보관과 민팅 권한의 분리. 잘 설계된 시스템에서는 완전히 탈취된 서명 키라 할지라도 검증된 온체인 담보를 초과하는 토큰을 생성할 수 없습니다. Resolv의 아키텍처는 이 두 가지를 혼합했습니다. 향후 디자인은 이를 분리해야 합니다.
불편한 진실은 Resolv 해킹이 '블랙 스완(black-swan)' 사건이 아니라는 점입니다. 이는 단일 키 클라우드 서명자 위에 수십억 달러 규모의 금융 원시 데이터(primitives)를 구축한 것의 예견된 결과입니다. 오프체인 오라클이나 서명자를 보유한 모든 수익형 스테이블코인은 동일한 공격 표면을 가지고 있습니다. 누군가는 위의 통제 수단을 추가할 것이고, 누군가는 뼈아픈 경험을 통해 배우게 될 것입니다.
인프라 측면의 교훈
빌더들에게 Resolv 해킹은 보안 담론의 프레임을 바꿉니다. 깔끔한 Solidity 감사는 필요 조건일 뿐 충분 조건이 아닙니다. 현대 DeFi 프로토콜에서 가장 취약한 연결 고리는 특권 권한을 가진 클라우드 계정, CI 파이프라인, 그리고 개발자 기기의 운영 보안입니다. 공격자들은 이곳을 계속 겨냥할 것입니다. 난이도 대비 보상이 가장 크기 때문입니다.
투자자와 통합자들에게도 실사(diligence)의 기준이 바뀝니다. 새로운 스테이블코인을 담보로 수용하기 전에 던져야 할 질문은 "코드가 감사되었는가"나 "담보 비율이 얼마인가"만이 아닙니다. 질문은 다음과 같아야 합니다 : 민팅 키를 누가 보유하고 있는가? 그 키는 어디에 저장되어 있는가? 새로운 공급량을 발행하기 위해 얼마나 많은 독립적 당사자의 서명이 필요한가? 오프체인 서명자가 우회할 수 없는 어떤 온체인 한도가 존재하는가? 프로토콜이 이 질문들에 명확히 답할 수 없다면, 시스템적인 카운터파티가 될 준비가 되지 않은 것입니다.
17 분, 단 하나의 AWS 키, 2,500만 달러($ 25M)의 증발, 그리고 DeFi 전반에 걸친 수억 달러의 부수적 피해. 코드는 설계된 대로 정확히 작동했습니다. 그것이 문제입니다.
BlockEden.xyz는 Sui, Aptos, Ethereum을 포함한 15 개 이상의 체인에서 엔터프라이즈급 블록체인 인프라를 제공하며, 보안이 강화된 고가용성 노드 및 API 서비스에 집중하고 있습니다. 코드 품질만큼 운영 보안이 중요한 스테이블코인이나 DeFi 인프라를 구축하고 있다면, API 마켓플레이스를 방문하여 지속 가능한 기반 위에서 빌딩을 시작해 보세요.
참고 문헌
- Resolv 해킹 : 탈취된 키 하나가 어떻게 2,300만 달러를 찍어냈는가 — Chainalysis
- 해설 : Resolv 해킹 (2026 년 3 월) — Halborn
- Resolv USR 익스플로잇 : 최대 민팅 체크 누락으로 공격자가 10만 달러로 2,500만 달러를 찍어낸 방법 — DEV Community
- DeFi는 이전에도 Resolv의 2,500만 달러 USR 익스플로잇과 유사한 사례를 많이 겪었습니다 — The Defiant
- Resolv 해킹은 DeFi가 지난 전염 사태로부터 아무것도 배우지 못했음을 보여줍니다 — Protos
- 탈취된 키가 어떻게 Resolv의 USR 스테이블코인을 8,000만 달러치 민팅하고 디페깅을 유발했는가 — Blockaid
- Resolv 해킹 : 단일 키 탈취로 발생한 2,500만 달러의 피해 — Sentora Research
- Resolv Labs 스테이블코인 디페깅, 2,500만 달러 익스플로잇 이후 74 % 폭락 — Decrypt
- 17 분 만에 2,500만 달러가 사라진 방법 : Resolv 해킹에 대한 코드 레벨 분석 — CoinsBench