Cómo el comentario de un desarrollador se convirtió en una catástrofe de $128M: El exploit de redondeo de Balancer
Enterrado en el código del contrato inteligente de Balancer, justo encima de la función que acabaría provocando una hemorragia de 128 millones de dólares, se encontraba un comentario de un desarrollador: "se espera que el impacto de este redondeo sea mínimo". Estaban equivocados — por nueve cifras.
El 3 de noviembre de 2025, un atacante explotó un error de redondeo microscópico en los Composable Stable Pools de Balancer V2, drenando fondos en nueve redes blockchain en menos de 30 minutos. No fue un ataque de reentrada llamativo ni una clave privada comprometida. Fue aritmética — el tipo de error que se esconde a plena vista, supera múltiples auditorías y espera pacientemente a que alguien lo suficientemente inteligente lo convierta en un arma.
La anatomía de un exploit de redondeo
La función vulnerable
La función batchSwap de Balancer V2 permite a los usuarios ejecutar múltiples intercambios de tokens en una sola transacción. Internamente, una función llamada _upscaleArray normaliza los balances de los tokens a una precisión común antes de realizar los cálculos. Esta función utiliza factores de escala (scaling factors) — multiplicadores que tienen en cuenta los decimales de cada token y su tasa interna.
¿El problema? Cuando los factores de escala son valores no enteros (lo que ocurre siempre que se incorporan tasas de tokens), la aritmética de enteros de Solidity redondea hacia abajo. En la mayoría de los escenarios, la pérdida de precisión equivale a unos pocos wei — fracciones de centavo. Pero los Composable Stable Pools, que contienen activos estrechamente correlacionados como los derivados de staking líquido, amplifican incluso los pequeños errores de redondeo a través de su cálculo del invariante StableSwap.
El ataque en tres etapas
La estrategia del atacante fue elegante en su simplicidad:
-
Empujar hasta el límite. Intercambiar grandes cantidades de BPT (Balancer Pool Tokens) por tokens subyacentes, llevando el balance interno de un token al rango crítico de 8–9 wei — el umbral exacto donde la división de enteros de Solidity produce la máxima pérdida de precisión.
-
Agravar el error. Ejecutar micro-intercambios rápidos que involucren al token posicionado en el límite. Cada intercambio activa
_upscaleArray, que redondea hacia abajo durante las operaciones EXACT_OUT. El redondeo provoca que el invarianteDdel pool se subestime sistemáticamente, suprimiendo artificialmente el precio del BPT. -
Extraer la diferencia. Mintear o comprar BPT al precio suprimido, y luego canjearlo inmediatamente por activos subyacentes a su valor real. Repetir.
El atacante desplegó contratos inteligentes cuyos constructores ejecutaron más de 65 micro-intercambios, convirtiendo la pérdida de precisión en una manipulación catastrófica del invariante. Cada error de redondeo individual era insignificante. Juntos, desangraron los pools.
128 millones de dólares en nueve cadenas en 30 minutos
El exploit ocurrió simultáneamente en Ethereum, Base, Arbitrum, Avalanche, Optimism, Gnosis, Polygon, Berachain y Sonic. Ethereum sufrió las mayores pérdidas con aproximadamente 99 millones de dólares, mientras que las cadenas más pequeñas perdieron entre 1 y 12 millones de dólares cada una.
El sistema de monitoreo automatizado de Hypernative detectó el ataque en cuestión de minutos, pero para entonces el daño se estaba propagando en cascada por las redes. La naturaleza multicadena del exploit — el mismo código vulnerable desplegado en cada red — convirtió lo que podría haber sido un incidente en una sola cadena en una crisis para todo el sector DeFi.
Respuestas de emergencia a nivel de cadena
Las respuestas variaron drásticamente según la red, revelando el espectro de las filosofías de descentralización:
-
Berachain detuvo toda su red y ejecutó un hard fork de emergencia, revirtiendo el exploit para recuperar 12.8 millones de dólares en depósitos de usuarios. La decisión fue controvertida: la cadena apenas tenía unos meses de vida y tuvo que elegir entre la protección del usuario y la inmutabilidad.
-
Gnosis Chain adoptó inicialmente un enfoque más moderado, restringiendo la actividad del puente para evitar el movimiento de fondos entre cadenas. Monerium congeló 1.3 millones de EURe en la bóveda afectada. Luego, el 22 de diciembre, Gnosis ejecutó un hard fork para recuperar 9.4 millones de dólares, reescribiendo el estado de la cadena para mover forzosamente los fondos de la billetera del atacante a una dirección de recuperación controlada por la DAO.
-
StakeWise DAO aprovechó el marco Safe Harbor de Balancer (BIP-726, establecido en 2024) para autorizar legalmente operaciones de recuperación de "guante blanco" (whitehat), recuperando aproximadamente 19 millones de dólares en osETH y 1.7 millones en osGNO.
En total, se recuperaron o congelaron aproximadamente 43 millones de dólares — alrededor de un tercio de las pérdidas totales.
La paradoja de las auditorías
Quizás el aspecto más inquietante del exploit de Balancer es que superó múltiples auditorías de seguridad profesionales.
Trail of Bits auditó el código de Balancer V2 e identificó preocupaciones relacionadas con el redondeo. En su revisión de 2021 de los Linear Pools, señalaron el comportamiento del redondeo, pero no pudieron determinar definitivamente si era explotable. Recomendaron pruebas exhaustivas de fuzzing para verificar que las "direcciones de redondeo de todas las operaciones aritméticas coincidieran con las expectativas".
Cuando Trail of Bits revisó más tarde los Composable Stable Pools en septiembre de 2022, la biblioteca Stable Math — el código exacto que contenía la vulnerabilidad — quedó explícitamente fuera del alcance de la auditoría.
El panorama de amenazas de la industria había cambiado. En 2021, los problemas de redondeo y aritmética no se consideraban una categoría de riesgo significativa. Para 2025, los errores de redondeo se habían convertido en la segunda vulnerabilidad más explotada en DeFi, solo por detrás del robo de claves privadas. Los estándares de auditoría no habían seguido el ritmo.
Certora, que realizó la verificación formal en Balancer V3, reconoció más tarde que sus propiedades de verificación de la V2 "no restringían la relación entre los intercambios individuales o el comportamiento de redondeo". Las propiedades garantizaban la solvencia a un alto nivel, pero pasaron por alto escenarios donde las operaciones iterativas podían acumular valor sistemáticamente a través del sesgo de redondeo.
Un patrón, no una anomalía
El exploit de Balancer no surgió del vacío. Los ataques de precisión por redondeo tienen una historia creciente en DeFi:
-
Hundred Finance (2023): Los atacantes manipularon el tipo de cambio en el contrato hWBTC mediante la donación de WBTC, explotando un error de redondeo en la función
redeemUnderlyingpara retirar cantidades desproporcionadas. -
Raft Finance (2023): Un ataque de préstamo relámpago (flash loan) explotó la pérdida de precisión en el protocolo de moneda estable, drenando 3,6 millones de dólares.
-
Forks de Compound V2 (en curso): Los grupos de préstamos vacíos o casi vacíos siguen siendo vulnerables porque los valores bajos de
totalSupplypermiten a los atacantes inflar los tipos de cambio a través de ataques de donación, explotando el redondeo de la división de enteros. -
El propio incidente de Balancer en 2023: Un exploit de redondeo menor de 2,1 millones de dólares se centró en suposiciones aritméticas similares; un aviso que presagió la catastrófica brecha de noviembre de 2025.
La causa raíz es siempre la misma: Solidity no tiene soporte nativo para punto flotante. Cada operación de división trunca, cada multiplicación puede desbordarse (overflow) y cada paso de normalización introduce un error potencial. Cuando estos errores se acumulan a través de operaciones iterativas — especialmente en los cálculos invariantes de AMM — los resultados pueden ser devastadores.
Por qué las auditorías siguen omitiendo errores de redondeo
Las auditorías tradicionales de contratos inteligentes se centran en fallos de lógica, control de acceso, reentrada (reentrancy) y manipulación de oráculos. Los errores de redondeo requieren un enfoque fundamentalmente diferente:
Son matemáticamente sutiles. Una sola operación de redondeo que pierda 1 wei no es un error. La vulnerabilidad solo surge cuando un atacante puede iterar esa operación miles de veces en una sola transacción, convirtiendo errores insignificantes en una extracción de valor material.
Dependen del contexto. El mismo comportamiento de redondeo puede ser inofensivo en una configuración de pool y explotable en otra. Trail of Bits no pudo confirmar el problema de los Linear Pools porque las condiciones específicas para la explotación no estaban presentes en ese tipo de pool.
Evaden el análisis estático. Las herramientas automatizadas buscan patrones de vulnerabilidad conocidos. La explotación del redondeo requiere comprender la relación matemática entre las operaciones iterativas y los invariantes del pool, algo que exige una profunda experiencia en el dominio y pruebas basadas en propiedades.
La verificación formal ayuda — pero solo con las propiedades adecuadas. La verificación de la V3 de Certora incluyó una propiedad crítica de la que carecía la V2: swappingBackAndForth, que verifica que el intercambio de tokens de A a B y viceversa no resulte en una ganancia neta. Esta única regla habría detectado el exploit de Balancer V2. La lección: la verificación es tan fuerte como las propiedades que comprueba.
Qué cambió después del exploit
La revisión de seguridad de Balancer V3
Balancer V3, que no se vio afectado por el exploit, se sometió a una reevaluación exhaustiva en colaboración con Certora. La arquitectura V3 elimina la vulnerabilidad de redondeo específica mediante:
- Una lógica de escalado rediseñada que maneja factores no enteros sin pérdida de precisión.
- Verificación formal con propiedades dirigidas específicamente a los invariantes de intercambio de ida y vuelta (roundtrip).
- Ejecución explícita de la dirección de redondeo en todas las operaciones aritméticas.
Impacto en toda la industria
El exploit aceleró varias tendencias en la seguridad de DeFi:
-
La ejecución en tiempo de ejecución (runtime enforcement) ganó terreno como complemento de las auditorías. A16z crypto publicó una investigación sobre el uso de comprobaciones en tiempo de ejecución para detectar anomalías numéricas durante la ejecución de transacciones — detectando exploits en tiempo real en lugar de depender únicamente del análisis previo al despliegue.
-
Las pruebas conscientes del redondeo se convirtieron en un requisito estándar de auditoría. Las firmas líderes ahora incluyen fuzzing basado en propiedades específicamente dirigido a la acumulación de redondeo iterativo.
-
Los marcos de Safe Harbor como el BIP-726 de Balancer demostraron su valor, proporcionando cobertura legal para que los respondedores whitehat recuperen fondos rápidamente sin temor a ser procesados.
La lección más profunda
El exploit de Balancer expuso una verdad incómoda sobre la seguridad de DeFi: los errores más peligrosos no son los dramáticos. Los ataques de reentrada se comprenden bien. Las manipulaciones de préstamos relámpago tienen defensas establecidas. Pero un desarrollador que escribe // el impacto de este redondeo se espera que sea mínimo y continúa — esa es la vulnerabilidad que se desliza a través de cada capa de defensa.
Dado que los protocolos DeFi gestionan más de 100 mil millones de dólares en valor total bloqueado, el margen para lo que "se espera que sea mínimo" es cero. Un error de redondeo que pierde 1 wei por operación se convierte en un exploit de 128 millones de dólares cuando un atacante puede ejecutar 65 operaciones en una sola llamada al constructor.
El incidente de Balancer es un caso de estudio sobre la brecha entre lo que creemos que es insignificante y lo que un adversario puede acumular hasta convertirlo en una catástrofe. En DeFi, no existe el error de redondeo inofensivo.
BlockEden.xyz construye infraestructura de API de blockchain de grado empresarial con una arquitectura que prioriza la seguridad. A medida que los protocolos DeFi aprenden de incidentes como el exploit de Balancer, una infraestructura de nodos robusta se convierte en la base para interacciones en cadena más seguras. Explore nuestro mercado de API para construir sobre una infraestructura dise ñada para la confiabilidad.