Lenguajes de programación emergentes Scilla y Vyper para contratos inteligentes

Scilla & amp; Vyper

La aparición de cadenas de bloques y contratos inteligentes ha generado un interés generalizado en la creación de dapps y el aprovechamiento de los contratos inteligentes con fines prácticos. Solidity, un lenguaje de contrato inteligente de Ethereum, es el lenguaje de programación principal utilizado para la red pública de blockchain de Ethereum y sigue siendo el lenguaje de contrato inteligente más popular y generalizado..

A pesar de su éxito y uso generalizado para escribir contratos inteligentes en Ethereum, Solidity es un lenguaje de programación relativamente nuevo, naturalmente susceptible a errores y algunas fallas lógicas de alto nivel. De la demanda de creación de contratos inteligentes y métodos de seguridad mejorados para escribirlos, han surgido los lenguajes de programación Vyper y Scilla..

Scilla & amp; Vyper

Solidez & Contratos inteligentes

La solidez fue propuesta por Gavin Wood en 2014 y es el lenguaje de programación dominante para escribir contratos inteligentes. Está diseñado específicamente para la máquina virtual Ethereum (EVM) y presenta algunas documentación sobre que es y como usarlo.

Solidity es un lenguaje de programación de alto nivel que se compila en un código de bytes compatible con EVM que se ejecuta en los nodos de Ethereum. En particular, Solidity es un lenguaje de programación relativamente simple (en comparación con otros) con una sintaxis muy familiar que se parece a JavaScript. La solidez también se construye con algunas consideraciones importantes como un lenguaje de contrato inteligente para la ejecución en cadenas de bloques, incluida la necesidad de que los contratos inteligentes sean deterministas..

Guía de solidez

Leer: ¿Qué es la solidez? Nuestra guía sobre el lenguaje de los contratos inteligentes de Ethereum

Solidity está disponible para aprender en múltiples plataformas educativas en línea, incluyendo Udemy – y tiene varios extensos libros escrito sobre ello. Los efectos de red de Solidity lo han consolidado como el lenguaje de programación de referencia para contratos inteligentes y dapps basados ​​en Ethereum..

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

A pesar de su gran popularidad, la existencia de Solidity como un lenguaje de programación específico de EVM limita su uso para otras plataformas blockchain. Además, las preocupaciones de seguridad en torno a los lenguajes de alto nivel y sus problemas potenciales han llevado a un énfasis en la auditoría inteligente de contratos y en lenguajes más simples y seguros. De alto perfil trucos y la investigación estudios revelar el tamaño de las vulnerabilidades inevitablemente ha llevado a una necesidad urgente de mejores prácticas de contratos inteligentes.

Vyper

Vyper es un lenguaje de programación experimental que es similar a Solidity en que también está diseñado específicamente para EVM. Vyper es sintácticamente similar a Python y está orientado a contratos como Solidity.

Sin embargo, Vyper está diseñado con los objetivos específicos de seguridad, simplicidad y auditabilidad. Esto es en gran parte el resultado de problemas de seguridad en las primeras iteraciones de contratos inteligentes. Como consecuencia de los principios y objetivos de Vyper, ejemplos explícitos de características que hace a propósito no tener son perfilado como:

  • Modificadores
  • Herencia de clase
  • Función & Sobrecarga del operador
  • Llamada recursiva
  • Bucles infinitos

En particular, la llamada recursiva hace que sea imposible establecer un límite superior en los límites de gas y puede conducir a ataques de límite de gas. Además, la eliminación de los modificadores se realizó teniendo en cuenta la auditabilidad, ya que pueden hacer que el código sea engañoso y difícil de interpretar desde una perspectiva legible por humanos..

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

Vyper se despoja de las características vulnerables a la seguridad, pero también agrega algunas funciones clave que incluyen la verificación de límites y desbordamiento, la capacidad de decisión y la escritura fuerte. En lo que respecta a los límites de gas, la capacidad de decisión permite a un desarrollador calcular un límite superior preciso para el consumo de gas de una llamada de función.

Una distinción importante entre Vyper y Solidity es que, aunque se ven similares, Vyper elimina gran parte de los arquetipos orientados a objetos presentes en Solidity. El énfasis en la simplicidad de Vyper también permite que sea mucho más legible en casos en los que es necesaria la auditoría por parte de partes no muy familiarizadas con la programación. El uso potencial de Vyper es, por lo tanto, atractivo para muchos dapps comerciales prácticos que se pueden escribir en Vyper..

Es importante tener en cuenta las consideraciones de seguridad a nivel del lenguaje de programación. La simplicidad a menudo conduce a una complejidad lógica menos necesaria y puede proporcionar inherentemente una mejor seguridad. Vyper tampoco está diseñado necesariamente para reemplazar a Solidity, sino que está diseñado para proporcionar un lenguaje más simple y seguro como una opción alternativa para cuando sea necesario.

Vyper incluye un Protocolo de mejora de Vyper (VIP) e incluso tiene un editor de texto con un compilador para jugar con el código Vyper. Ethereum Casper FFG la implementación también está escrita en Vyper.

Cebolla albarrana

Cebolla albarrana es un lenguaje de contrato inteligente de nivel intermedio utilizado por Zilliqa. Scilla está diseñado explícitamente teniendo en cuenta la seguridad y la seguridad de los contratos inteligentes. Es importante destacar que se centra en proporcionar verificación formal de contratos inteligentes.

Guía Zilliqa

Leer: Guía para principiantes de Zilliqa

Verificación formal está diseñado para proporcionar garantías estáticas de contratos inteligentes antes de que se comprometan de manera inmutable con la cadena de bloques. La verificación formal de los contratos inteligentes es cada vez más frecuente en el campo y varias plataformas, incluidas Tezos y Cardano, la buscan y aplican activamente. El uso de la verificación formal debería reducir sustancialmente las instancias de código defectuoso comprometido con blockchains y, posteriormente, reducir la necesidad de auditorías de contratos inteligentes intensivas por parte de terceros..

Scilla está cuidadosamente diseñado para ser lo suficientemente expresivo como para construir dapps útiles, sin dejar de garantizar el razonamiento formal sobre el comportamiento del contrato. Al igual que Vyper, el principio principal es la simplicidad y la seguridad sobre la expresividad. Sin embargo, una distinción importante que debe hacerse sobre Scilla es que es una idioma de nivel intermedio, lo que significa que está destinado a ser un destino de traducción para lenguajes de alto nivel y, posteriormente, se compila en un código de bytes ejecutable. Como resultado, el idioma es más difícil de entender que un idioma de alto nivel como Solidity..

Scilla separa la comunicación y la computación, lo que tiene importantes consecuencias sobre cómo se ejecutan los contratos. Los contratos se estructuran como comunicar autómatas donde los cálculos en el contrato se ejecutan como transiciones atómicas sin involucrando a otras partes. Además, una instancia de participación requerida de otra parte da como resultado un final de la transición comunicado explícitamente. Los efectos específicos del contrato, como las transiciones, se pueden desacoplar de las interacciones de la cadena de bloques, como los mensajes y el envío / recepción de fondos..

Además, Scilla proporciona separación entre eficaz y puro cálculos junto con la separación entre invocación y continuación. Con respecto a los cálculos puros y efectivos, Scilla se inspira en la programación funcional citando:

“Al diseñar cuidadosamente la semántica de la interacción entre los aspectos del lenguaje puro e impuro, aseguramos una serie de propiedades fundamentales sobre las transiciones de contrato, como el progreso y la conservación de tipos, al mismo tiempo que los hacemos susceptibles de verificación interactiva y / o automática con herramientas independientes”

La separación de invocación y continuación se refiere a la estructuración de contratos como autómatas comunicantes para proporcionar un CPS modelo computacional. Usando este modelo con continuaciones explícitas, lenguajes como Solidity se pueden traducir directamente a Scilla sin comprometer la integridad de la estructura de los autómatas..

El componente de verificación formal de Scilla está habilitado por su incrustación en el Asistente de prueba de Coq, un sistema de gestión de pruebas formal diseñado para proporcionar pruebas verificadas mecánicamente de contratos inteligentes y aplicaciones distribuidas. El resultado es la verificación formal de contratos que razonan tanto sobre las propiedades de la seguridad y vivacidad. Exactitud en sistemas distribuidos se puede separar en seguridad y vitalidad. Según Zilliqa:

La seguridad es cuando “nada sale mal“- Esta es una garantía de que algo malo Nunca suceder. En consenso, esto es cuando no hay dos procesos que decidan sobre valores diferentes. Otro ejemplo sería que no existe un punto muerto en los sistemas de transacciones distribuidas. La seguridad tiene importantes consecuencias en la integridad general de los contratos inteligentes a largo plazo.

Vivacidad es donde “ciertas cosas pueden suceder eventualmente”- Una garantía de que algo bueno finalmente suceder. La palabra “eventualmente” tampoco implica un límite de tiempo, pero si el sistema funciona lo suficiente, la vida está garantizada. Por ejemplo, en consenso, todos los procesos eventualmente decidirán sobre un valor. Otro ejemplo es la integridad de los detectores de fallas que eventualmente detectarán procesos defectuosos..

El desarrollo de Zilliqa de Scilla en paralelo con la formalización y su incorporación en Coq debería resultar una decisión valiosa para la seguridad futura de los contratos inteligentes que se ejecutan en su blockchain de alto rendimiento..

Finalmente, Scilla es independiente de la cadena de bloques y se puede usar para otras cadenas de bloques. Sin embargo, todavía se encuentra bajo investigación y desarrollo activos, principalmente con el equipo de Zilliqa. La Scilla sitio web también proporciona un tutorial y IDE en línea por probar el idioma.

Conclusión

La innovación continua en el desarrollo de contratos inteligentes seguramente verá el surgimiento de más lenguajes de programación y soluciones orientados a los contratos para abordar su seguridad. La necesidad de seguridad de las dapps y los contratos inteligentes es de suma importancia considerando las cantidades de valor que se transfieren a través de grandes redes de criptomonedas como Ethereum..

Las iteraciones iniciales de contratos inteligentes mostraron un potencial significativo en sus capacidades futuras. Ahora, una nueva clase de desarrollos se centra en mejorar su seguridad a nivel de lenguaje de programación para garantizar su sostenibilidad..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map