En enero de este año, los expertos en criptomonedas concurrieron a la Universidad de Stanford para asistir a la conferencia “Análisis de protocolos blockchain e ingeniería de seguridad 2018” (“BPASE‘18”, por sus siglas en inglés), donde se discutieron los métodos formales, el análisis empírico y la modelización de riesgo en los protocolos de blockchain. Uno de los oradores fue Russell O’Connor (PhD), de Blockstream, que dio a conocer su idioma de programación, Simplicity, anunciado inicialmente el otoño pasado.
Simplicity es un nuevo lenguaje de bajo nivel basado en el cálculo de secuentes que permite que los contratos inteligentes definidos por los usuarios puedan ser evaluados en una blockchain pública. A diferencia de otros lenguajes de programación disponibles, que conllevan el riesgo de actos de piratería y ataques por denegación del servicio, Simplicity fue diseñado para evitar estos peligros y, además, para mejorar la privacidad mediante el uso de árboles de sintaxis abstracta de Merkle (MAST, por sus siglas en inglés).
En su charla de la BPASE, O’Connor describió dichas ventajas antes de abocarse de lleno a Simplicity. Habló de su semántica denotativa, donde un sistema de tipos de apenas nueve combinadores posibilita razonamientos sencillos con asistentes de prueba estándar; y resumió su semántica operacional, donde una máquina abstracta diseñada para evaluar programas de Simplicity define sus costos temporales y espaciales.
Como señala O’Connor, los contratos inteligentes de criptomonedas se enfrentan a verdaderos desafíos porque necesitan “gestionar millones de dólares con un segmento de código puntual que solo se ejecutará una vez y que tiene que funcionar en el ámbito hostil que constituye una blockchain pública”. Él se mostró convencido de que diseñar un lenguaje que sea compatible con la verificación formal desde el principio es la mejor manera de superar dichos desafíos.
Ya se puede acceder en línea al seminario completo sobre Simplicity de la BPASE ‘18, así como también conocer más detalles en el trabajo de O’Connor, “Simplicity: un nuevo lenguaje para las blockchains”.