autorenew
Balancer V2 익스플로잇 심층 분석: 1억 2,500만 달러 DeFi 해킹 해부

Balancer V2 익스플로잇 심층 분석: 1억 2,500만 달러 DeFi 해킹 해부

안녕하세요, 암호화폐 애호가 여러분! 분산금융(DeFi)에 깊이 관여해 있든 블록체인 상의 밈 토큰을 처음 접하든, 2025년 11월 3일 생태계를 강타한 대규모 Balancer V2 익스플로잇 소식을 들어보셨을 겁니다. 이번 사건은 평범한 해킹이 아니었습니다—정교하게 계획된 공격으로 Composable Stable Pools 등에서 1억 2,500만 달러 이상을 흡수해 갔습니다. 수년간 암호화폐 뉴스를 다뤄온 경험으로 말하자면, 기술적 솜씨 면에서 특히 눈에 띄는 사건입니다. 기술에 익숙하지 않아도 따라올 수 있도록 단계별로 쉽고 명확하게 풀어보겠습니다.

우선, 이 사안을 조기에 포착하고 상세 분석을 내놓은 BlockSec 팀에 감사드립니다. 이들은 사건 초기 경보를 발령했고, 이후 떠도는 오해를 바로잡는 인사이트를 제공했습니다. 블록체인 보안에 관심 있다면 그들의 작업은 필수 자료입니다.

무슨 일이 일어났나: Balancer V2 익스플로잇 개요

Balancer V2는 특히 여러 버전의 ETH 같은 자산들이 1:1에 가깝게 거래되도록 설계된 "Composable Stable Pools"로 유명한 DeFi 프로토콜입니다. 이 풀들은 유동성 지분을 나타내기 위해 Balancer Pool Tokens(BPT)를 사용합니다. 익스플로잇은 프로토콜이 수학 계산을 처리하는 방식—구체적으로 반올림 불일치로 인한 정밀도 손실—에서 발생한 결함을 노렸습니다. 이로 인해 공격자는 가격을 조작하고 통상적인 경고 신호 없이 자금을 빼낼 수 있었습니다.

핵심 요점은? 공격자는 스왑 중 시스템이 숫자를 반올림하는 방식을 악용했고, 작은 수학적 차이를 대규모 수익으로 전환했습니다. 총 손실은 1억 2,500만 달러를 넘었고, Balancer뿐 아니라 포크된 프로젝트들도 타격을 입었습니다. 또한 프로토콜을 빠르게 중단할 수 없었기 때문에 모방 공격이 이어졌습니다.

Balancer V2의 Composable Stable Pools 배경

해킹을 이해하려면 기본을 잠깐 짚고 넘어가야 합니다. Composable Stable Pools는 스테이블 자산이나 상관관계가 높은 자산을 위해 설계되어 슬리피지(큰 거래 시 발생하는 불리한 가격 변동)를 최소화합니다. 이 모델은 Curve의 StableSwap 모델에서 아이디어를 차용해 풀의 가상 총가치 같은 불변량인 D라는 개념을 사용합니다.

BPT 가격은 대략 다음과 같이 계산됩니다:

BPT 가격 근사 공식

공격자가 당장 자금을 빼내지 않으면서 D를 작아 보이게 만들 수 있으면, BPT가 더 저렴해 보이고 탈출(캐시아웃)에 유리한 상황이 만들어집니다.

스왑은 Vault의 batchSwap() 함수를 통해 발생하며 다중 홉 트레이드를 지원합니다. 모드는 GIVEN_IN(입력량을 정하면 출력량이 계산됨)과 GIVEN_OUT(출력량을 정하면 입력량이 계산됨)의 두 가지가 있습니다. 수학적으로는 불변량 D를 만족시키기 위해 다항식 문제를 풀어야 합니다.

GIVEN_OUT 스왑의 실행 경로 다이어그램

서로 다른 소수점 단위를 가진 토큰 간의 공정성을 유지하려고, Balancer는 모든 값을 공통 정밀도로 업스케일한 뒤 연산을 수행하고 다시 다운스케일합니다. 업스케일은 내림(round down)을 사용하고, 다운스케일은 문맥에 따라 올림 또는 내림이 될 수 있습니다.

업스케일 연산 공식 다운스케일 연산 공식들

문제는? 반올림 방향의 불일치가 미세한 손실을 만들어내고, 이를 교묘히 이용하면 누적 효과로 큰 손해를 초래할 수 있다는 점입니다.

취약점: 반올림 불일치로 인한 정밀도 손실

핵심적으로, GIVEN_OUT 스왑의 스왑 함수는 업스케일 과정에서 금액을 잘못 내림 처리합니다. 이로 인해 필요한 입력량이 과소평가되어 공격자가 저렴하게 스왑을 수행하고 불변량 D를 축소시킬 수 있었습니다. 결과적으로 BPT 가격이 낮아져 착취 가능성이 생겼습니다.

swapGivenOut에서 취약한 업스케일링을 보여주는 코드 스니펫

이것은 DeFi의 황금률을 깨뜨립니다: 반올림은 항상 프로토콜에 유리하게 작동해야지, 사용자를 이롭게 해서는 안 됩니다.

공격이 전개된 방식

공격자들은 매우 영리했습니다—눈에 띄지 않게 두 단계로 공격을 분할했습니다. 1단계: 수익을 즉시 취하지 않고 하나의 트랜잭션에서 풀을 조작. 2단계: 이후에 이익을 실현.

1단계에서는 오프체인 계산과 온체인 헬퍼 컨트랙트를 사용해 파라미터를 미세 조정했습니다. 그들은 정밀도 손실을 극대화하기 위한 "trickAmt"를 계산했습니다:

TrickAmt 계산 공식

그 다음 batch swap에서:

  • 1단계: BPT를 자산으로 스왑하여 한 토큰의 잔액을 반올림 경계에 가깝게 만듭니다.

  • 2단계: 정교하게 계산된 양으로 자산 간 스왑을 수행하여 정밀도 손실을 유발하고 D를 축소시킵니다.

익스플로잇에서의 델타 x와 델타 y 계산
  • 3단계: 축소된 가격으로 다시 BPT로 스왑해 차액을 챙깁니다.

이들은 시뮬레이션에서 이 과정을 수천 번 반복해 효과를 증폭시켰습니다.

영향 및 손실

피해는 광범위했습니다. 공격과 손실을 정리한 표는 다음과 같습니다:

체인별 공격과 해당 손실 표

총 1억 2,500만 달러 이상이 사라졌고, 주로 Arbitrum 같은 체인에 있는 wstETH/rETH/cbETH 같은 풀에서 피해가 컸습니다.

교훈과 밈 토큰과의 연관성

이번 익스플로잇은 Balancer처럼 이미 검증된 프로토콜도 수학적 세부사항에서 숨겨진 결함을 가질 수 있다는 사실을 상기시켜 줍니다. 밈 토큰 제작자와 트레이더에게도 중요한 경고입니다: 많은 밈 프로젝트가 안정적인 유동성을 위해 포크된 DeFi 도구와 비슷한 설정을 사용합니다. 만약 당신이 좋아하는 도그 테마 코인이 이런 유사한 풀에 묶여 있다면, 이와 같은 취약점 하나로 가치가 하룻밤 사이에 증발할 수 있습니다.

핵심 팁:

  • 코드에서 항상 프로토콜에 이득이 되는 반올림 규칙을 우선시하세요.

  • 고정밀 수학과 철저한 검증을 사용하세요.

  • 실제로 작동하는 비상 정지 메커니즘을 갖추세요.

  • BlockSec Phalcon 같은 도구로 위협을 모니터링하세요.

빌드하거나 밈 토큰에 투자하고 있다면 정보를 꾸준히 업데이트하세요—이런 사고는 생태계 전반에 걸쳐 유동성과 신뢰에 파급 효과를 냅니다.

여러분 생각은 어떻습니까? 과거에 DeFi 익스플로잇을 당해 본 적이 있나요? 댓글로 의견을 남겨 주세요. 더 많은 블록체인 기술과 밈 관련 소식은 meme-insider.com에서 확인하세요. 안전하게 다니시길 바랍니다!

추천 기사