El código no es ley si tiene errores
La promesa de DeFi es que los smart contracts se ejecutan automáticamente y sin necesidad de confianza. La realidad es que los smart contracts son programas escritos por humanos, y los humanos escriben código con errores. Dado que los protocolos DeFi retienen millones o miles de millones en activos, los errores son financieramente catastróficos. Más de 3.000 millones de dólares se han perdido en exploits de smart contracts desde que comenzó DeFi, y la cifra continúa creciendo.
Categorías de riesgo de smart contract
Los ataques de reentrancia se encuentran entre los más antiguos y famosos. El hackeo de DAO de 2016 explotó una vulnerabilidad de reentrancia para drenar aproximadamente 60 millones de dólares (a precios de ETH de 2016). El patrón de ataque implica que un contrato llame a una función externa que luego llama de nuevo al contrato original antes de que la primera llamada se complete, lo que permite retiros repetidos.
La manipulación de oráculos es cada vez más común. Muchos protocolos DeFi dependen de oráculos de precios (Chainlink, Uniswap TWAP) para determinar los valores de los activos. Si un atacante puede manipular temporalmente el precio del oráculo, puede engañar al protocolo para que ejecute operaciones o liquidaciones a precios incorrectos. Los ataques de préstamos flash frecuentemente explotan la manipulación de oráculos porque el atacante puede pedir prestado grandes cantidades de capital, manipular un precio, explotar un protocolo y pagar el préstamo en una sola transacción.
Los errores de lógica son errores en la lógica de negocio del contrato. El código se compila y se ejecuta sin fallar, pero no hace lo que los desarrolladores pretendían bajo ciertas condiciones límite. Estas son las vulnerabilidades más difíciles de encontrar porque requieren entender tanto el código como el comportamiento previsto.
Los ataques de gobernanza ocurren cuando un atacante acumula suficientes tokens de gobernanza para aprobar una propuesta maliciosa. Si la gobernanza de un protocolo puede cambiar parámetros clave (estructuras de comisiones, ratios de colateral, gasto de la tesorería), controlar la gobernanza es equivalente a controlar el protocolo.
Cómo evaluar el riesgo
El estado de auditoría es necesario pero no suficiente. Un protocolo que ha sido auditado por una firma reputada (Trail of Bits, OpenZeppelin, Consensys Diligence) es más seguro que uno que no lo ha sido, pero las auditorías no garantizan la seguridad. Muchos protocolos explotados habían sido auditados.
El tiempo en producción importa. Un protocolo que ha retenido 500 millones de dólares en TVL durante dos años sin incidentes es significativamente más seguro que uno que se lanzó el mes pasado, sin importar el estado de auditoría. El paso del tiempo sin exploits es evidencia (no prueba) de que los principales vectores de ataque han sido cubiertos.
La complejidad del código es un factor de riesgo. Los protocolos más simples con menos líneas de código y menos dependencias externas tienen superficies de ataque más pequeñas. Los protocolos que componen múltiples otros protocolos (apilando rendimiento a través de tres o cuatro capas de DeFi) multiplican el riesgo porque una vulnerabilidad en cualquier capa puede afectar toda la pila.
Dimensionando su exposición a DeFi
La implicación práctica es que los rendimientos de DeFi deberían evaluarse contra el riesgo de smart contract, no de forma aislada. Un rendimiento del 5% en Aave (probado en batalla, múltiples auditorías, años de operación, miles de millones en TVL) es una propuesta de riesgo muy diferente a un rendimiento del 50% en un protocolo nuevo y no auditado con 2 millones de dólares en TVL. Valore el riesgo en su evaluación, y dimensione sus posiciones de DeFi en consecuencia.