Análisis de la seguridad en los contratos de Ethereum: Desafíos y soluciones
En la denominada revolución DeFi, Ethereum es la blockchain y el proyecto con mayor poder e influencia. Es por ello que el éxito de Ethereum es el éxito de la Web3 y de las finanzas descentralizadas.
Esta red de contratos inteligentes no solo tiene el potencial de empezar a descentralizar la economía digital, sino también de empezar a descentralizar todas las relaciones y acuerdos sociales en el mundo.
Sin embargo, por otra parte, nos encontramos un sin fin de retos y uno de ellos precisamente es la seguridad: a pesar de que en el próximo año Ethereum cumplirá su primera década de existencia, los problemas de seguridad en sus contratos inteligentes siguen vigentes.
Como es de esperar, desde diversos frentes se proponen soluciones, pero no es un camino corto a seguir. Por ahora, Ethereum avanza en la implementación de su versión 2.0, y se espera que la implementación total, que empezó con el cambio de proof of work a proof of stake, consiga solucionar grandes retos en cuanto a seguridad.
Cabe destacar que en este artículo trataremos esos problemas de seguridad más frecuentes en dichos contratos y también las soluciones. Pero primero debemos explicar que, debido a que un contrato inteligente puede representar el acceso a una gran suma de capital, los piratas informáticos están trabajando sin cesar por el acceso a dichos fondos. Por lo que el más mínimo error o fallo puede provocar pérdidas catastróficas.
Sin embargo, los smart contracts de Ethereum representan la posibilidad de automatizar, generar confianza y hacer más eficientes los sistemas. Así que por dichas cualidades, su uso e implementación sigue en aumento a pesar de los riesgos.
Por ejemplo, en el ámbito de las cadenas de suministro, estos aplicativos permiten transacciones complejas, disminuyen los intermediarios y reducen gastos. Por eso los desarrolladores y las empresas de diferentes industrias ven potencial detrás de su tecnología.
Las vulnerabilidades más frecuentes en los contratos inteligentes de Ethereum
Al hablar de la seguridad en los contratos inteligentes de Ethereum, es necesario mencionar los frecuentes errores humanos que son más comunes que los técnicos. Por eso es popular la frase que reza:
«Necesitas una semana para aprender Solidity y tres años para evitar vulnerabilidades críticas de forma frecuente».
Para adentrarnos más en el tema, hagamos una lista de las vulnerabilidades más frecuentes:
- Son frecuentes los ataques de reentrada, que consisten en inducir un comportamiento inesperado en el contrato externo dentro de otro mediante reentradas. Esto es posible gracias a que los hackers realizan entradas en contratos que dependen de otros antes de que sus antecesores completen su llamada.
- De igual forma, se puede aprovechar el hecho de que un contrato interactúe con otro externo, induciendo a ignorar valores de retorno, lo que puede generar vulnerabilidades.
- Los llamados desbordamientos «insuficientes de enteros» se producen debido a que los smart contracts a menudo trabajan con valores numéricos como el precio de un token o la cantidad que se transfieren. Si estos valores numéricos no se gestionan correctamente, pueden producirse desbordamientos insuficientes de enteros y provocar resultados inesperados.
- Además, tenemos los errores de autorización que pueden ocurrir por una configuración incorrecta y otorgar acceso no autorizado a los piratas que podrían acceder a funciones críticas de dicho contrato inteligente.
- Por otra parte, también existen un sinfín de riesgos que pueden ocurrir debido a la dependencia del contrato a factores externos de la blockchain, como son datos proporcionados por oráculos, que pueden manipularse desde su fuente externa.
De esta manera, hemos abordado solo algunos de los errores o vulnerabilidades más frecuentes, pues existe un sinfín de ellos. Por eso en el siguiente apartado trataremos de abordar alguna de las soluciones para subsanarlas o prevenirlas.
- La influencia de la macroeconomía en el mercado de criptomonedas
Cómo afrontar los problemas de seguridad en los contratos de Ethereum
Desde el punto de vista de los desarrolladores, el primer paso es aceptar que existe una alta probabilidad que su contrato inteligente termine con vulnerabilidades. Por ello, antes de su despliegue es importante una auditoría externa.
Mientras que desde el punto de vista del usuario se debe reconocer los posibles riesgos invisibles de todos los protocolos que tengan acceso a sus fondos. Así que debe averiguar qué tan responsables son los gestores del protocolo.
Asimismo, los proyectos deben aprovechar la gran variedad de herramientas que ya existen al respecto. Además de la gran cantidad de aplicativos existentes dentro de la misma blockchain de Ethereum y ponemos como un ejemplo breve las redes de capas 2.
También es necesario que los proyectos sean conscientes de que la seguridad no depende exclusivamente de los desarrolladores. Más bien, es crucial que el tema de la seguridad de los smart contracts sea tratado desde diferentes perspectivas como las de los tecnólogos, expertos legales y formuladores de políticas. Desde dichas perspectivas se pueden encontrar soluciones más diversas y eficaces.
Finalmente, mencionar que es importante que los desarrolladores implementen una buena cantidad de pruebas y con diferentes métodos y herramientas que le permitan detectar fallas en todas las etapas del proceso de desarrollo.