IELE (KEVM)

image

IELE es una máquina virtual que ejecuta y verifica contratos inteligentes, y también proporciona un lenguaje legible para humanos, orientado a los desarrolladores de blockchain.

IELE fue diseñado utilizando métodos formales para abordar las preocupaciones de seguridad y corrección inherentes a la escritura de contratos inteligentes Solidity en Ethereum. Cuando se escribe un contrato inteligente en IELE, es más seguro y es más fácil de verificar su corrección. Se beneficia de una estructura de lenguaje fácil de usar y legible, y el rendimiento general mejora.

La máquina virtual de Ethereum (EVM) fue la primera que se desplegó en una red de blockchain. Por eso muchos se refieren a Ethereum, como la cadena de bloques de computación; fue la primera en permitir a los programadores ejecutar cálculos en la cadena de bloques.

Esto, en su momento, se opuso a Bitcoin, que sólo puede almacenar datos de transacciones (esencialmente lectura/escritura). El enfoque fue un hito en el espacio de la cadena de bloques, y además tiene muy buenas capacidades: es turing-completo (140 opcodes, o comandos de máquina, están disponibles para la VM) , cuenta con un compilador de lenguaje intermedio que convierte Solidity a los opcodes.

El problema, sin embargo, es que aunque la EVM es turing-completa por definición, no lo es por ejecución, y ello es por las tasas de gas. El EVM introdujo un novedoso enfoque para mantener la red descentralizada autosuficiente llamado gas. Cada vez que un contrato inteligente quiere ejecutar algún código de máquina, necesita tener un saldo de gas proporcionado por el emisor.

El problema, como muchos han experimentado, es que mientras el EVM puede ser turing-completo por definición, está limitado por el gas disponible proporcionado al contrato inteligente. En esencia, solo puede hacer lo que se le permite hacer, lo que impide la verdadera turing completa.

Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira de cinta de acuerdo con una tabla de reglas. A pesar de su simplicidad, una máquina de Turing puede ser adaptada para simular la lógica de cualquier algoritmo de computador y es particularmente útil en la explicación de las funciones de una CPU dentro de un computador. En la teoría de computadoras reales y virtuales, de los lenguajes de programación y de otros sistemas lógicos, un sistema* Turing completo *es aquel que tiene un poder computacional equivalente a la máquina de Turing universal. En otras palabras, el sistema y la máquina universal de Turing pueden emularse entre sí.

Desde finales del 2020, los desarrolladores de Cardano han tenido un puente hacia la comunidad Solidity/Ethereum a través de la Máquina Virtual Ethereum K (KEVM), una implementación del EVM especificada en el framework (marco) K, el cual permite a los desarrolladores utilizar las herramientas de verificación formal que K produce para comprobar la corrección de un contrato.

El marco K es lo que se conoce como un lenguaje de programación de marco semántico. Significa que formaliza matemáticamente, de forma rigurosa, el lenguaje de programación, una vez, y luego ese artefacto matemático deriva automáticamente, o semi automáticamente, todas las herramientas que se necesitan para ese lenguaje.

IELE comenzó hace un tiempo, fue cuando Runtime Verification (la compañía desarrolladora), estaba haciendo los compromisos iniciales con IOHK en 2018. IELE en realidad comenzó como un lenguaje de diseño, para que fuera más fácil de hacer razonamiento con él que EVM. IELE ahora necesita ser actualizado y por eso se está trabajando en su actualización, para llegar al punto de un estado estable como con la KEVM.

IELE, (que lleva el nombre de una criatura parecida a un hada, de un mito rumano) , va un paso más allá. Es una máquina virtual que ejecuta contratos inteligentes y también proporciona un lenguaje legible para humanos, y orientado a los desarrolladores de blockchain . IELE fue diseñado con métodos formales en mente para resolver las preocupaciones de seguridad y corrección inherentes a la programación de contratos inteligentes Solidity dirigidos a Ethereum, facilitando así el camino hacia niveles elevados de seguridad, escalabilidad y programabilidad.

IELE tiene un parecido con la representación intermedia del compilador LLVM. Esto permite aprovechar la gran riqueza de conocimientos disponibles en la comunidad LLVM, específicamente, el trabajo que se ha dedicado a programar una optimización del compilador segura y eficaz pasa por encima de LLVM IR. Gran parte del esfuerzo realizado en el compilador LLVM también se puede trasladar al optimizador IELE.

La red de desarrollo de IELE proporciona un mejor rendimiento y está basada en registros, lo que significa que puede hacer uso de una gama más amplia de análisis y optimizaciones que una máquina virtual basada en pila como KEVM. Esto permite realizar predicciones más precisas sobre el coste del gas, así como reducir el coste del gas en los contratos.

La depuración de los contratos es más fácil, porque IELE tiene un código de error de estado diferente para cada una de las excepciones que pueden ocurrir mientras se ejecutan las funciones dentro de un contrato.

Algunos desarrolladores podrían haber rechazado en algún momento, la idea de ingresar al espacio blockchain, ya que probablemente esto habría significado aprender un lenguaje de programación completamente nuevo. Como resultado directo del enfoque innovador de Runtime Verification, cualquier desarrollador que desee involucrarse en contratos inteligentes puede programarlos en el lenguaje con el que se sienta cómodo, incluido Solidity. La salida resultante se ejecutaría correctamente en cualquier blockchain que soporte IELE, independientemente del idioma de origen.

Cuando IELE sea implementado, la oportunidad de desarrollo será incluso más amplia. IELE opera más parecido a un pasaporte que a una máquina virtual, abriendo las puertas a una gran cantidad de talentos nuevos y únicos.

Este logro ofrecerá a los desarrolladores y empresas, otro incentivo adicional para migrar de Ethereum y participar en la blockchain Cardano . La apertura, inclusión, e interoperabilidad son las bases sobre la cual se construyó Cardano.

Evolución Cardano. Desarrollos en Cardano.

2 Likes