-
Con esta práctica pudo haberse copiado miles de veces las fallas de los contratos inteligentes
-
1 de cada 3 contratos es creado partiendo de otro, lo que eleva los riesgos
Una investigación asegura que la seguridad de la plataforma Ethereum podría estar en riesgo por la copia indiscriminada de contratos inteligentes.
De acuerdo al informe publicado, existe poca diversidad en el origen de de los contratos inteligentes, lo que significa que todas las vulnerabilidades encontradas en los contratos posiblemente han sido reproducidas miles de veces.
Titulada “Analizando la Topología de los Contratos de Ethereum”, la investigación realizada por Luciana Kiffer y Alan Mislo, de la Universidad de Northeastern, y Dave Levin, de la Universidad de Maryland, examinó cómo se crean los contratos inteligentes y cómo los usuarios de Ethereum interactúan entre ellos. Esta exploración reveló que la mayoría de los contratos inteligentes de la red que soporta a esta importante criptomoneda del ecosistema “proviene de copias directas o muy cercanas” a contratos anteriores.
Según Kiffer, Mislo y Levin, quienes ya habían estudiado la red descentralizada de Ethereum, la “reutilización del código” es una práctica riesgosa, pues debido a la “poca diversidad” en los contratos, copiarlos puede haber replicado los errores del código. Para llegar a esa conclusión, los investigadores utilizaron una versión modificada del cliente de Ethereum, geth, con la que analizaron cinco millones de bloques de la cadena, que abarca la actividad de la red desde sus inicios en 2015.
Entre esos cinco millones de bloques se analizaron 125.177 contratos inteligentes. El informe reveló que más de 100.000 contratos provienen de tan solo 16.373 clústers. Asimismo, los investigadores aseveran que 51.1% de los contratos analizados provienen de las primeros 5 clústers o agrupaciones; siendo el número uno el responsable de 26.144 contratos de tokens, mientras que el segundo está «compuesto por contratos involucrados el ataque DDoS de octubre de 2016».
Además de la “reutilización importante de código”, los resultados de las interacciones registradas en el cliente geth, conocida como la Ethereum Virtual Machine, establecen que actualmente los contratos tienen “tres veces más probabilidad de ser creados por otros contratos, que por usuarios” y 60% de los mismos “nunca se han relacionado”. Por otro lado, el porcentaje de contratos creados por el usuario apenas alcanza el 10% por ciento.
(…) Encontramos que los contratos de hoy tienen tres veces más probabilidades de ser creados por otros contratos que por los usuarios, y que más del 60% de los contratos nunca se han relacionado. Adicionalmente, obtenemos el bytecode de todos los contratos y buscamos similitud; nos encontramos con que menos del 10% de los contratos creados por el usuario son únicos, y menos del 1% de los contratos creados por el contrato lo son.
Kiffer, Mislo y Levin
Según los investigadores, la sencillez con la que se puede copiar un contrato inteligente constituye “probablemente la fuerza impulsora detrás del éxito de Ethereum”. Sin embargo, los posibles errores en los contratos son riesgos a tener en cuenta, principalmente porque Ethereum tiene su propio historial de bugs o fallas técnicas.
Recordemos que en 2016, posterior al hackeo de DAO, la aparición de Ethereum Classic y los ataques de DDoS a su plataforma, se descubrió una vulnerabilidad en los contratos inteligentes. El bug estaba vinculado a las variables de almacenamiento de los contratos inteligentes, y dejaba abierta la posibilidad de desbordar el tamaño de los contratos y sobrescribir ciertos tipos de contratos.
Dicho error se solucionó con una actualización en Solidity, el lenguaje de programación de Ethereum, y marcó el final de un año complejo para los desarrolladores de Ethereum. Un panorama similar al actual, pues durante 2018 la propuesta de reducción de recompensas por bloque, la caída del precio y los cambios anunciados para el último trimestre del año, han puesto en duda el estado actual de “la computadora blockchain”.
Imagen destacada por PhotoBank / stock.adobe.com