플로트 프로토콜, 유니스왑V3 플래시론 가격조작에 2만8000달러 잃었다…5일간 다섯 번째

작성일

플로트 프로토콜, 유니스왑V3 가격조작 플래시론 공격에 2만8000달러 손실
슬로우미스트 “하이퍼바이저 계약, TWAP·슬리피지 검증 없어 취약” 지적

플로트프로토콜 관련 이미지 / AI 생성 일러스트(삽화)
플로트프로토콜 관련 이미지 / AI 생성 일러스트(삽화)

디파이(DeFi) 프로토콜 플로트 프로토콜(Float Protocol)이 플래시론(flash loan)을 이용한 공격으로 약 2만8000달러(10.71ETH)를 잃었다. 블록체인 보안업체 슬로우미스트(SlowMist)는 8월 31일(현지시각) 엑스(X)를 통해 공격자가 유니스왑V3(Uniswap V3)의 현물가격을 조작해 하이퍼바이저(Hypervisor) 계약의 유동성공급자(LP) 지분 가치를 부풀렸다고 밝혔다. 슬로우미스트는 문제의 핵심 함수들이 시간가중평균가격(TWAP) 검증이나 오라클 확인, 슬리피지(slippage) 방지 장치를 갖추지 않았다고 지적했다. 공격자는 대규모 스왑으로 풀의 현재가격을 왜곡한 뒤 반복적으로 예치와 인출을 오가며 차익을 챙겼다.

대규모 스왑으로 슬롯0 흔들어…예치·인출 반복

슬로우미스트에 따르면 공격자는 유니스왑V3 풀에서 대규모 스왑을 실행해 풀의 현재가와 틱(tick) 정보를 담은 슬롯0(slot0) 값을 왜곡했다. 이렇게 조작된 슬롯0은 currentTick()과 getTotalAmounts() 함수가 반환하는 값을 뒤틀었고, 하이퍼바이저 계약은 이 잘못된 데이터를 그대로 이용해 LP 지분 가치를 계산했다.

가격이 부풀려진 상태에서 공격자는 반복적으로 예치와 인출을 실행했다. 매 사이클마다 왜곡된 가격으로 지분이 발행되거나 상환됐고, 이 과정을 통해 금고에서 가치가 빠져나갔다. 슬로우미스트는 공격자 주소를 0xaea29218262dc6b0904ca077f6527c49dfd426d9, 공격용 계약을 0xb46655eb5b77de277063a75586d1883e951b6c54로 지목했다. 취약점이 발견된 계약은 0x85cbed523459b7f6f81c11e710df969703a8a70c와 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153 두 곳이며, 문제가 된 유니스왑V3 풀은 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac로 확인됐다. 플래시론은 사전 담보 없이 자산을 빌린 뒤 같은 블록체인 트랜잭션 안에서 원금과 수수료를 갚으면 되는 구조로, 이번 공격에서 대규모 스왑을 실행할 일시적 자금을 대는 역할을 했다.

“다섯째 가격조작 실패”…하이퍼바이저 취약점 계보 / AI 생성 이미지
“다섯째 가격조작 실패”…하이퍼바이저 취약점 계보 / AI 생성 이미지

“다섯째 가격조작 실패”…하이퍼바이저 취약점 계보

온체인 포렌식 연구자 스프렁키(Sprunky)는 이번에 취약점이 드러난 계약들이 감마스트래티지스(Gamma Strategies)에서 유래한 하이퍼바이저 볼트 설계를 따르고 있다고 짚었다. 그는 같은 프레임워크가 2024년 1월에도 유니스왑V3 풀의 현물가격을 기준으로 LP 지분이 발행되는 유사한 방식으로 공격당한 적이 있다고 언급했다. 감마스트래티지스는 그 사건 이후 유니스왑V3 관련 위험을 줄이기 위한 가이드라인을 발표하며 TWAP 검증과 슬리피지 통제 부재 문제를 다뤘지만, 플로트 프로토콜의 계약에는 이런 조치가 반영되지 않았다.

스프렁키는 이번 손실 규모가 2만8000달러로 작지만, 5일 사이 다섯 번째로 확인된 가격 발견(price-discovery) 실패 사례라고 밝혔다. 그는 이런 소규모 탈취가 오라클 안전장치 없는 여러 하이퍼바이저형 금고를 겨냥한 자동화 스캐닝 활동과 일치하는 패턴이라고 설명했다. 유니스왑V3는 자체 TWAP 오라클 기능을 갖추고 있지만, 이를 쓰지 않고 슬롯0에 직접 의존하는 계약 설계가 반복적으로 공격 지점이 되고 있다는 지적이다.

잇따르는 디파이 가격조작 공격…올브릿지·오스티움도 당했다

가격 정보를 왜곡해 자금을 빼내는 방식의 공격은 올해 여러 프로토콜에서 반복됐다. 7월 올브릿지 코어(Allbridge Core)는 공격자가 카미노(Kamino)에서 빌린 112만 달러 규모 USDC 플래시론을 이용한 뒤 가동이 중단됐다. 팩쉴드(PeckShield)는 이 사건으로 약 165만 달러 손실이 발생한 것으로 추산했다. 온체인렌즈(Onchain Lens)에 따르면 공격자는 USDC와 USDT를 빠르게 스왑해 스테이블코인 풀 내부 비율을 바꾼 뒤 왜곡된 비율로 유동성을 인출하고 같은 트랜잭션 안에서 플래시론을 상환했다. 올브릿지는 비정상적인 가격으로 이익을 본 이용자들에게 자금 반환을 요청했고, 솔라나에서 이더리움으로 옮겨진 자산을 추적하는 동안 코어 서비스를 일시 중단했다.

같은 달 오스티움(Ostium)은 약 2375만 달러(약 327억 원, 1달러 1,377원 기준) 규모 USDC 탈취 사건의 원인이 스마트 계약이 아닌 외부(오프체인) 인프라의 훼손이었다고 결론지었다. 공격자가 허위 BTC/USD 가격 정보를 제출해 OLP 유동성 볼트에서 자금이 빠져나가도록 만든 것으로, 자동 모니터링 시스템이 공격을 감지했고 거래는 7월 23일 재개됐다. 오스티움은 이용자 담보는 영향을 받지 않았다고 밝혔다. 앞서 8월 27일(현지시각)에는 베이스(Base) 네트워크 대출 프로토콜 무네웰(Moonwell)에서도 유동성이 얕은 담보 토큰의 가격을 조작해 실물 자산을 빌려 나간 공격으로 약 870만 달러가 빠져나간 바 있어, 담보·가격 데이터를 노린 공격이 디파이 전반에서 반복되는 양상이다.

8월 한 달 디파이 손실 약 2960억원…가격조작이 최대 비중

블록체인 보안업체 서티크(CertiK)는 8월 31일 8월 한 달간 확인된 사고로 약 2억1500만 달러(약 2,960억 원, 1달러 1,377원 기준) 규모 손실이 발생했다고 밝혔다. 이 중 피싱으로 인한 손실은 약 4150만 달러, 디파이 프로토콜 관련 손실은 약 1억4460만 달러였다. 약 1억1070만 달러는 이후 반환되거나 동결된 것으로 분류됐다.

서티크의 유형별 집계를 보면 가격조작이 약 1억3160만 달러(약 1,812억 원)로 가장 큰 비중을 차지했고, 피싱 4150만 달러, 코드 취약점 2060만 달러, 지갑 탈취 1180만 달러, 거버넌스 관련 사고 850만 달러가 뒤를 이었다. 8월 중 단일 사건으로는 8월 30일 발생한 텍토닉(tectonic) 사고가 약 1억2040만 달러(약 1,658억 원)로 가장 큰 규모였다. 플로트 프로토콜 사건은 이 가운데 가격조작 카테고리에 속하며, 하이퍼바이저 구현체에서 반복적으로 확인된 것과 같은 유형의 현물가격 의존 취약점에 해당한다.