BTCC / BTCC Square / CryptonewsES /
Balancer sufre un golpe brutal: $100 millones evaporados en un exploit DeFi

Balancer sufre un golpe brutal: $100 millones evaporados en un exploit DeFi

Published:
2025-11-09 07:00:00
14
2

100 millones de dólares perdidos para el protocolo DeFi Balancer

El ecosistema DeFi vuelve a temblar. Balancer, uno de los protocolos más establecidos, acaba de sumarse a la lista negra de exploits con una pérdida de 100 millones de dólares.

¿Cómo ocurrió? Detalles técnicos bajo investigación, pero el patrón es familiar: complejidad smart contract + agujeros de seguridad = fiesta para hackers.

Mientras tanto, los maximalistas de las finanzas tradicionales se frotan las manos—'¿Y esto es el futuro?'—mientras reajustan sus ETFs aburridos pero 'seguros'.

El protocolo promete actualizaciones, pero la herida ya está abierta. ¿Cuánto tardarán los usuarios en recuperar la confianza? En DeFi, 100 millones desaparecen más rápido que un memecoin en un bull run.

Las auditorías no salvaron el protocolo DeFi de Balancer

Lo que sorprende del hecho es que se trata de un protocolo de finanzas descentralizadas con varios años activo. Muchos miembros de la comunidad han señalado que Balancer DeFi ha superado varias, lo que suele considerarse un indicador de fiabilidad.

balancer went through 10+ audits. the vault was audited 3 separate times by different firms

still got hacked for $110M

this space needs to accept that 'audited by X' means almost nothing. code is hard, defi is harder

it is unfortunate but hope the team recovers pic.twitter.com/nZzVzCdqDO

— Suhail Kakar (@SuhailKakar) November 3, 2025

La vulnerabilidad parece haberestables componibles V2 que ya habían sufrido un ataque en agosto de 2023.

En aquel entonces, el proyecto también se enfrentó a un grave problema técnico, pero el equipo lo gestionó eficazmente. Los desarrolladores elogiaron la rapidez con la que el protocolo DeFi de Balancer reaccionó y su comunicación fluida con la comunidad.

NOTE:

The majority of funds on Balancer are safe.

Only 1.4% of the total TVL is at risk, and only boosted pools are affected.

Several pools are paused to mitigate risks and will remain so, with users advised to withdraw liquidity as soon as possible.https://t.co/xcT1OfALs2

— Balancer (@Balancer) August 22, 2023

La historia se repite en 2025

El 3 de noviembre de 2025, el protocolo DeFi Balancer volvió a ser noticia tras otro ataque. Los primeros informes indican que el incidente afectó nuevamente a los mismos pools de la vez anterior.

El investigador Adi sugirió que el atacante utilizó un contrato especialmente diseñado que, durante la inicialización del pool, logró manipular las llamadas internas dentro de Balancer Vault. Lapermitió al atacante eludir las protecciones y realizar intercambios no autorizados, vaciando varios pools interconectados.

Here's everything you need to know about the Balancer Hack:

1. The attack targeted Balancer's V2 vaults and liquidity pools, exploiting a vulnerability in smart contract interactions. Preliminary analysis from on-chain investigators points to a maliciously deployed contract that… pic.twitter.com/udAM4hB0OD

— Adi (@AdiFlips) November 3, 2025

No se trataba de un fallo de cálculo, sino de un problema arquitectónico. Mientras que el error de 2023 era un fallo puntual, en esta ocasión la vulnerabilidad expuso posiblesbajo ciertas condiciones.

Investigadores posteriores descubrieron que el contrato del atacante aún contenía instrucciones console.log, registros de depuración típicos que suelen eliminarse antes de la implementación.

Estos registros se encuentran a menudo en código generado por herramientas de IA como ChatGPT u otros modelos de lenguaje complejos.

Esto llevó a especular que el exploit podría haberse escrito, al menos parcialmente, con ayuda de IA.

Balancer hacker just left console logs on-chain.

might sound small, but it’s actually wild

real hackers never leave console.log in production code.

When you see something like that, it usually means one thing the exploit was AI-generated or copy-pasted.

LLMs always sprinkle… pic.twitter.com/nBG3VZobBZ

— RayRay (@rayray_1_) November 4, 2025

Si se confirma esta versión, podría convertirse en uno de los primeros casos registrados de unen el sector de las criptomonedas DeFi.

Este incidente demuestra que incluso los protocolos DeFi consolidados y con múltiples auditorías no son inmunes a fallos de diseño fundamentales.

El protocolo DeFi Balancer se convirtió en un recordatorio más de cómo la deuda técnica en los sistemas descentralizados puede acumularse silenciosamente y reaparecer años después de nuevas formas.

Leer más:

  • ¿Cómo de grande es la caída de Bitcoin? Comparativa con desplomes históricos
  • Mercados globales caen por miedo a una burbuja de IA: Burry revela una apuesta de 1.100 millones de dólares contra Nvidia y Palantir
  • Solana pone a prueba los 150 $: mínimos de agosto pese a los flujos recientes en ETF
Table of Contents
  • En este artículo
  • Las auditorías no salvaron el protocolo DeFi de Balancer
  • La historia se repite en 2025
  • Leer más:
  • En este artículo
  • Las auditorías no salvaron el protocolo DeFi de Balancer
  • La historia se repite en 2025
  • Leer más:
  • window.addEventListener("DOMContentLoaded", () => { const header = document.querySelector(".header_wrapper"); const pageLegend = document.querySelector('#multiCollapse1'); const pageLegendList = document.querySelector('#multiCollapse2'); const pageLegendCollapse = new bootstrap.Collapse(pageLegend, {toggle: document.querySelector(".toc-sticky").classList.contains('sticky')}); /** * Changing current title */ (function (pageLegend) { const titleNodes = pageLegend.querySelectorAll('.StepProgress-item__link'); if (!titleNodes.length) return; const titles = [...titleNodes].map((itm, i) => ({ id: itm.getAttribute('data-id'), text: itm.textContent, level: itm.getAttribute('data-level'), linkNode: itm, titleNode: document.getElementById(itm.getAttribute('data-id')), index: i, })); /** * Source: https://www.sitepoint.com/throttle-scroll-events/ * @param {Function} fn * @param {number} wait * @returns {(function(): void)|*} */ const throttle = (fn, wait) => { let time = Date.now(); return function () { if ((time + wait - Date.now()) { const documentScrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; let current = 0; // Title titles.forEach((itm, i) => { //console.log(itm) const itmOffsetTop = itm.titleNode ? itm.titleNode.offsetTop - 100 : 0; if (documentScrollTop >= itmOffsetTop) { document.getElementById('toc-current-title').innerHTML = itm.text; document.getElementById('toc-current-title').setAttribute('data-current-id', itm.id); document.getElementById('toc-current-title').setAttribute('data-current-level', itm.level); current = i; } }) // close all list and open sub list if needed if (document.querySelector(".toc-sticky").classList.contains('sticky')) { document.querySelectorAll('.subList-in-progress').forEach((el) => { el.children[1].classList.remove('show'); el.getElementsByClassName('icon-chevron-down')[0].classList.remove('up'); }); const currentEl = titles[current]; currentEl.linkNode.classList.add('show'); } titles.forEach((itm, i) => { itm.linkNode.parentNode.parentNode.classList.remove('current', 'is-done'); if (current > i) { itm.linkNode.parentNode.parentNode.classList.add('is-done') }; if (current === i) { itm.linkNode.parentNode.parentNode.classList.add('current'); }; }) } changeCurrentTitle(); document.addEventListener('scroll', throttle(changeCurrentTitle, 50)); })(pageLegend); /** * Collapse */ (function (pageLegend, header) { const icon = pageLegend.parentNode.querySelector(".collapse-action-btn i"); const collapseToggle = (status) => (e) => { if (!e.target.isEqualNode(pageLegend)) return; icon.classList.toggle("up"); const containerHeight = pageLegend.getBoundingClientRect().height; const showSubtitleContent = () => { const currentId = document.getElementById('toc-current-title').getAttribute('data-current-id'); const currentLevel = document.getElementById('toc-current-title').getAttribute('data-current-level'); const currentSubTitle = currentLevel == 3 ? document.querySelector(`a[data-id="${currentId}"]`).parentNode.parentNode.parentNode : false; if (!currentSubTitle) return; new bootstrap.Collapse(currentSubTitle, {toggle: false}).show(); } showSubtitleContent(); console.log(status + 'fdsfsd' + containerHeight); if (status === 'shown' && document.querySelector(".toc-sticky").classList.contains('sticky')) { document.querySelector('html').classList.remove('overflow-hidden'); pageLegend.classList.add('overflow-auto'); pageLegend.style.height = `calc(100vh - ${header.getBoundingClientRect().height + document.querySelector('.toc-sticky__open').getBoundingClientRect().height + 16}px)`; } else if (status === 'hide') { document.querySelector('html').removeClass('overflow-hidden'); pageLegend.classList.remove('overflow-auto'); pageLegend.style.height = 'auto'; } } pageLegend.addEventListener('shown.bs.collapse', collapseToggle('shown')); pageLegend.addEventListener('hide.bs.collapse', collapseToggle('hide')); })(pageLegend, header); /** * Collapse sub-titles */ (function (pageLegend) { const collapseEls = pageLegend.querySelectorAll('.collapse'); collapseEls.forEach(function (el) { const toggleArrowDirection = function (e) { if (!e.target.isEqualNode(el)) return; const id = this.getAttribute('id'); document.querySelector(`.collapse-action-btn[data-bs-target="#${id}"] .icon-chevron-down`).classList.toggle('up'); } el.addEventListener('shown.bs.collapse', toggleArrowDirection); el.addEventListener('hide.bs.collapse', toggleArrowDirection); }) })(pageLegend); /** * Collapse main title */ (function (pageLegendList) { const icon = pageLegendList.parentNode.querySelector(".collapse-action-btn i"); const collapseToggle = () => (e) => { if (!e.target.isEqualNode(pageLegendList)) return; icon.classList.toggle("up"); } pageLegendList.addEventListener('shown.bs.collapse', collapseToggle()); pageLegendList.addEventListener('hide.bs.collapse', collapseToggle()); })(pageLegendList); (function (pageLegendList) { const collapseEls = pageLegendList.querySelectorAll('.collapse'); collapseEls.forEach(function (el) { const toggleArrowDirection = function (e) { if (!e.target.isEqualNode(el)) return; const id = this.getAttribute('id'); document.querySelector(`.toc-sticky-list .collapse-action-btn[data-bs-target="#${id}"] .icon-chevron-down`).classList.toggle('up'); } el.addEventListener('shown.bs.collapse', toggleArrowDirection); el.addEventListener('hide.bs.collapse', toggleArrowDirection); }) })(pageLegendList); /** * Sticky functionality * Source: https://stackoverflow.com/questions/17893771/javascript-sticky-div-after-scroll */ (function (header, pageLegendCollapse) { // set everything outside the onscroll event (less work per scroll) const target = document.querySelector(".toc-sticky"); const targetListStatic = document.querySelector(".toc-sticky-list"); if (!target || !header) return; const headerHeight = header.getBoundingClientRect().height; const targetHeight = targetListStatic.getBoundingClientRect().height; // -headerHeight so it won't be jumpy const stop = targetListStatic.offsetTop + headerHeight + targetHeight; const docBody = document.documentElement || document.body.parentNode || document.body; const hasOffset = window.pageYOffset !== undefined; const applySticky = function () { // cross-browser compatible scrollTop. const scrollTop = hasOffset ? window.pageYOffset : docBody.scrollTop; // if user scrolls to headerHeight from the top of the target div if (scrollTop >= stop) { pageLegendCollapse.hide(); // stick the div target.classList.add("sticky"); //target.style.marginTop = `${headerHeight}px`; } else { pageLegendCollapse.show(); // release the div target.classList.remove("sticky"); target.style.marginTop = ""; } } applySticky(); window.addEventListener('scroll', applySticky); })(header, pageLegendCollapse); jQuery('span.show_moretoc').click(function () { jQuery('span.show_moretoc').hide(); jQuery('.ms_hidetoc').show(); }); });

    |Square

    Descárguese la aplicación BTCC para empezar su trayectoria cripto

    Empiece hoy mismo Escanéelo y únase a más de 100 millones de usuarios

    Descargo de responsabilidad: Los artículos reproducidos en este sitio provienen de redes públicas y se comparten únicamente con el propósito de transmitir información sectorial, sin representar una posición oficial de BTCC. Los derechos de autor corresponden a sus respectivos creadores. Si detecta contenido que infringe derechos de autor o resulta cuestionable, contacte con nosotros en [email protected] para que podamos proceder de acuerdo con la ley. BTCC no garantiza la exactitud, actualidad o integridad de la información reproducida y declina cualquier responsabilidad, expresa o implícita, derivada del uso de dicha información. Todo el contenido se proporciona como referencia para la investigación sectorial y no constituye una recomendación de inversión, legal o comercial. BTCC no se hace responsable de las acciones emprendidas en base a esta información.