autorenew
Balancer와 포크 프로젝트, $120M 익스플로잇 피해: Invariant Manipulation 공격 해설

Balancer와 포크 프로젝트, $120M 익스플로잇 피해: Invariant Manipulation 공격 해설

암호화폐 애호가 여러분, 안녕하세요! 탈중앙화 금융(DeFi)에 깊게 관여하고 있거나 밈 토큰에 관심을 갖기 시작했다면, 유동성 풀(liquidity pools)이 거래를 어떻게 원활하게 하는지 한 번쯤 들어보셨을 겁니다. 그런데 교묘한 공격자가 시스템을 악용할 방법을 찾으면 무슨 일이 벌어질까요? 바로 Balancer와 그 코드가 포크된 몇몇 프로젝트에서 벌어진 일이 그것입니다. 여러 블록체인에서 총합 약 $120M의 손실을 초래했죠. 보안 전문팀 BlockSec의 Phalcon 경고를 바탕으로 단계별로 정리해봅니다.

초기 경고: 멀티체인 대규모 사건

사건은 X(구 Twitter)에 올라온 Phalcon의 긴급 알림에서 시작됐습니다. 이들은 커스터마이즈 가능한 유동성 풀을 생성하는 인기 있는 AMM 프로토콜인 Balancer와, 그 코드를 포크한 여러 프로젝트가 큰 타격을 입었다고 경고했습니다. 포크(fork)는 본질적으로 원본 코드의 사본 또는 변형으로, 예를 들어 Optimism의 Beethoven X나 Sonic의 BEETS 같은 사례가 있습니다.

피해 규모는 다음과 같습니다:

  • Ethereum: Balancer에서 $70M
  • Base: Balancer에서 $3.9M
  • Polygon: Balancer에서 $117,000
  • Sonic: BEETS에서 $3.4M
  • Arbitrum: Balancer에서 $5.9M
  • Optimism: Beethoven X에서 $283,000

Phalcon은 유사한 코드를 사용하는 프로젝트들에게 경계를 늦추지 말고 시스템을 면밀히 모니터링하라고 촉구했습니다. 원문 경고는 여기에서 확인할 수 있습니다: https://x.com/Phalcon_xyz/status/1985262010347696312.

이런 종류의 공격은 단순한 일시적 사건이 아닙니다 — 특히 유동성 풀에 의존하는 밈 토큰 런치에서는 DeFi 프로토콜의 취약점을 여실히 드러냅니다. 좋아하는 강아지 테마 코인이 Balancer 스타일 풀에 묶여 있다면, 이런 사건이 가격이나 거래에 파급효과를 줄 수 있습니다.

익스플로잇 심층 분석: 어떻게 일어났나

Phalcon의 후속 분석은 이 공격을 "매우 정교한 익스플로잇"이라고 표현했습니다. 근본 원인은 invariant manipulation(불변값 조작)이라고 불리는 기법입니다. 간단히 말하면, Balancer 같은 프로토콜(이는 Curve의 StableSwap 모델에서 영감을 받음)에서 invariant는 풀 전체 가치의 수학적 상수로, 가격 계산과 공정한 거래를 보장하는 데 사용됩니다.

공격자는 이 invariant를 조작해 Balancer Pool Tokens(BPTs, 풀 지분을 나타내는 토큰)의 가격을 인위적으로 하락시켰습니다. 그렇게 해서 BPT를 싸게 사들인 뒤 다시 교환해 차익을 챙긴 것이죠.

예시로 Arbitrum에서 발생한 공격 트랜잭션을 보면, 익스플로잇은 단일 배치 스왑(batch swap) 내에서 세 단계로 아주 교묘하게 진행되었습니다:

  1. 트랩 설치: 공격자는 BPT를 기반 자산으로 스왑하여 한 토큰(cbETH, Coinbase의 staked ETH를 래핑한 버전)의 잔액을 조정해 정확한 '라운딩 경계'(rounding boundary)에 맞췄습니다. 기본적으로 한 토큰의 수량을 9로 설정해 계산상 결함을 유발할 준비를 한 겁니다.

  2. 조작 트리거: 다음으로 공격자는 다른 토큰(wstETH, wrapped staked ETH)과 cbETH 사이를 정밀하게 선택한 수량 8로 스왑했습니다. 프로토콜이 소수점 처리와 내림(rounding down)을 다루는 방식 때문에(블록체인 수학에서 정밀도 문제를 피하기 위해), 계산된 한 토큰의 변화량(Δx)이 실제보다 작게 나왔습니다 — 약 8.918에서 단지 8로 떨어진 것이죠. 이로 인해 산출(Δy)이 과소평가되어 invariant가 줄어들었고, 결과적으로 BPT 가격이 급락했습니다.

  3. 현금화: 마지막으로 공격자는 스왑을 되돌려 자산을 풀에 다시 넣으면서, 가격이 폭락한 상태의 BPT를 집어넣고 수익을 확정했습니다. 풀의 잔액이 정상화되는 동안 공격자의 이익은 고정되었습니다.

Phalcon 분석에 포함된 코드 스니펫은 다음 이미지에서 확인할 수 있습니다:

Code snippet illustrating the Balancer exploit with upscale and downscale functions

기술적으로 핵심은 decimals에 따라 토큰 수량을 조정하는 upscaledownscale 같은 함수에서의 라운딩 오류를 악용한 것입니다. 공격자는 이 작은 불일치를 이용해 수백만 달러로 증폭시켰습니다.

자세한 전체 분해는 Phalcon의 게시물을 참조하세요: https://x.com/Phalcon_xyz/status/1985302779263643915.

이 사건이 밈 토큰과 DeFi에 주는 의미

Balancer는 블루칩 자산만을 위한 것이 아니라, 밈 토큰을 포함한 창의적인 풀을 구성할 때도 널리 사용됩니다. 포크된 코드가 이런 문제를 패치하지 않은 채 배포되면 유동성 제공자(LPs)가 동일한 위험에 노출될 수 있습니다. 밈 코인은 바이럴한 관심과 빠른 론칭이 특징이라 종종 이러한 프로토콜을 통해 거래를 부트스트랩하는데, 익스플로잇 하나로 커뮤니티 자금이 사라지거나 가격이 즉시 폭락할 수 있습니다.

이번 공격은 블록체인에서 철저한 감사(audit)와 실시간 모니터링의 필요성을 다시 한 번 일깨웁니다. Phalcon 같은 도구는 위협을 조기에 감지하는 데 도움을 주지만, DeFi가 진화함에 따라 해커들도 계속 발전합니다. 밈 토큰을 만들거나 투자하고 있다면, 기반 기술 스택을 주의 깊게 살펴보세요.

교훈과 다음 단계

이번 사건을 계기로 Balancer와 영향을 받은 포크들은 패치와 복구 작업을 분주히 진행할 가능성이 큽니다. 더 넓은 커뮤니티를 위해 권장되는 조치들은 다음과 같습니다:

  • Audit Everything: 포크한 코드라도 새롭게 감사를 받아라.
  • Monitor Actively: Phalcon 같은 서비스를 활용해 위협을 탐지하라.
  • Diversify Risks: 유동성을 한 풀에만 집중하지 말고 여러 프로토콜로 분산하라.

항상 조심하시고 기억하세요: 암호화폐에서 지식은 최고의 방패입니다. 이 익스플로잇이나 유사한 사례에 대한 의견이 있다면 아래 댓글로 남겨 주세요!

추천 기사