Esto también lo aprendí por las malas.

En DeFi, los depósitos, los préstamos y los intercambios se realizan automáticamente mediante contratos inteligentes: no hay revisión humana ni servicio de 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 compatibles con contratos inteligentes de uso general. Precio actual: 2051.93 (24 h -3.58%).

▍El código es la regla, y las vulnerabilidades también

Una vez que un contrato inteligente se despliega en la cadena, se ejecuta automáticamente según el código. Esto aporta transparencia y previsibilidad: cualquiera puede leer el código y, si el contrato no se puede actualizar, las reglas tampoco cambiarán 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 el contrato aprovechando 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 de seguridad externo realiza, en un momento determinado, sobre una versión concreta del código. El informe de auditoría suele enumerar los problemas encontrados, su gravedad y si el equipo del proyecto ya los ha corregido.

Entre los problemas que se suelen revisar están la reentrada, los errores en el control de permisos, los problemas de precisión en los cálculos y la posibilidad de manipular 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

Primero, la auditoría solo cubre el código incluido en el alcance especificado; los contratos que quedan fuera y las funciones añadidas posteriormente no se incluyen. Si se modifica el código después de la auditoría o la versión desplegada no coincide con la auditada, las conclusiones no pueden aplicarse directamente.

Segundo, algunos riesgos no están en el código en sí: pueden producirse pérdidas si falla un oráculo u otro protocolo del que depende el protocolo, si roban la clave de administrador con permisos de actualización o si manipulan la interfaz web para inducir a los usuarios a firmar transacciones maliciosas.

▍Qué pueden hacer los usuarios comunes

Al consultar 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 unilateralmente y si los permisos de actualización están controlados mediante firmas múltiples y un bloqueo temporal.

Por lo general, se considera que los protocolos con una larga trayectoria y que han gestionado grandes cantidades de fondos son más fiables, pero eso no significa que carezcan de vulnerabilidades. Por eso, en DeFi, deposita solo fondos cuya pérdida puedas soportar, distribuye las cantidades grandes entre distintos protocolos y recuerda revocar los permisos de los protocolos que ya no uses.

▍Para terminar

La auditoría es el punto de partida de la seguridad, no el final. Es más realista considerar los riesgos de los contratos inteligentes como un coste inevitable de participar en DeFi que confiar en las palabras «auditado». No actúes precipitadamente solo porque todos a tu alrededor estén comprando.

¿Ya conocías esto?