콘텐츠로 이동

무슨 일이 있었나

2022년 1월 28일, Qubit Finance는 약 8천만 달러(USD) 규모의 암호화폐 자산을 탈취당했습니다. 이는 DeFi 역사상 최대 규모의 해킹 사건 중 하나로 남아 있습니다. 자금은 단 한 푼도 반환되지 않았습니다.


Qubit Finance는 Binance Smart Chain 기반의 DeFi 대출 프로토콜로, 한국 기업 **Mound Inc.**가 개발했습니다. 이 팀은 2021년 5월에 이미 약 4,500만 달러 규모의 해킹을 당한 PancakeBunny를 만든 동일한 팀입니다. Qubit은 그들의 두 번째 시도였습니다.

이 프로토콜에는 QBridge라는 크로스체인 브릿지가 포함되어 있었는데, 사용자가 Ethereum에 ETH를 예치하면 BSC에서 이에 상응하는 qXETH 토큰을 받을 수 있었고, 이를 담보로 다른 자산을 빌릴 수 있었습니다.

Qubit Finance는 Binance의 명시적인 지지를 받았으며 Binance Smart Chain에서 운영되었습니다.


1단계 — 두 개의 함수, 하나의 이벤트

섹션 제목: “1단계 — 두 개의 함수, 하나의 이벤트”

QBridge에는 ETH를 예치하는 두 가지 방법이 있었습니다:

  • depositETH() — 올바른 함수. 실제 ETH가 필요했습니다 (msg.value > 0). Deposit 이벤트를 발생시켰습니다.
  • deposit() — ERC-20 토큰용으로 설계된 함수. 토큰 컨트랙트에서 safeTransferFrom()을 호출했습니다. 역시 Deposit 이벤트를 발생시켰는데 — 정확히 동일한 이벤트 유형이었습니다.

브릿지 이벤트를 처리하는 오프체인 릴레이어는 이 두 이벤트를 구별할 방법이 없었습니다.

2단계 — 제로 주소가 화이트리스트에 등록됨

섹션 제목: “2단계 — 제로 주소가 화이트리스트에 등록됨”

네이티브 ETH에는 ERC-20 컨트랙트 주소가 없기 때문에, QBridge는 제로 주소(0x0000000000000000000000000000000000000000)를 플레이스홀더로 사용했습니다. 이 제로 주소가 컨트랙트의 화이트리스트에 추가되었습니다.

3단계 — EOA 호출이 조용히 성공함

섹션 제목: “3단계 — EOA 호출이 조용히 성공함”

deposit()이 ETH의 resourceID로 호출되면, 컨트랙트는 토큰 주소를 제로 주소로 해석하고 그 주소에 대해 safeTransferFrom()을 호출했습니다.

EVM에서는 컨트랙트 코드가 없는 주소(EOA)에 대해 어떤 함수를 호출하든 조용히 성공합니다 — 리버트도, 오류도, 실제 전송도 일어나지 않습니다. 제로 주소는 EOA입니다. 따라서 safeTransferFrom()은 “성공”했고, 아무것도 이동하지 않았으며, 컨트랙트는 정당한 ETH 예치와 동일한 Deposit 이벤트를 발생시켰습니다.

이 EVM 동작은 2019년 0x Protocol 보안 업데이트에서 이미 문서화되어 있었습니다. Qubit 팀은 이를 몰랐거나 무시했습니다.

4단계 — 릴레이어가 BSC에서 실제 토큰을 발행함

섹션 제목: “4단계 — 릴레이어가 BSC에서 실제 토큰을 발행함”

릴레이어는 Deposit 이벤트를 감지했지만, 그것이 위조라는 것을 알 방법이 없었고, 공격자에게 BSC에서 qXETH 토큰을 발행해 주었습니다 — 아무런 실제 자산의 뒷받침 없이.

공격자는 이 과정을 반복하여 막대한 양의 위조 qXETH를 축적했습니다.

부정하게 발행된 qXETH를 담보로 사용하여, 공격자는 Qubit Finance의 BSC 대출 풀에서 약 8천만 달러 상당의 실제 자산을 빌렸습니다: WETH, BTCB, BNB, MATIC, CAKE, BUSD 등.

대출 컨트랙트는 담보 가치를 정확하게 확인했지만 — 사기는 이미 브릿지 단계에서 발생한 뒤였습니다.


조사관들은 한 번도 설명된 적 없는 사실을 발견했습니다.

원래 deposit() 함수와 그 resourceIDWETH — 실제 컨트랙트 주소를 가진 실제 ERC-20 토큰 — 을 브릿지하는 데 사용되었습니다. 이는 정상적으로 작동했습니다.

해킹 이전 어느 시점에, owner 전용 함수가 호출되어 resourceID 매핑이 변경되었습니다 — WETH의 컨트랙트 주소가 제로 주소로 교체된 것입니다. 바로 이 변경이 익스플로잇을 가능하게 만들었습니다.

핵심 사실:

  • 컨트랙트 소유자만이 이 변경을 할 수 있었음
  • 타임락이 없었음 — 변경이 즉시 적용됨
  • 공개 발표가 없었음
  • 어떠한 설명도 제공된 적 없음

해킹 이후 Mound Inc.가 취한 조치:

  • 해커에게 25만 달러를 제안하여 8천만 달러 반환을 요청 (응답 없음)
  • 경찰에 신고했다고 주장 — 사건 번호를 제공한 적 없음
  • @moleh 운영자를 통해 피해자들을 Telegram에서 제거
  • CTO가 LinkedIn을 삭제 — 해킹 4일 후인 2022년 2월 1일
  • Binance 보안팀에 연락하지 않았고, 해커 지갑을 블랙리스트하기 위해 주요 거래소에도 연락하지 않음
  • 해커에 대한 정보를 제공한 커뮤니티 멤버들에게 응답하지 않음

전체 기록은 팀 대응9가지 미답변 질문을 참조하세요.


0xd01ae1a708614948b2b5e0b7ab5be6afa01325c7

자산대략적 USD 가치
WETH~2,660만 달러
BTCB~1,530만 달러
BNB~950만 달러
MATIC~560만 달러
CAKE~800만 달러
BUSD + 기타~1,500만 달러
합계~8,000만 달러