En DeFi, los depósitos, los préstamos y los intercambios se realizan automáticamente mediante contratos inteligentes, sin revisión humana ni atención al cliente que pueda recuperar el dinero enviado por error. Si el contrato está bien escrito, es la regla más fiable; si está mal escrito, las vulnerabilidades también se «ejecutarán» al pie de la letra.
$ETH Ethereum es una de las primeras cadenas públicas que admitió contratos inteligentes de propósito general. Precio actual: 2017.21 (24 h: -2.01%).
■ El código es la regla, y las vulnerabilidades también
Una vez desplegados en la cadena, los contratos inteligentes se ejecutan automáticamente según el código. Esto aporta transparencia y previsibilidad: cualquiera puede leer el código y, en los contratos que no se pueden actualizar, las reglas no cambian porque alguien cambie de opinión.
Por el contrario, si alguien descubre y aprovecha una vulnerabilidad en el código, los fondos pueden transferirse en unas pocas transacciones y ser muy difíciles de recuperar. The DAO, en 2016, es un ejemplo: atacaron su contrato por una vulnerabilidad de reentrada y Ethereum respondió con una bifurcación dura. La cadena original, que no se bifurcó, continuó como Ethereum Classic (ETC).
■ ¿Qué se audita exactamente?
Una auditoría de seguridad es una revisión que un equipo externo especializado realiza sobre una versión concreta del código en un momento determinado. El informe suele enumerar los problemas detectados, su nivel de gravedad y si el equipo del proyecto ya los ha corregido.
Entre los aspectos que suelen revisarse están las vulnerabilidades de reentrada, los errores en el control de acceso, los problemas de precisión en los cálculos y la posibilidad de manipular los oráculos. Las auditorías ayudan a detectar y reducir este tipo de vulnerabilidades comunes, pero están limitadas por el tiempo, los recursos humanos y el alcance de la revisión.
■ ¿Por qué puede haber problemas incluso después de una auditoría?
En primer lugar, la auditoría solo cubre el código incluido en el alcance definido. Los contratos que quedan fuera y las funciones que se añaden más adelante no están cubiertos. Si el código cambia después de la auditoría o la versión desplegada no coincide con la versión auditada, las conclusiones no se pueden aplicar directamente.
En segundo lugar, algunos riesgos no están en el código en sí: pueden causar pérdidas los problemas con los oráculos u otros protocolos de los que depende el protocolo, el robo de las claves de administrador que permiten actualizarlo o la manipulación de la interfaz web para inducir a los usuarios a firmar transacciones maliciosas.
■ Qué pueden hacer los usuarios comunes
Al leer un informe de auditoría, fíjate en la fecha, el alcance y los problemas que aún no se han corregido. No te quedes solo con las palabras «auditado». También puedes comprobar si el contrato se puede actualizar de forma unilateral y si los permisos de actualización están controlados mediante una firma múltiple y un bloqueo temporal.
Por lo general, se considera que los protocolos que llevan mucho tiempo funcionando y han gestionado grandes cantidades de fondos son más fiables, pero eso no significa que estén libres de vulnerabilidades. Por eso, en DeFi invierte solo fondos cuya pérdida podrías soportar, reparte las cantidades grandes entre distintos protocolos y recuerda revocar los permisos de los protocolos que ya no utilices.
■ En una frase
La auditoría es el punto de partida de la seguridad, no el final. Es más sensato considerar el riesgo de los contratos inteligentes como un coste inevitable de participar en DeFi que confiar en las palabras «auditado». Contrasta la información con varias fuentes antes de actuar; no te fíes de lo que diga una sola persona.
¿Te has encontrado con un problema parecido? Cuéntalo para ayudar a los demás a evitarlo.