Análisis preliminar del evento de ataque de Balancer V2

El 3 de noviembre, el protocolo Balancer V2 y sus proyectos fork fueron atacados en múltiples cadenas, lo que provocó pérdidas severas de más de $120M. BlockSec emitió una alerta inicial [1] y proporcionó una conclusión de análisis preliminar [2]. Este es un evento de ataque altamente complejo. Nuestro análisis preliminar indica que la causa raíz radica en que el atacante manipuló el invariante, distorsionando así el cálculo del precio del BPT (Balancer Pool Token ) – que es el token LP del pool – lo que le permitió obtener ganancias a través de una operación de batchSwap en un pool estable.

Conocimiento de fondo

1. Escalado (scaling) y redondeo (rounding)

Para unificar los decimales de diferentes tokens, el contrato de Balancer hará lo siguiente:

  • upscale: aumentar el saldo y la cantidad a una precisión interna unificada antes de realizar el cálculo;
  • downscale: reducir el resultado a la precisión nativa y realizar un redondeo dirigido (por ejemplo, el extremo de entrada suele redondear hacia arriba, asegurando que el fondo no pierda; el camino de salida a menudo tiene un truncamiento hacia abajo).

Conclusión: En una misma transacción, la dirección de redondeo utilizada en diferentes etapas no es simétrica, lo que puede generar desviaciones sistemáticas pequeñas cuando se ejecuta repetidamente en pasos muy pequeños.

2. D y el precio de BPT

Los afectados por este ataque son el protocolo Composable Stable Pool [3] de Balancer V2 y el protocolo fork. El Stable Pool está diseñado para aquellos activos que se espera que mantengan una relación de intercambio cercana a 1:1 (o que se intercambien a una tasa conocida), permitiendo grandes intercambios sin causar un impacto significativo en los precios, lo que mejora considerablemente la eficiencia en el uso de fondos entre activos similares o relacionados.

  • Este pool utiliza Stable Math (modelo StableSwap basado en Curve), donde la invariante D representa el “valor total virtual” del pool.
  • BPT (Pool del Token LP ) precio aproximado es:

De la fórmula anterior se puede ver que si se puede hacer que D disminuya en el balance (aunque los fondos no se hayan perdido realmente), BPT puede hacerse más barato. BTP representa la participación del Pool, que se utiliza para calcular cuánto Reserve se puede obtener al retirar liquidez, por lo tanto, si un atacante puede obtener más BPT, al final podrá obtener ganancias al retirar liquidez.

Análisis de ataques

Tomando como ejemplo una transacción de ataque en Arbitrum, la operación batchSwap se puede dividir en tres etapas:

Primera fase: El atacante intercambia BPT por activos subyacentes para ajustar con precisión el saldo de uno de los tokens (cbETH) hasta el punto crítico del límite de redondeo (cantidad = 9). Este paso crea las condiciones para la pérdida de precisión en la siguiente fase.

Fase dos: El atacante utiliza una cantidad cuidadosamente construida (= 8) para intercambiar entre un activo subyacente diferente (wstETH) y cbETH. Debido a que se realizó un redondeo hacia abajo al escalar la cantidad de tokens, el Δx calculado es ligeramente menor (de 8.918 a 8), lo que lleva a una subestimación de Δy y hace que la invariante D (que proviene del modelo StableSwap de Curve) se reduzca. Dado que el precio de BPT = D / totalSupply, el precio de BPT se ve artificialmente reducido.

Fase tres: El atacante canjea los activos subyacentes de vuelta a BP, mientras restablece el equilibrio en el fondo, aprovechando el precio reducido de BP para obtener ganancias – obteniendo más tokens BP.

Finalmente, el atacante utiliza otra transacción de ganancias para retirar liquidez, aprovechando el BPT obtenido para obtener otros activos subyacentes en el Pool, (cbETH y wstETH), para obtener ganancias.

Transacción de ataque:

Operación rentable:

Referencia:

[1]

[2]

[3]

BPT-5%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opera con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)