Saltearse al contenido

Qué Sucedió

El 28 de enero de 2022, Qubit Finance fue explotado por aproximadamente $80 millones de dólares en criptoactivos. Sigue siendo uno de los mayores hackeos de DeFi en la historia. Ningún fondo ha sido devuelto jamás.


Qubit Finance era un protocolo de préstamos DeFi en Binance Smart Chain, construido por la empresa surcoreana Mound Inc. — el mismo equipo detrás de PancakeBunny, que ya había sido explotado por ~$45M en mayo de 2021. Qubit fue su segundo intento.

El protocolo incluía QBridge — un puente cross-chain que permitía a los usuarios depositar ETH en Ethereum y recibir tokens qXETH equivalentes en BSC, los cuales podían usarse como colateral para pedir préstamos de otros activos.

Qubit Finance fue respaldado explícitamente por Binance y operaba en Binance Smart Chain.


QBridge tenía dos formas de depositar ETH:

  • depositETH() — Función correcta. Requería ETH real (msg.value > 0). Emitía un evento Deposit.
  • deposit() — Diseñada para tokens ERC-20. Llamaba a safeTransferFrom() en un contrato de token. También emitía un evento Deposit — el exacto mismo tipo de evento.

El relayer off-chain que procesaba los eventos del puente no tenía forma de distinguir entre ambos.

Paso 2 — La dirección cero estaba en la lista blanca

Sección titulada «Paso 2 — La dirección cero estaba en la lista blanca»

Para ETH, dado que el ETH nativo no tiene dirección de contrato ERC-20, QBridge usaba la dirección cero (0x0000000000000000000000000000000000000000) como marcador de posición. La dirección cero fue añadida a la lista blanca del contrato.

Paso 3 — Llamar a una EOA tiene éxito silenciosamente

Sección titulada «Paso 3 — Llamar a una EOA tiene éxito silenciosamente»

Cuando se llamaba a deposit() con el resourceID de ETH, el contrato resolvía la dirección del token a la dirección cero y llamaba a safeTransferFrom() sobre ella.

En el EVM, llamar a cualquier función en una dirección sin código de contrato (una EOA) tiene éxito silenciosamente — sin reversión, sin error, sin transferencia real. La dirección cero es una EOA. Así que safeTransferFrom() “tuvo éxito,” nada se movió, y el contrato emitió un evento Deposit idéntico a un depósito legítimo de ETH.

Este comportamiento del EVM había sido documentado en una actualización de seguridad de 0x Protocol en 2019. El equipo de Qubit o no lo sabía, o lo ignoró.

Paso 4 — El relayer acuñó tokens reales en BSC

Sección titulada «Paso 4 — El relayer acuñó tokens reales en BSC»

El relayer vio el evento Deposit, no tenía forma de saber que era falso, y acuñó tokens qXETH en BSC para el atacante — respaldados por nada.

El atacante repitió este proceso repetidamente, acumulando una cantidad masiva de qXETH falsos.

Paso 5 — Colateral falso, préstamos reales

Sección titulada «Paso 5 — Colateral falso, préstamos reales»

Usando qXETH acuñados fraudulentamente como colateral, el atacante pidió prestado aproximadamente $80 millones en activos reales de los pools de préstamo de Qubit Finance en BSC: WETH, BTCB, BNB, MATIC, CAKE, BUSD, y más.

El contrato de préstamos verificó correctamente el valor del colateral — pero el fraude ya había ocurrido a nivel del puente.


Los investigadores encontraron algo que nunca ha sido explicado.

Originalmente, la función deposit() con su resourceID se usaba para puentear WETH — un token ERC-20 real con una dirección de contrato real. Esto funcionaba correctamente.

En algún momento antes del hackeo, se llamó a una función onlyOwner para reasignar el mapeo del resourceID — cambiando la dirección de contrato de WETH por la dirección cero. Este fue el cambio que hizo posible el exploit.

Hechos clave:

  • Solo el propietario del contrato podía hacer este cambio
  • No había timelock — tomó efecto inmediatamente
  • No hubo anuncio público
  • Nunca se ha dado una explicación

Lo que hizo Mound Inc. después:

  • Ofreció al hacker $250,000 para devolver $80M (sin respuesta)
  • Afirmó haber presentado denuncias policiales — nunca proporcionó números de caso
  • Eliminó a las víctimas del Telegram a través del moderador @moleh
  • El CTO eliminó su LinkedIn el 1 de febrero de 2022, cuatro días después del hackeo
  • No contactó a seguridad de Binance ni a los principales exchanges para poner en lista negra la wallet del hacker
  • No respondió a los miembros de la comunidad que se presentaron con información sobre el hacker

Para un registro completo, consulte Respuesta del Equipo y Nueve Preguntas Sin Respuesta.


0xd01ae1a708614948b2b5e0b7ab5be6afa01325c7

ActivoValor Aprox. en USD
WETH~$26.6M
BTCB~$15.3M
BNB~$9.5M
MATIC~$5.6M
CAKE~$8M
BUSD + otros~$15M
Total~$80M