TL;DR

La auditoría de seguridad proporciona un análisis detallado de los contratos inteligentes de un proyecto. Son importantes para mantener la seguridad de los fondos invertidos a través de estos contratos. Dado que todas las transacciones en blockchain son definitivas, los fondos no se pueden recuperar en caso de robo. Normalmente, los auditores examinan el código de los contratos inteligentes, emiten un informe y lo entregan al equipo del proyecto para que trabaje en los cambios necesarios. Luego se publica un informe final que detalla los errores pendientes y el trabajo ya realizado para resolver problemas de rendimiento o seguridad.


Introducción

Las auditorías de seguridad de contratos inteligentes son muy comunes en el ecosistema de finanzas descentralizadas (DeFi). Al invertir en un proyecto blockchain, su decisión puede basarse en parte en los resultados de una revisión del código de un contrato inteligente.

Si bien la mayoría de las personas comprende la importancia de las auditorías para la ciberseguridad, pocos prestan atención a los detalles de las líneas de código. Echemos un vistazo a los métodos, herramientas y resultados que normalmente se ven en las auditorías de seguridad de contratos inteligentes para que pueda tomar decisiones más informadas.


¿Qué es una auditoría de contrato inteligente?

Una auditoría de seguridad de contrato inteligente examina y comenta el código de contrato inteligente de un proyecto. Normalmente, estos contratos se escriben en el lenguaje de programación Solidity y se proporcionan a través de GitHub. Las auditorías de seguridad son particularmente valiosas para los proyectos DeFi que manejan transacciones blockchain multimillonarias o tienen una gran cantidad de participantes. El proceso de auditoría generalmente se realiza en cuatro pasos:

1. Los contratos inteligentes se proporcionan al equipo de auditoría para su análisis inicial.

2. El equipo de auditoría presenta su análisis al equipo del proyecto para que se puedan tomar las acciones necesarias.

3. El equipo del proyecto realiza cambios en función de los problemas encontrados.

4. El equipo auditor publica su informe final, considerando cualquier cambio nuevo o errores pendientes.

Para muchos usuarios de criptomonedas, las auditorías de contratos inteligentes son esenciales al invertir en nuevos proyectos DeFi. El proceso de auditoría se ha convertido en un estándar para proyectos serios que buscan una buena reputación. Algunos proveedores de auditoría son considerados líderes de la industria, lo que hace que sus auditorías sean más valiosas a los ojos de los inversores.


¿Por qué necesitamos auditorías de contratos inteligentes?

Cuando se realizan transacciones con grandes cantidades de dinero o se bloquean en contratos inteligentes, se convierten en objetivos de ataques de piratas informáticos. Pequeños errores de codificación pueden provocar el robo de grandes cantidades de dinero. Por ejemplo, el hackeo de DAO a la blockchain de Ethereum robó alrededor de 60 millones de dólares en ETH y desencadenó una bifurcación dura de la red Ethereum.

Dado que las transacciones de blockchain son irreversibles, es esencial garantizar que el código de un proyecto sea seguro. La naturaleza altamente segura de la tecnología Blockchain hace que sea difícil recuperar fondos y resolver problemas después del hecho, por lo que es mejor evitar las vulnerabilidades a toda costa.


¿Cómo funcionan las auditorías de contratos inteligentes?

El proceso de auditoría de un contrato inteligente generalmente sigue un patrón. Si bien el enfoque de cada auditor puede variar levemente, el proceso generalmente es el siguiente:

1. Determinar el alcance de la auditoría. El contrato inteligente y las especificaciones del proyecto se definen de acuerdo con el propósito del proyecto y su arquitectura general. Las especificaciones ayudan al equipo de auditoría a comprender los objetivos del proyecto al escribir y utilizar el código.

2. Proporcionar una cotización inicial basada en la cantidad de trabajo requerido.

3. Ejecutar pruebas. La naturaleza exacta de cada prueba varía según el equipo de auditoría, sus herramientas de análisis y sus métodos. Normalmente se realizan pruebas manuales y automatizadas.

4. Crear un primer borrador del informe con los errores encontrados y proporcionarlo al equipo del proyecto para recibir comentarios y correcciones.

5. Publicar el informe final, considerando las acciones y medidas adoptadas por el equipo en la solución de las cuestiones planteadas.


Métodos de auditoria de contratos inteligentes

Eficiencia del gas 

Las auditorías de contratos inteligentes no se centran únicamente en la seguridad de la cadena de bloques. También analizan la eficiencia y la optimización. Algunos contratos realizan una serie complicada de transacciones para realizar una función prevista. Con el alto costo de las tarifas del gas en redes como Ethereum, los contratos más eficientes pueden ahorrar mucho en costos de transacción.

La optimización del rendimiento también es un indicador del conocimiento técnico de los desarrolladores. Los pasos ineficientes generan más puntos de falla y deben evitarse. Cuando los costos del gas son altos, es posible que los contratos inteligentes no se ejecuten, especialmente cuando el límite de gas utilizado es bajo.

Vulnerabilidades contractuales

La mayor parte del trabajo en auditorías implica verificar los contratos para detectar vulnerabilidades de seguridad. Si bien algunos problemas pueden ser fáciles de identificar, muchos exploits (código malicioso que explota una vulnerabilidad del sistema) implican técnicas y estrategias avanzadas para robar fondos. Por ejemplo, la manipulación del mercado puede utilizarse con contratos inteligentes débiles para llevar a cabo estafas de préstamos relámpago. Para encontrar estos problemas, los auditores inician el proceso de prueba de ruptura simulando ataques maliciosos al contrato inteligente. Las vulnerabilidades comunes incluyen:

1. Problemas de reentrada: es un término de programación que se refiere a cuando un contrato inteligente realiza una llamada externa a otro contrato externo antes de que se completen los efectos de las acciones anteriores. El contrato externo puede entonces llamar recursivamente al contrato inteligente original e interactuar con él de maneras en las que no debería, ya que el estado del contrato original aún no se ha actualizado.

2. Desbordamientos y subdesbordamientos de enteros: cuando un contrato inteligente realiza una operación aritmética, pero la salida excede la capacidad de almacenamiento (generalmente 18 decimales). Esto puede provocar errores de cálculo.

3. Oportunidades de ventaja: un código mal estructurado puede brindar una alerta temprana sobre compras o ventas en el mercado. Esto a su vez permite que otros utilicen la información y comercien para su propio beneficio.

Fallas de seguridad en la plataforma

La mayoría de las auditorías incluyen la evaluación de la red que aloja los contratos e incluso la API utilizada para interactuar con la DApp. Un proyecto podría ser vulnerable a un ataque DDoS o tener la interfaz de usuario de su sitio web comprometida, lo que significa que los usuarios conectarán sus billeteras a aplicaciones blockchain maliciosas.


¿Qué es un informe de auditoría?

El informe de auditoría se proporciona al final del proceso. Lo ideal sería que los proyectos fueran transparentes y compartieran resultados y hallazgos con la comunidad. La mayoría de los informes clasifican los problemas por nivel de gravedad, como crítico, importante, menor, etc. El informe también enumera el estado de los problemas, ya que los proyectos tienen tiempo para resolverlos antes de que se publique el informe final.

Junto con un resumen ejecutivo, un informe estándar contiene recomendaciones, ejemplos de código redundante e información detallada sobre errores de codificación. Antes de publicar la versión final, el proyecto tiene una fecha límite para actuar sobre los hallazgos y los problemas reportados.


¿Dónde solicitar una auditoría de contrato inteligente?

Varios servicios de auditoría de contratos inteligentes se han hecho conocidos por sus servicios. Dos son particularmente populares y para obtener una auditoría de ellos será necesario un presupuesto inicial y la entrega de información.

CertiK

CertiK es líder de la industria en auditorías de contratos inteligentes. Cientos de proyectos han auditado sus contratos inteligentes con ellos. PancakeSwap, el protocolo de creador de mercado automatizado (AMM) más grande en BSC, es un ejemplo. A continuación se muestra una sección de la auditoría de PancakeSwap realizada por CertiK.


La gran mayoría de los proyectos apoyados por Binance Labs también han auditado sus contratos con CertiK. CertiK publica una tabla de clasificación de proyectos auditados que permite comparar cada uno, junto con una puntuación de seguridad. Tenga en cuenta que, además de Ethereum, CertiK también cubre proyectos BSC y Polygon.


Diligencia de ConsenSys

Dirigido por el cofundador de Ethereum, Joseph Lubin, ConsenSys es uno de los nombres más importantes de la industria de las criptomonedas en el desarrollo de blockchain. En ConsenSys Diligence, la empresa ofrece auditorías de contratos inteligentes en Ethereum. También proporcionan un servicio automatizado que verifica los contratos de la Máquina Virtual Ethereum (EVM), identificando errores comunes.


¿Cuánto cuesta una auditoría de contrato inteligente?

El costo de una auditoría depende de la cantidad de contratos inteligentes a verificar. Normalmente, una auditoría cuesta miles de dólares. En el caso de un proyecto de gran envergadura, el proceso puede superar fácilmente los US$ 10.000. La reputación de la empresa que realiza la auditoría también influye en el coste.


Consideraciones finales

Afortunadamente para los inversores y usuarios, las auditorías de contratos inteligentes se han convertido en estándar. Sin embargo, si cada proyecto tiene una auditoría, ya no será un indicador que garantice valor y legitimidad. Por lo tanto, es sumamente importante que usted mismo lea la auditoría. Incluso si no tienes el conocimiento técnico, es una buena idea echar un vistazo a los comentarios y el nivel de gravedad de los problemas potenciales.

Ahora, cuando te encuentres con una auditoría, deberías tener un poco más de facilidad para comprender su contenido. Como siempre, antes de tomar cualquier decisión de inversión, evalúe cuidadosamente el panorama general y tenga en cuenta toda la información.