209 읽음
텀랩스 850만불 유출, 코드 아닌 투표권 장악
위키트리
1
Term Labs 볼트 850만달러 유출, 코드 아닌 투표권 장악이 진짜 원인이었다 / AI 생성 일러스트(삽화)

Term Labs가 8월 23일(현지시각) 자사 볼트(vault, 예치금 운용 계약)에서 거버넌스(governance, 프로토콜 의사결정 구조) 공격으로 자금이 빠져나갔다고 공식 확인했다. 보안업체 펙실드(PeckShield)와 서틱(CertiK)은 유출 규모를 약 850만달러(약 118억원, 1달러 1384원 기준)로 추정했다. 공격자는 스마트컨트랙트 코드를 깨뜨린 게 아니라 볼트의 투표권을 장악해 자금을 자신의 주소로 옮기도록 만들었다. Term Labs는 공식 엑스(X, 옛 트위터) 계정을 통해 사건을 인정하고 조사 중이라고 밝혔지만, 이 기사를 작성하는 시점까지 기술적 사후분석(postmortem) 보고서는 나오지 않았다.

펙실드는 공격자가 약 2843 ETH(당시 시세로 약 687만달러)와 USDC 168만개를 빼갔다고 집계했다. 빼낸 USDC는 이후 다이(DAI)로 교환됐는데, 정확한 스와프 규모는 보도마다 엇갈린다. 펙실드가 엑스에 올린 원문 게시글은 스와프 규모를 168만 DAI로 밝혔지만, 다른 보도에서는 160만 DAI로 소개됐다. 서틱은 별도 모니터링으로 총 피해액을 약 850만달러로 추정했고, 공격자 주소를 0xD5183d8BfC65a50863C62aF2538198A8288FFc13로 특정했다. 이 주소는 이후 2843 ETH와 약 160만 DAI를 보유한 상태로 확인됐다.

두 보안업체가 집계한 수치는 서로 맞아떨어진다. 자금이 이더리움과 USDC로 빠져나간 뒤 곧바로 다이로 교환된 흐름은 일관된 패턴을 보였다. 다만 이 850만달러라는 피해액은 아직 외부 보안업체의 추정치일 뿐, Term Labs가 공식적으로 확인한 수치는 아니라는 점도 함께 짚어둘 필요가 있다.
코드가 아니라 투표권이 뚫렸다 / AI 생성 이미지

이번 사고의 핵심은 스마트컨트랙트 결함이 아니라 거버넌스 구조 자체였다는 점이다. Term Finance는 고정금리 대출을 제공하는 이더리움 기반 탈중앙 프로토콜로, 볼트 전략은 이어파이낸스(Yearn) v3 인프라 위에서 작동한다. 반면 프로토콜의 핵심인 레포(Repo, 담보 대차) 구조는 대출자와 차입자의 담보를 개별 락커(locker)에 나눠 보관해 한 곳에 자금이 몰리는 위험을 줄이도록 설계됐다. 이번에 뚫린 곳은 이 핵심 레포 구조가 아니라 투표로 운영되는 볼트 계층이었다.

크립토브리핑(CryptoBriefing) 보도를 인용한 외신에 따르면 공격자는 Term Finance 볼트 4개에 대해 투표권 100%를 확보했다. 이더리움 메타볼트와 USDC 전략 볼트 5개에 대해서도 91%에 가까운 지배력을 얻었다고 전해졌다. 이 정도 압도적 다수(수퍼머저리티)를 확보한 공격자는 그대로 자금을 특정 주소로 보내라는 투표를 통과시켰다. 감사받은 컨트랙트 코드는 그대로였고 깨진 줄 하나 없었다. 문제는 낮은 투표 참여율과, 의사결정 권한이 한쪽으로 쏠리는 것을 막을 안전장치가 부족했다는 데 있었다.

Term Finance는 그동안 법적 공시를 통해 볼트가 이어파이낸스 v3 컨트랙트를 기반으로 하며, 버그나 취약점, 외부 프로토콜 장애, 전략 실패로 손실이 발생할 수 있다고 경고해왔다. 크라켄(Kraken)이 발행한 암호자산 공시자료는 Term Finance를 이더리움 기반 비수탁형(non-custodial) 대출 프로토콜로 소개하며, 개발사는 Terminal 0 Ltd.(Term Labs로 활동)라고 밝혔다. 이 자료는 TERM 거버넌스 통제권이 거버너(Governor) 컨트랙트 배포 이후 이전될 예정이라고 설명했는데, 사건 발생 전 작성된 문서라 이번 공격과 이 거버넌스 개편 계획의 연관성은 확인되지 않았다.

Term Labs는 공식 엑스 계정에 “거버넌스 공격이 텀 볼트에 영향을 준 사실을 인지하고 있다. 추가 조사가 이뤄지는 대로 더 자세한 내용을 공유하겠다”고만 밝혔다. 어느 볼트가 영향을 받았는지, 예치·인출·거버넌스 투표 기능을 중단했는지에 대한 언급은 없었다. 손실 확정, 보상 방안, 사후분석 발표 일정도 전혀 공개되지 않았다.

펙실드는 공격자 주소의 초기 자금이 토네이도 캐시(Tornado Cash)에서 나온 2 ETH였다는 사실도 추적했다. 토네이도 캐시는 송신자와 수신자의 온체인 연결을 끊는 프라이버시 도구다. 단 2 ETH로 시작된 자금이 결국 수백만달러 규모의 볼트를 통제하는 투표권 확보로 이어졌다는 점도 이번 사건의 이례적 대목이다. 다만 이 자금 경로가 공격자의 신원을 밝혀주거나 추가 자금세탁을 입증하는 것은 아니다. 공격 전 자금 출처를 보여주는 단서일 뿐이다.

Term Finance가 자금을 잃은 것은 이번이 처음이 아니다. 지난해 5월 정기 업그레이드 과정에서 오라클(oracle, 외부 시세 데이터를 컨트랙트에 전달하는 장치) 소수점 처리 오류로 약 150만달러 손실이 발생한 적이 있는데, 당시는 악의적 공격이 아닌 내부 오류였고 자금은 결국 회수됐다. 이번 사고는 외부 공격자가 프로토콜의 의사결정 장치를 의도적으로 악용했다는 점에서 성격이 완전히 다르다.

이번 사건은 최근 잇따른 거버넌스·볼트 공격 사례와 맥락을 같이한다는 지적도 나온다. 앞서 서머파이(Summer.fi) 볼트에서도 약 600만달러가 빠져나간 사고가 있었지만, 사용된 컨트랙트가 달라 두 사건의 연결성은 확인되지 않았다. 본DAO(BonkDAO) 거버넌스 공격 사례처럼 낮은 정족수 기준과 표 쏠림, 실행 지연장치 부재가 유사한 위험 요인으로 거론되지만, 이 역시 일반적 사례일 뿐 Term Labs 사건의 확정된 원인은 아니다.

업계에서는 리서플라이(Resupply)가 앞서 다른 디파이 침해 사고 때 트레저리 자금과 보험기금, 거버넌스 승인을 결합한 보상안을 내놓은 사례가 참고 대상으로 거론된다. Term Labs는 아직 이와 비슷한 복구 절차를 제안하지 않았다. 최근에는 XRP 레저와 연결된 별도의 크로스체인 브리지에서도 검증 로직 결함으로 수십만 달러 규모의 XRP가 빠져나가는 사고가 있었던 만큼, 디파이 인프라의 구조적 취약점에 대한 경계가 한층 높아지는 분위기다. 다음 관전 포인트는 Term Labs가 내놓을 조사 결과와, 실제로 피해자 자금이 회수될 수 있을지 여부다.
0 / 300