David Tarditi, vicepresidente de ingeniería en CertiK, una empresa dedicada a la seguridad en cadenas de bloques, explicó las principales amenazas que enfrentan los contratos inteligentes de Ethereum y otras blockchains. Además, brindó un breve resumen sobre cómo prevenirlas y afrontarlas, durante su exposición en la conferencia Ethereum Rio 2022, ayer, 15 de marzo.
La proliferación de los protocolos de finanzas descentralizadas (DeFi, por sus siglas en inglés) ha llevado a que estas plataformas sean blanco de numerosos ataques por parte de hackers en los últimos dos años. Como explicó Tarditi en su alocución, más de USD 1.300 millones se perdieron como consecuencia de estos robos informáticos en 2021.
Entre los casos más importantes de hackeos a DeFi el año pasado, el especialista citó lo ocurrido con Uranium, con pérdidas de USD 50 millones; Compound, con un saldo negativo de USD 90 millones en recompensas mal distribuidas en el mes de octubre; y bZx, que perdió USD 55 millones en noviembre por un ataque phishing por correo electrónico y también padeció repetidos ataques en 2020.
También en 2022 se siguen sucediendo estos eventos, como les pasó a los protoclos Qubit, Wormhole y Meter.io. CriptoNoticias ha reportado sobre estos casos con bastante frecuencia desde mediados de 2020.
Con respecto a este tema, el orador explicó que su empresa ha realizado más de 1.400 auditorías de contratos inteligentes en los últimos seis meses, las cuales arrojaron un total de 16.400 problemas, 5.300 de ellos de índole crítica para la seguridad del protocolo.
Los principales riesgos para los contratos inteligentes en Ethereum
Para profundizar más en esta cuestión, David Tarditi enumeró cinco vulnerabilidades que pueden enfrentar los protocolos de finanzas descentralizadas. Asimismo, contó cómo potenciar la seguridad para reducir el riesgo de padecerlas.
1. Centralización
Por lejos, es el principal problema encontrado por Tarditi y su equipo en los contratos inteligentes auditados. Hallaron nada menos que 3.000 casos de centralización en 1.400 auditorías. Es decir, más de 2 errores o fallas por contrato.
La centralización en contratos inteligentes en Ethereum se da cuando existe un «dueño» o ente centralizado que puede alterar balances, distribuir tokens, hacer retiros de fondos, actualizar el contrato o modificar sus parámetros a su antojo, entre otras funciones sensibles, explicó el expositor.
Precisamente, la esencia de estos contratos y de las DeFi, como su nombre lo indica, es eliminar al intermediario. En otras palabras, el funcionamiento del protocolo debe estar automatizado y regido por el propio código, sin posibilidad de que la empresa desarrolladora o cualquier otra persona lo modifique según su conveniencia y criterio. Esta centralización puede ser aún más peligrosa cuando un hacker toma el control.
Algunas maneras de evitar que se dé esta situación, según Tardini, incluyen eliminar ese rol privilegiado del código, asegurar las llaves privadas mediante una wallet multifirma o bloqueo de tiempo y apelar a una organización autónoma descentralizada (DAO) para la toma de decisiones comunitarias.
2. Problemas de lógica y corrección
Las fallas de lógica y corrección en los contratos inteligentes tienen que ver con aquellos errores que impiden su funcionamiento esperado. Un ejemplo de ello sería un mal cálculo en las recompensas por el staking de una criptomoneda o la falta de actualización de alguna variable. También se incluyen aquí los errores de programación en el código.
De los casos analizados surgieron 1.209 problemas de este estilo. Aquí podrían encuadrarse los episodios de Uranium y Compound mencionados con anterioridad. De acuerdo con lo expuesto por Tarditi, estos se dieron debido a la «omisión de un solo carácter en el código» que llevó a un mal funcionamiento del protocolo que los hackers pudieron explotar.
¿Qué se puede hacer para prevenir estas fallas? Lo principal es ser muy preciso y meticuloso con los documentos de diseño y el whitepaper, llevar a cabo una revisión del código y desarrollar pruebas para detectar estos posibles problemas.
3. Complicaciones con los retiros
La tercera amenaza para los contratos inteligentes de Ethereum según David Tarditi son las fallas o complicaciones con los retiros de fondos. Este es un tipo de vulnerabilidad que se dio mucho menos en los casos estudiados; solo se detectó en 142 contratos, es decir, casi el 10% de las fallas de lógica y corrección.
Un ejemplo en esta tercera categoría sería el bloqueo de fondos en un contrato inteligente, sin la posibilidad de removerlos por parte del usuario. Es algo que se puede corregir siguiendo los consejos del punto anterior al momento de elaborar, probar y corregir el código del protocolo.
4. Control de accesos
Los problemas con los accesos son la cuarta amenaza enumerada por este experto. La detectaron en 120 contratos inteligentes durante sus auditorías.
Parecido al primer punto de esta lista, la vulnerabilidad se produce cuando cualquier persona puede ejecutar una operación sensible del contrato pese a que no debería poder hacerlo. En este caso, no se daría por el hecho de que este usuario posea un rol privilegiado, sino que ocurre a partir de una falla en el código que le permite hacerse con esa potestad.
Nuevamente, se trata de un problema que se puede detectar a partir de las buenas prácticas ya mencionadas con anterioridad. Al respecto, Tarditi destacó que estos procesos deben repetirse exhaustivamente cada vez que se realiza una modificación en el código de un contrato inteligente.
5. Falta de límites
Por último, podría darse en un contrato inteligente el problema de la falta de límites. Un caso potencial sería el establecimiento de tarifas; si estas no se limitan y ascienden demasiado, podría perderse una gran parte del valor bloqueado en el contrato al momento de ejecutar una liquidación o cualquier otra función.
Tal y como reportó este medio, en 2021 las tarifas de Ethereum tuvieron precios muy elevados a causa de la congestión que experimentó la red.
El problema de la falta de límites en contratos inteligentes se dio en menor medida según la investigación de Tarditi, ya que se detectaron 96 fallas de este estilo.
Los contratos inteligentes de Ethereum, en busca de la optimización
Si hay algo que destaca a la red de Ethereum es la seguridad y escalabilidad que ofrece para operar con herramientas como los contratos inteligentes. Es lo que más la diferencia de Bitcoin y lo que la separa de sus principales competidoras, que nunca llegaron a hacerle sombra.
Sin embargo, está claro que todavía quedan cosas por mejorar, y en eso trabajan expertos como David Tarditi. A partir del conocimiento de los peligros y la aplicación de las recomendaciones anteriores, puede generarse un entorno más seguro que mitigue los ataques y aporte al crecimiento de la adopción de esta red.