El 10 de julio de 2021 a las 20:00 UTC, el router de liquidez cross-chain Anyswap V3 fue drenado de aproximadamente 7,9 millones de dólares — 5,5M de MIM en una sola transacción más ~2,4M de USDC en otras tres transacciones — después de que el atacante explotara una vulnerabilidad de reutilización de nonce ECDSA en la wallet MPC del protocolo. El atacante detectó un valor k repetido entre dos firmas en BNB Chain y recalculó la clave privada a partir de teoría de números elemental.
Qué ocurrió
Anyswap (luego renombrado Multichain) utilizaba una wallet Multi-Party Computation (MPC) para coordinar firmas entre múltiples cuotas de claves controladas por operadores para su router cross-chain. Cada operación cross-chain requería una firma de la wallet MPC, generada mediante ECDSA.
La seguridad de ECDSA depende de un requisito crítico: el valor aleatorio por firma k debe ser único e impredecible. Si dos firmas de la misma clave usan el mismo valor k, entonces cualquiera que observe las dos firmas puede recuperar algebraicamente la clave privada usando operaciones básicas de aritmética modular.
La implementación MPC del router Anyswap V3 generaba valores k repetidos en dos de sus transacciones del lado BSC. El atacante:
- Monitorizó la actividad on-chain de firmas de Anyswap — posiblemente automatizada, posiblemente oportunista.
- Detectó el k duplicado en dos transacciones BSC.
- Calculó la clave privada de la wallet MPC usando la fórmula estándar de recuperación de clave privada ECDSA dada dos firmas con el mismo nonce.
- Drenó los pools de liquidez cross-chain V3 por $7,9M antes de que el equipo pudiera rotar las claves.
El exploit afectó solo al router V3 — los puentes V1 y V2 de Anyswap usaban infraestructura diferente y no se vieron afectados. Los LP de V3 absorbieron la pérdida.
Consecuencias
- Anyswap pausó V3 y anunció un redepliegue con timelock de 48 horas con generación de nonce corregida.
- El equipo se comprometió a compensar a los LP de V3.
- Dos años después, el rebautizado Multichain sería drenado por $125M en julio de 2023 bajo circunstancias completamente diferentes (y más sospechosas).
Por qué importa
El incidente de julio de 2021 de Anyswap es el caso de libro de texto de por qué las primitivas criptográficas deben implementarse con el rigor que requieren. La vulnerabilidad de reutilización de nonce de ECDSA se ha documentado desde que el algoritmo fue publicado por primera vez; el modo de fallo es tan conocido que bots automatizados monitorizan las blockchains públicas en busca de valores k repetidos para recalcular claves.
Las lecciones estructurales:
-
Las wallets MPC no son mágicamente seguras — son tan seguras como la implementación de cada primitiva en el pipeline de firma. Un bug de reutilización de nonce en la agregación de firmas del MPC derrota todas las garantías de seguridad multi-parte que el sistema estaba diseñado para proporcionar.
-
La generación determinista de nonces según RFC 6979 ha sido la mitigación estándar durante más de una década. Cualquier implementación ECDSA que no use nonces deterministas — o peor, que reutilice nonces de un PRNG defectuoso — está a una observación de la exposición.
-
Los puentes concentran riesgo criptográfico porque necesitan emitir muchas firmas para muchas operaciones cross-chain, aumentando la posibilidad de que cualquier fallo de implementación acabe aflorando. El router Anyswap V3 usaba código "prototipo" en producción — un patrón recurrente en el despliegue temprano de puentes que la oleada post-2022 de hacks de puentes (Ronin, Wormhole, BNB, Nomad) hizo universalmente reconocido como inadecuado.
La trayectoria Anyswap → Multichain — de "exploit del router V3" en 2021 a "claves MPC perdidas tras el arresto del CEO" en 2023 — es uno de los estudios de caso más limpios de cómo el mismo equipo operativo puede producir distintas categorías de fallo catastrófico en una línea temporal de varios años.
Fuentes y evidencia on-chain
- [01]anyswap.medium.comhttps://anyswap.medium.com/anyswap-multichain-router-v3-exploit-statement-6833f1b7e6fb
- [02]chaincatcher.comhttps://www.chaincatcher.com/en/article/2063348
- [03]rekt.newshttps://rekt.news/anyswap-rekt