2025년 6월 26일, 스테이블코인 프로토콜 리서플라이가 메인 이더 네트워크에 배포된 콘트랙트에 대한 공격을 받아 약 천만 달러의 자산이 손실되는 사건이 발생했습니다. 문제의 계약에서 가격 오라클의 구현 문제로 인해 공격자는 기부 공격을 통해 새로 생성된 유동성이 낮은 시장에서 대출 자산(리서플라이가 발행한 스테이블코인인 reUSD)의 상대 가격(즉, 담보 자산 환율에 대한 대출 비율 또는 "환율")을 0으로 조작할 수 있었습니다. 공격자는 기부 공격을 통해 대출 자산(리서플라이가 발행한 reUSD)의 상대 가격(즉, 대출 자산과 담보 자산 간의 환율)을 0으로 조작하여 자산 상태 확인을 우회하고 대량의 reUSD를 대출하여 수익을 얻을 수 있습니다.
블록섹은 웹에서 첫 공개 경고 이후 예비 분석을 제공했고[2, 3], 리서플라이도 공식 발표를 했지만[4] 기술적으로 자세한 내용은 다루지 않았습니다. 한편, 공격 이후 해당 프로젝트와 관련 당사자들 간에 열띤 커뮤니티 논쟁도 있었는데[5], 본 백서에서는 독자들이 참고할 수 있도록 프로토콜 이면의 복잡한 생태적 연결고리를 분석하고 살펴보고자 합니다.
배경
1.1 재공급 프로토콜 정보
< span leaf="" style="">Resupply는 Curve 생태계의 일부인 탈중앙화 스테이블코인 프로토콜[1]이며, 리서플라이가 발행하는 스테이블코인은 담보부 부채 포지션(CDP)으로 뒷받침되는 탈중앙화 스테이블코인으로 외부 플랫폼의 대출 시장에서 이자를 받는 다른 스테이블코인의 지원을 받는 reUSD라고 불립니다-. 외부 플랫폼에서 이자를 받는 다른 스테이블코인에 의해 뒷받침되며, 사용자는 재USD를 대출하기 위해 crvUSD와 frxUSD를 제공하여 자신의 스테이블코인 자산을 재융자할 수 있습니다.

특히, 사용자는 체인에 배포된 재공급 마켓에서 돈을 빌리고 빌릴 수 있으며, 생성 및 동작은 DAO를 통해 관리되고 각 마켓에는 ERC값이 할당됩니다. 4626 볼트를 담보로, 해당 볼트에 해당하는 자산을 기초 자산으로 사용합니다. 사용자는 담보(볼트 또는 볼트의 자산)를 마켓에 예치하여 reUSD를 대출합니다.
예를 들어, 공격은 ERC- 4626 볼트의 담보 자산과 해당 볼트의 기초 자산을 가진 마켓 0x6e90과 볼트 0x0114를 포함한다고 가정해 보겠습니다. 예를 들어 0x0114와 관련된 관련 자산(토큰)은 다음과 같습니다:
담보: cvcrvUSD (즉, Vault 0x0114)
Vault 0x0114:자산: crvUSD(실제로는 커브 라마렌드 컨트롤러에 저장되어 있으며, 공격 이해에는 중요하지 않은 마켓)
담보: wstUSR(즉, Curve LlamaLend 컨트롤러의 담보 자산)
차입금: crvUSD(즉, Curve LlamaLend 컨트롤러의 대출 자산)
공유: 공유할 자산의 대응 자산인 cvcrvUSD(즉, 볼트 자체, ERC-4626 토큰)
즉, 사용자는 다음과 같이 해당 마켓에서 일정량의 cvcrvUSD(또는 crvUSD이지만 실제로는 볼트를 통해 cvcrvUSD로 전환됨)를 담보로 reUSD를 빌려줄 수 있습니다.
< strong>
1.2 사용자가 특정 자산을 빌려줄 자격이 있는지 어떻게 판단하나요?
일반 대출 계약과 마찬가지로 재공급 시장에서도 사용자의 포지션에 대한 자산 상태 확인을 수행합니다( 수정자를 통해) 자산 상태를 확인합니다.

isSolvent는 결국 _를 호출합니다. isSolvent 함수를 호출하고 여기서 LTV(담보가치 대비 대출 비율, 담보가치 대비 대출 비율 또는 차입 비율)를 확인하며, 사용자의 대출과 담보 자산 간의 비율 LTV가 시스템에서 설정한 최대값(_ltv &t;= maxLTV)을 초과하지 않아야 한다는 것을 요구합니다.
위에서 보시다시피, 위의 LTV 계산은 담보 자산 대비 대출 자산의 가격인 환율(코드 내 _exchangeRate)에 따라 달라집니다(환율 비율).
Attacks 분석
2.1 근본 원인 분석
계약 코드의 관점에서 공격의 핵심은 재공급 시장의 가격 오라클 구현에 문제가 있다는 것입니다. 재공급 시장의 구현 문제입니다. 새로 생성된 낮은 유동성 시장의 경우, 공격자는 기부 공격을 통해 환율을 조작하고 상태 확인을 우회하여 대량의 reUSD를 빌려 이 상황을 이용할 수 있습니다.
재공급 시장은 환율을 어떻게 계산하나요?


위 코드를 기반으로 환율 공식은 다음과 같이 구할 수 있습니다.

귀하, getPrices가 반환한 가격이 1e36보다 큰 경우 정수 나누기를 내림하면 _exchangeRate = 0.
가격을 조작하는 방법은?


위 코드에 따르면 다음과 같이 가격 계산을 할 수 있습니다:
< strong>
< span leaf="" style="">여기:

코드 설정으로 인해 precision = 1, DEAD_SHARES = 1000, shares = 1e18, 따라서:

마지막으로, 변수를 대입하면 가격에 대한 다음 공식이 나온다:

보시다시피, 가격 가치 확장의 핵심은 total_assets와 totalSupply 사이의 간격을 늘려 total_assets가 극도로 커지고 totalSupply가 극도로 작아지도록 하는 것입니다. 리서플라이의 실제 프로토콜 구현에서 공식의 총자산은 기초자산(crvUSD)에 따라 달라지고, 총공급은 시장 내 전체 유동성의 점유율(cvcrvUSD)에 따라 달라지는데, 이는 전형적인 기부 공격 시나리오입니다.
2.2 공격 트랜잭션 분석
공격 트랜잭션[4]에 따르면 공격자는 다음과 같은 핵심 단계를 수행한 것으로 분석할 수 있습니다.
1. 라이트닝 대출을 통해 4,000 USDC를 차입하여 3,999 crvUSD로 전환.
2. 0x8970 컨트롤러에 2,000 crvUSD를 기부했습니다.
3. Vault 0x0114에 ~2 crvUSD를 입금하고 1주(cvcrvUSD)를 받습니다.
4. Market 0x6e90에 담보 1단위(즉, Vault 0x0114의 1주)를 추가합니다.
5. Market 0x6e90에서 10,000,000 reUSD를 대출합니다.

왜 이 시점에서 _exchangeRate가 0인가요? 공격자가 이전 단계를 통해 컨트랙트를 다음 상태에 도달하도록 조작했기 때문입니다.

다시 방문하기 환율 계산 방법:
< /p>
이 시점에서 가격 &. gt; 1e36이므로 _exchangeRate = 0.
6. 빌려준 reUSD를 수익으로 환전합니다. 왼쪽;">재공급 이번 공격받은 마켓의 가격 오라클은 Curve [11]에서 제공하는 것과 유사한 템플릿 계약을 구현합니다:
![]()
하지만 Curve는 구현 범위를 다음과 같이 제공합니다.

유감스럽게도, 안타깝게도 재공급 프로토콜은 이러한 적용 가능성을 염두에 두고 구현된 것 같지는 않습니다.
협회 관계 및 커뮤니티 논란
< span leaf="" style="">4.1 커브 에코의 다섯 가지 프로젝트에서 복잡한 관계의 웹
이해를 위해 재공급 이벤트의 더 깊은 의미를 이해하기 위해 먼저 Curve 생태계의 다섯 가지 핵심 프로토콜 간의 복잡한 관계를 살펴보겠습니다.

커브 파이낸스는 전체 생태계의 핵심으로 유동성 풀링, crvUSD 및 LlamaLend 프로토콜을 제공합니다. 리서플라이, 프리즈마, 컨벡스 및 연. 컨벡스는 서약과 거버넌스를 통해 커브의 수익을 최적화하고 프리즈마와 리서플라이에 추가 인센티브를 제공합니다. 프리즈마는 커브의 LP 토큰과 컨벡스의 수익 향상에 의존하며, 리서플라이는 직접 기반합니다. Curve의 LlamaLend는 reUSD를 발행하고 Convex와 Yearn이 공동 개발하여 Curve 풀의 수익률을 최적화할 뿐만 아니라 Convex와의 파트너십을 통해 리서플라이의 개발을 주도하고 있습니다.
커브 금융: Curve의 핵심 플랫폼인 Curve의 유동성 풀(예: crvUSD 풀, LVUSD 풀)과 LVUSD 풀이 핵심 플랫폼입니다. crvUSD 풀)과 LlamaLend 프로토콜은 재USD 발행을 위해 Resupply, LP 토큰을 담보로 하는 Prisma, 수익률 최적화를 위한 Yearn, 투표 거버넌스를 위한 Convex에서 직접 사용합니다.
컨벡스 금융: 컨벡스는 사용자가 더 높은 CRV 보상을 받기 위해 커브 LP 토큰을 약정하는 커브의 수익률 향상 프로토콜이며, 커브의 수익률 향상 프로토콜은 다음과 같습니다. 컨벡스는 커브의 거버넌스 가중치의 거의 50%를 제어하며 프리즈마와 리서플라이에 수익 향상 메커니즘을 제공합니다.
프리즈마 금융: 프리즈마는 커브의 LP 토큰을 활용하여 서약을 하고, 사용자들은 컨벡스( 프리즈마는 커브의 유동성과 컨벡스의 수익 메커니즘에 의존합니다.
Yearn Finance: Yearn은 수익 어그리게이터로, Curve 풀에 있는 LP 토큰의 수익을 최적화하여 사용자에게 높은 보상을 제공합니다(예: 컨벡스의 강화된 수익). Yearn은 컨벡스와 파트너십을 맺고 리서플라이를 개발했으며, 수익 전략에 커브 풀을 광범위하게 활용하고 있습니다.
Resupply: Convex와 Yearn이 공동 개발한 Resupply는 사용자가 crvUSD와 같은 스테이블코인을 대출하여 reUSD를 벌 수 있으며, 자동으로 토큰을 컨벡스에 약정하여 CRUSD를 벌 수 있게 해줍니다. 토큰을 자동으로 담보로 설정하여 컨벡스에서 CRV 및 CVX 보상을 받을 수 있도록 하여 수익 최적화의 폐쇄형 루프를 생성합니다.
4.2 논란과 영향
하지만 리서플라이가 공격을 받았을 때 연결의 복잡성은 곧바로 논란의 대상이 되었습니다. 커브의 창립자 마이클 이고로프는 재빨리 리서플라이와 자신을 분리하며 "단 한 명의 개인도 그 프로젝트에 Curve에서 일하는 사람은 단 한 명도 없습니다... 일반화하지 마세요..."(그 프로젝트에 Curve에서 일하는 사람은 단 한 명도 없습니다...). 일반화하지 마세요." 이러한 명료한 문장은 위기에 직면한 디파이 생태계의 복잡한 협업 관계의 취약성을 역설적으로 반영합니다.

< span leaf="" style="">위와 같이 서로 연결된 프로젝트들은 고도로 결합된 생태계, 즉 어느 한 지점에서 문제가 발생하면 연쇄 반응을 일으킬 수 있는 시스템을 형성합니다. 따라서 리서플라이 공격이 프로토콜 관련성 및 보안에 대한 광범위한 커뮤니티 논의를 촉발한 것은 놀라운 일이 아닙니다[5].
더 생각해 볼 만한 내용
5.1 타임라인
2025년 5월 17일, 공식 주소 0x1f84 경유 재공급 시작 Curve의 원웨이 렌딩 팩토리, 새로운 라마렌드 마켓 출시[6] :
2025년 5월 31일, 새로운 제안 wstUSR-long LlamaLend Market [7]이 리서플라이의 거버넌스 페이지에 게시되었으며, 사용자가 이 라마렌드 마켓을 통해 reUSD를 캐스팅할 수 있도록 설계되었습니다.
이 제안은 2025년 6월 11일에 체인에 에 게시되었습니다[8].
2025년 6월 26일 00:18:47(UTC)에 제안이 통과되었고, Resupply의 공식 주소인 0x0417이 온체인에[9] 새 리서플라이페어(즉, 리서플라이 crvUSD/wstUSR 마켓) 0x6e90, 즉:
공격자는 마켓 0x6e90 업로드 배포 후 약 1.5시간 후인 2025년 6월 26일 01:53:59(UTC)에 공격을 성공적으로 수행했습니다 [[4]. 4]; 그 사이 블록섹은 공격을 감지하고 프로젝트에 연락을 시도했습니다.
2025년 6월 26일 02:26(UTC)에 블록섹은 프로젝트가 실패한 후 공개 경고[2]를 발행했으며 추가 피해를 유발하지 않았음을 확인했습니다.
2025년 6월 26일 02:53:23 (UTC)에 프로젝트 당사자는 계약을 중단했습니다[4].

5.2 비극은 팔콘으로 피할 수 있었다
ResupplyFi의 재난 영화 '심야에' 이 재생되고, 웹에서 가장 먼저 알람이 울리는 것은 블록섹 팔콘[2]:

이것은 사후 대응이 아니라 공격이 발생하는 순간에 울리는 경고음입니다.
메모리 풀 단계에서 트랜잭션을 모니터링함으로써 Phalcon은 공격 트랜잭션이 메모리 풀에 들어오는 순간 비정상적인 패턴을 식별할 수 있습니다. 이 시스템은 200개 이상의 일반적인 공격 특징을 통합한 AI 기반 지능형 분석 엔진을 기반으로 하며, 지난 6개월 동안 0.0001% 미만의 초저 오탐률을 유지하여 매우 정확한 위협 탐지를 가능하게 합니다.
Palcon의 자동화된 공격 차단 메커니즘은 위협이 식별되는 즉시 작동합니다. 이 시스템은 독점적으로 개발된 가스 입찰 전략을 사용하여 보호 거래가 공격 거래를 선점할 수 있도록 보장하는 동시에 프로토콜의 긴급 일시 중지 기능을 자동으로 트리거합니다. 전체 대응 프로세스는 EOA 및 다중 서명 지갑과 같은 여러 권한 제어 모드를 지원하여 다양한 유형의 프로토콜에 유연한 보안 솔루션을 제공합니다.
Resupply가 Phalcon을 마켓 배포에 통합했다면 공격을 완전히 피할 수 있었을 것입니다:
Resupply가 Phalcon을 마켓 배포에 통합했다면 공격을 완전히 피할 수 있었을 것입니다:마켓 0x6e90 배포 후 1.5시간 이내에 Phalcon 시스템은 새로운 마켓 배포를 자동으로 감지하고 구성 파라미터를 지능적으로 분석하여 잠재적인 기부금 공격 위험을 식별합니다. 시스템은 즉시 프로젝트 소유자에게 위험 경고를 전송하여 초기 유동성 보호 수준을 높이거나 관련 매개변수를 조정할 것을 제안합니다. 더 중요한 것은 공격 트랜잭션이 01:53:59(UTC)에 메모리 풀에 진입하면 Phalcon의 AI 알고리즘이 일반적인 기부 공격 패턴을 즉시 식별하고 자동으로 긴급 일시 중지를 트리거하여 가스 입찰을 통해 보호된 트랜잭션이 먼저 실행되도록 함으로써 천만 달러의 손실을 모두 방지할 수 있다는 점입니다.
Resupply 1000만 달러 공격과 그 밖의 수많은 공격은 디파이 세계에서 보안은 선택이 아닌 생존을 위한 필수 요소라는 사실을 알려주었습니다. 다음 공격이 있을 때까지 기다렸다가 후회하지 마세요.