Vitalik Buterin comentó recientemente en su cuenta de X que una de las cosas que más le entusiasma de la Inteligencia Artificial (IA) es el papel que puede desempeñar en la mejora de la seguridad de blockchain. Sobre todo, porque esta tecnología puede ayudar a detectar bugs, hacer verificaciones formales y, sobre todo, reducir de forma significativa los riesgos dentro del ecosistema Ethereum, aunque es aplicable a cualquier proyecto blockchain.
One application of AI that I am excited about is AI-assisted formal verification of code and bug finding.
Right now ethereum’s biggest technical risk probably is bugs in code, and anything that could significantly change the game on that would be amazing.
— vitalik.eth (@VitalikButerin) February 19, 2024
El entusiasmo de Buterin es entendible, ya que uno de los grandes usos de la IA es, precisamente, ayudar a los desarrolladores a automatizar tareas, como pruebas y procesos de integración. Además de detectar errores en el código que están creando. La pregunta que cabe hacerse es cómo de cierto es que la IA pueda ayudar a mejorar la seguridad en blockchain.
Blockchain e IA
Es innegable que la Inteligencia Artificial (IA) tiene el potencial de revolucionar el desarrollo de software blockchain. Especialmente, acelerando y simplificando el proceso de creación de aplicaciones descentralizadas (dApps) seguras y eficientes.
La aplicación de IA puede verse en la actualidad en plataformas como ChainLink, donde es utilizada para automatizar la recopilación y procesamiento de datos en tiempo real para sus oráculos blockchain. La finalidad es hacer que sus oráculos sean mucho más exactos y, en consecuencia, que la información proporcionada permita a sus consumidores tener una mayor seguridad.
Blockchain como Defensa al abuso de la IA
Otro ejemplo de cómo la Inteligencia Artificial ha llegado al sector blockchain lo vemos con Azure Blockchain Workbench. Quizá no conozcas esta herramienta, pero esta solución de Microsoft integra lo mejor del sector de la IA (com GitHub Copilot, basado en ChatGPT) y permite integrar herramientas de IA para el desarrollo e implementación de dApps.
Así, puedes desarrollar aplicaciones que usan la infraestructura de Azure, la misma que sostiene a Bing Chat y ChatGPT, y crear aplicaciones descentralizadas en redes como Ethereum, Hyperledger, Kaleido o soluciones privativas que están integradas en Azure. Sin duda, hablamos de un universo de posibilidades de desarrollo blockchain, donde la IA tiene un papel fundamental al ayudarnos a acelerar esos procesos de desarrollo.
Accediendo a funcionalidades únicas
Por supuesto, en ambos casos, tanto en ChainLink, como en Azure, estamos accediendo a capacidades únicas. Capacidades que nos ayudarán a mejorar nuestro desarrollo blockchain. Sobre todo, porque entre dichas funcionalidades nos encontramos cosas tan útiles como:
- Automatización de tareas repetitivas. La IA puede automatizar tareas tediosas y repetitivas que consumen tiempo valioso para los desarrolladores, como la creación de contratos inteligentes, la gestión de claves privadas y la verificación de código. Esto libera a los desarrolladores para que se concentren en tareas más creativas y estratégicas.
- Detección de errores y vulnerabilidades. Los algoritmos de IA pueden analizar el código de blockchain en busca de errores y vulnerabilidades de seguridad, mejorando la confiabilidad y robustez de las dApps. Esto es crucial para proteger los activos digitales y prevenir ataques cibernéticos.
- Optimización del rendimiento. La IA puede analizar el comportamiento de las dApps y sugerir optimizaciones para mejorar su rendimiento, como la reducción del tiempo de procesamiento de transacciones, disminución del consumo de energía y lo que es más importante: reducir su impacto en las comisiones que los usuarios deben pagar al usar una dApp.
- Desarrollo de interfaces de usuario intuitivas. La IA puede ayudar a crear interfaces de usuario intuitivas y fáciles de usar para las dApps, facilitando su adopción por parte de usuarios no técnicos. La mejor dApp del mundo no vale de nada si no es intuitiva y es demasiado compleja de utilizar.
- Generación de datos sintéticos. En este punto, la IA es excelente, ya que puede generar datos sintéticos realistas para pruebas y desarrollo, lo que permite a los desarrolladores probar sus dApps en un entorno seguro sin necesidad de usar datos reales y sensibles.
La cara oculta de la Inteligencia Artificial
Sin embargo, en este punto debemos preguntarnos si eealmente la IA puede hacer todo esto mágicamente. La respuesta corta es: No. Pero quizás la respuesta corta no te convenza, especialmente si eres un fan de la IA. Así que desarrollemos mejor este punto.
Primero, es innegable que la Inteligencia Artificial es una gran ayuda. Pero es solo eso: un ayudante. No es que la IA mágicamente te convierta en el mejor programador blockchain. Tampoco hará de tus dApps un programa inexpugnable a prueba de hackers. Si piensas así, has perdido la batalla por la ciberseguridad.
La realidad es mucho más dura. Un claro ejemplo podemos verlo en un artículo publicado en 2023 por la conocida revista WIRED. Dicho artículo, titulado: «The Huge Power and Potential Danger of AI-Generated Code», deja claro que las IA pueden hacer que nuestros programas sean más vulnerables.
Esto se debe a que las IAs son propensas a generar código erróneo, poco optimizado e incluso inútil, si no cuentan con la supervisión y revisión humana necesaria. Básicamente, el artículo deja claro que las IA son muy malas para generar código nuevo e innovador.
Sin creatividad
Hay que tener en cuenta que las IAs utilizan data del pasado para darte una respuesta, no innovan, ni crean nada nuevo. De hecho, sus limitadas capacidades de comprensión y creatividad, convierten esta herramienta un enorme peligro, si no cuenta con la supervisión humana correspondiente.
Si has usado una IA para generar texto, seguramente habrás visto este fallo. En muchas ocasiones, las IAs generan texto sin sentido, que no responde a lo que estás pidiendo o que directamente te mienten al inyectar datos falsos. Lo mismo está pasando en otras áreas científicas. En The Guardian, recientemente se han hecho eco de la creciente alarma de estudios científicos falsos impulsados por IA. Esta es una realidad que también afecta al desarrollo de software. Como el caso de IA aplicada a blockchain.
Así, de momento, parece que los programadores humanos aún tienen mucho trabajo por delante y que no serán fácilmente sustituidos por una IA. Los humanos tenemos la capacidad de innovar, de pensar lateralmente y fuera de la caja, con el fin de crear cosas nuevas. En la actualidad, una IA no tiene dichas capacidades, lo que limita su papel en la generación de código.
Inteligencia Artificial para pruebas y automatización
Lo que sí puede hacer una IA es ser instruida para hacer una tarea repetitiva. Una tarea en la que usando grandes conjuntos de datos pueda poner a prueba nuestras aplicaciones. Imagina que estás generando una aplicación de finanzas descentralizadas y quieres probarla en todas las formas posibles para detectar fallos, problema de seguridad o de lógica en tu aplicación. Hablamos de probar cientos de funciones, miles de líneas de código y millones de permutaciones operativas distintas. ¿Vas a probarlas una a una, hasta que detectes una falla, la arregles y vuelvas a reiniciar la cuenta? La respuesta es no. Nadie hace eso.
En la actualidad, se prueban los casos más comunes, con datos pre-programados y con eso se busca detectar algún problema. Funciona, pero siempre quedan los casos extremos y muchas veces es ahí donde los fallos o bugs se ocultan. Bugs que terminan costando cientos de millones de dólares en fondos robados a sus usuarios. Como nadie quiere que esto ocurra, necesitamos herramientas para poder automatizar todo esto y llevarlo al nuevo nivel: la herramienta es la IA.
Afrontando el tedio del desarrollo
A una IA le puedes dar una tarea repetitiva y tediosa e indicarle que la ejecute hasta que termine y te ofrezca al final un informe de la ejecución de dichas tareas. La IA hará lo que le has programado hacer y, finalmente, te entregará el informe. En su lugar, si pones a una persona, no solo te llevará más tiempo, sino que la tasa de errores será más alta. Con la IA, ganas tiempo y reduces errores. Por ello, la opción a elegir será la IA, pero con una persona encargada de controlar a la IA para que pueda analizar la información que genera y mantener las funciones de la IA en consonancia con los requerimientos del proyecto.
De esta forma, tu empresa gana. Por un lado, mejora tu ciclo de desarrollo, puedes probar de forma más exhaustiva tu software, y reduces potenciales problemas de seguridad. Esto, que es clave en blockchain, lo es especialmente en DeFi, un espacio donde existen protocolos tan complejos e interfuncionales que la tarea de probar todas las combinaciones de uso es humanamente imposible.
Programa, prueba y despliega
Como desarrollador blockchain, tener un ayudante con esas capacidades facilita que tu ciclo de «Programa, prueba y despliega» sea lo más corto posible. Te permite dedicarte a desarrollar e innovar en tu producto y probarlo de forma más intensiva con IA.
Al final, Vitalik tiene razón en una cosa: la IA puede ayudar a mejorar blockchain, haciendo que los ciclos de prueba sean más exhaustivos y, por tanto, mejorando la seguridad y estabilidad del software generado. Pero aún habrá brechas, porque el código nuevo que has ideado en un fin de semana es algo que la IA no entiende. Lo que da oportunidad a que el próximo fallo o bug se cuele y que el hacker de turno lo aproveche para drenar un protocolo DeFi.
Link del artículo original
Si el presente artículo, video o foto intrigue cualquier derecho de autor por favor señálelo al correo del autor o en la caja de comentarios.