La versión beta de los contratos inteligentes programables ya está disponible en la IOTA 2.0 DevNet
TL;DR:
IOTA entra en la Web3. Con el lanzamiento de la versión beta de IOTA Smart Contracts, IOTA ofrece contratos inteligentes programables en la IOTA 2.0 DevNet, incluyendo soporte temprano para la Máquina Virtual Ethereum (EVM) y contratos inteligentes escritos en Solidity, Go (TinyGo) y Rust. Actualmente estamos trabajando en la ampliación del soporte de la EVM, una mayor optimización y la portabilidad de los contratos inteligentes a la red principal de IOTA. Junto con la integración del marco de Tokenización, ofrecerá una poderosa solución para la interoperabilidad y composibilidad sin fisuras, sin confianza, entre los contratos inteligentes en IOTA. Siga las instrucciones que aparecen a continuación y ¡vamos a CONSTRUIR (BUIDL)!
Con el lanzamiento de la versión beta de los Contratos Inteligentes de IOTA, la Fundación IOTA da un gran paso adelante para añadir una nueva capa de utilidad a IOTA, ofreciendo posibilidades ilimitadas para construir aplicaciones descentralizadas (dApps) y otras innovaciones Web3. Nuestros objetivos con los Contratos Inteligentes IOTA son abordar algunos de los inconvenientes de las soluciones existentes (tarifas, escalabilidad, interoperabilidad y composibilidad limitada) y crear un ecosistema de nuevas oportunidades para los constructores y los primeros en adoptarlos para capitalizar directamente el crecimiento explosivo de nuestra industria a medida que avanzamos.
En un esfuerzo por la interoperabilidad y la facilidad de uso, IOTA Smart Contracts ahora es compatible con la máquina virtual de Ethereum (EVM) y con cualquier contrato inteligente escrito en Solidity. Si bien se trata de una implementación temprana, ya proporciona una amplia compatibilidad, tendiendo un puente entre el mayor ecosistema de contratos inteligentes y la capa base de IOTA. Esto significa que los contratos de Solidity pueden ser fácilmente portados a IOTA, reduciendo el tiempo de implementación y beneficiándose del vasto ecosistema de herramientas y productos de Solidity disponibles en el mercado hoy en día. Esto ya incluye el acceso completo a la billetera MetaMask.
Las cadenas de contratos inteligentes pueden desplegarse sin pedir permiso, sin subastas y sin costes ni fricciones adicionales. Las tarifas para la ejecución de los contratos inteligentes pueden ser fijadas por los propietarios de la cadena, lo que creemos que conducirá a que varias cadenas compitan por el trabajo entre sí, lo que a su vez conducirá a las tarifas más bajas posibles para ejecutar un contrato inteligente en todas las opciones disponibles en el reino de las criptomonedas. De hecho, los desarrolladores de cadenas de contratos inteligentes tienen total flexibilidad para definir su cadena y su tokenomía. En el futuro podrían incluso fijar las tasas de transacción a cero y en su lugar recompensar a los validadores con sus tokens nativos, creando así sus propias economías y reduciendo masivamente las barreras de entrada para su dApp.
Además, se ha comenzado a trabajar para ofrecer una interoperabilidad total de los activos tokenizados en la capa base de IOTA que pueden ser transferidos y utilizados en cadenas de contratos inteligentes. Esto ofrecerá la capacidad de transferir activos entre diferentes cadenas de contratos inteligentes sin coste adicional, completamente sin confianza y sin incurrir en gastos de transacción, gracias a que la capa base de IOTA sin fees actúa como un puente atómico sin confianza. Creemos que esta característica particular por sí sola creará una utilidad sin precedentes para los mercados NFT y los desarrolladores en las finanzas descentralizadas (DeFi) y los intercambios descentralizados (DEX).
¿Qué hace que los Contratos Inteligentes de IOTA sean tan emocionantes?
Los Contratos Inteligentes de IOTA se construyeron principalmente para satisfacer la creciente demanda de nuestra industria de impulsar nuevas innovaciones, para reducir las barreras de entrada y crear un entorno para incorporar a miles de millones de usuarios a nuestras redes. La arquitectura técnica de las cadenas de contratos inteligentes fragmentados en combinación con un ledger DAG sin fees y altamente escalable ofrece una solución convincente para satisfacer los requisitos del mercado y resolver algunos de los problemas a los que se enfrentan las soluciones actuales.
Con la capa base de IOTA capaz de manejar más de 1000 transacciones por segundo (TPS) hoy en día (y mucho más en el futuro), creemos que es el ancla de confianza perfecta y la capa de seguridad compartida para los contratos inteligentes de IOTA. Gracias a la arquitectura DAG de la Tangle, somos capaces de ejecutar contratos inteligentes en paralelo y escalar horizontalmente: simplemente añadiendo más cadenas de contratos inteligentes, se desbloquea inmediatamente más rendimiento. Esta escalabilidad es posible al tiempo que se mantiene la plena composibilidad e interoperabilidad de todos los contratos inteligentes, simplemente aprovechando IOTA como un puente de activos sin confianza.
El entorno de desarrollo flexible hace posible que los desarrolladores de contratos inteligentes definan sus propias cadenas de contratos inteligentes, utilicen su lenguaje de contratos inteligentes preferido y definan los incentivos adecuados para usuarios y validadores por igual. Todo esto se hace para empoderar a los constructores con el ecosistema adecuado para escalar a la adopción de la corriente principal y eliminar las principales barreras de entrada a las que nos enfrentamos hoy en día.
Los aspectos más destacados de los contratos inteligentes de IOTA son:
- Activos nativos (L1 Tokens) para puentes de activos sin confianza, atómicos y sin fees. Interoperabilidad total entre todos los contratos inteligentes. Esto lleva el concepto de bloques de lego de DeFi al siguiente nivel, con todos los contratos inteligentes siendo totalmente componibles.
- Entorno de desarrollo flexible para construir tus dApps a la medida de tus necesidades. Los contratos inteligentes de IOTA le permiten utilizar su lenguaje preferido, la máquina virtual de contratos inteligentes, las tarifas autodefinidas para los usuarios, los incentivos para los validadores y la estructura del comité. La personalización de la dApp y la composibilidad son ahora posibles incluso en la capa de la red base.
-
Escalabilidad con sharding y los incentivos adecuados. IOTA Smart Contracts es una red de contratos inteligentes fragmentados, en la que cada cadena de contratos inteligentes está limitada por su propia escalabilidad y no es obstaculizada por el resto de la red. Lo que hace que esto sea emocionante es que cada cadena de contratos inteligentes puede definir sus propios incentivos y tarifas (potencialmente incluso sin fees), ofreciendo nuevas posibilidades para conseguir la adopción de la corriente principal con dApps.
-
Compatibilidad total con la máquina virtual de Ethereum (EVM), lo que permite portar fácilmente los contratos inteligentes y las herramientas del ecosistema establecido de Ethereum sin ninguna modificación o cambio. También ofrece una gran oportunidad para que IOTA haga un puente con Ethereum en una etapa posterior.
-
Desarrollar contratos inteligentes en Solidity, Rust y Go (TinyGo).
El objetivo principal de la versión beta es ayudar al equipo de IOTA a mejorar y optimizar nuestra solución. Esperamos que haya errores y aún más mejoras antes de un lanzamiento final del producto. Pero con esta versión beta, ya estamos animando a los constructores a empezar a darse cuenta de las oportunidades que ofrecen los contratos inteligentes de IOTA. Con esta versión, comenzamos a desbloquear toda la gama de posibilidades para que los desarrolladores construyan aplicaciones descentralizadas para NFTs, DeFi, Gaming (en particular Play-to-Earn) y el Metaverso.
¿Qué hay de nuevo?
Lanzada en marzo de este año, la versión alfa de IOTA Smart Contracts mostró cómo funcionan los contratos inteligentes en IOTA. Se podían generar múltiples cadenas y su estado estaba anclado en la capa 1 de la Tangle de IOTA. Los desarrolladores podían empezar a escribir contratos inteligentes en un entorno de pruebas en solitario, pero desplegarlos en una cadena no era posible en ese momento. Mientras que esto nos dio una buena visión general de la arquitectura de los contratos inteligentes IOTA y cómo los contratos inteligentes trabajarán con IOTA, no nos permitió ejecutar contratos inteligentes personalizados en una red pública. Eso cambia con esta versión beta.
En la versión beta, varios elementos clave han sido mejorados y añadidos para convertir la versión beta en una plataforma que puede ser utilizada por las partes interesadas que buscan desarrollar contratos inteligentes en la parte superior de IOTA.
Refactorización y compatibilidad
-
- El ledger GoShimmer UTXO, utilizado en la DevNet de IOTA 2.0, ha sido ampliado con nuevas características que soportan las cadenas de contratos inteligentes de IOTA, permitiendo la rotación de validadores e introduciendo nuevos aspectos de solicitud de contratos inteligentes y tokenización.
-
- La base de código completa del nodo Wasp ha sido refactorizada para adaptarse a la última versión de GoShimmer, haciéndola totalmente compatible con la IOTA 2.0 DevNet. Cualquiera puede ahora ejecutar sus propias cadenas de contratos inteligentes IOTA ancladas a la IOTA 2.0 DevNet o a una red privada basada en GoShimmer.
-
- Junto a esta refactorización, el algoritmo de consenso temporal de la versión alfa ha sido sustituido por una versión más robusta y modificada del algoritmo de consenso Honey Badger. También hemos incluido medidas de prevención del valor extraíble del minero (MEV) en la implementación del consenso.
-
- Todas las partes de los Contratos Inteligentes de IOTA han sido sometidas a una ronda exhaustiva de pruebas y perfiles automatizados para mejorar la fiabilidad y el rendimiento.
-
- La capa de la base de datos utilizada por los nodos de IOTA Wasp ha sido reemplazada por una implementación de mayor rendimiento basada en RocksDB.
Soporte experimental de Ethereum Virtual Machine (EVM)/Solidity
Además de los contratos inteligentes WASM basados en Rust y Go introducidos a principios de este año, hemos decidido añadir soporte para la Máquina Virtual Ethereum (EVM). Esto permite a los desarrolladores escribir contratos inteligentes Solidity dentro de una cadena EVM anclada a la Tangle de IOTA. El ecosistema de contratos inteligentes predominante gira principalmente en torno a las soluciones basadas en EVM, que conllevan una gran cantidad de experiencia de desarrolladores, materiales de aprendizaje y herramientas disponibles. Esto hizo que fuera una elección obvia para soportar una primera máquina virtual adicional. Nuestra primera implementación de EVM (que todavía consideramos experimental) es totalmente compatible con los contratos inteligentes existentes del ecosistema Ethereum y esperamos que reduzca la barrera de entrada para construir contratos inteligentes en IOTA y se integre más fácilmente con los ecosistemas existentes en otras cadenas.
Este soporte experimental consiste en una integración completa de EVM totalmente compatible con las herramientas existentes como MetaMask, Hardhat y Remix. Como usuario, puedes generar una cadena EVM, crear un suministro completo del token principal de esa cadena asignado a ti mismo y desplegar contratos que puedan trabajar entre sí. La interacción con los tokens y los datos de la capa 1 de IOTA no está disponible actualmente en esta versión, pero una implementación que hace esto posible está prevista para una futura versión de los contratos inteligentes de IOTA.
Soporte extendido para cadenas de contratos inteligentes por el ledger UTXO
Con la versión beta de IOTA Smart Contracts, hemos implementado nuevas características en el ledger UTXO de GoShimmer. El ledger proporciona ahora un nuevo y potente nivel de soporte para los Contratos Inteligentes IOTA y otras aplicaciones que se ejecutan en cadenas de contratos inteligentes. Incluye soporte para el aliasing de direcciones, restricciones de cadena, timelocks, opciones de fallback para peticiones en el ledger y muchas otras características.
Lo más importante es que el nuevo ledger UTXO soporta la identidad de la cadena independientemente de las claves privadas distribuidas necesarias para su funcionamiento. Esto significa que ahora podemos rotar los validadores en la comisión de forma totalmente transparente para la cadena y sus operaciones.
Solicitudes fuera del ledger
También son nuevas en esta versión las solicitudes fuera del ledger. Aunque es posible interactuar con los contratos inteligentes a través de las transacciones regulares de IOTA en la capa base, no siempre es la forma más eficiente y rápida de hacerlo. Esperar a que el mensaje se propague y se confirme lleva varios segundos, y los usuarios están limitados por la cantidad de rendimiento del ledger de IOTA.
En el futuro, vemos las solicitudes en el ledger mayormente como una forma de transferencias de activos atómicas y sin confianza entre contratos inteligentes en diferentes cadenas y entre carteras de usuarios de la capa base y cuentas en la cadena.
Las solicitudes fuera del libro añaden una alternativa de alto rendimiento a las transacciones atómicas en el libro, permitiéndole interactuar directamente con los nodos Wasp, sin tener que emitir una transacción en la capa base. Introduciéndose en la cadena y depositando tokens en ella, podrá enviar cualquier solicitud a los contratos inteligentes de la cadena de forma segura y utilizar esos tokens para cualquier tarifa, si procede, mientras interactúa con los contratos inteligentes de sus respectivas cadenas directamente. Este enfoque reduce la dependencia y la carga en la capa base de IOTA, mejora mucho el rendimiento y el tiempo que tarda en ejecutarse una función de contrato inteligente. Las solicitudes fuera del ledger también incluyen protección contra repeticiones.
Herramienta de esquema
A menudo hay una gran cantidad de plantillas que deben ser proporcionadas al escribir contratos inteligentes. No sólo es engorroso recrear esto cada vez que se desarrolla un contrato inteligente, sino que también puede ser propenso a errores y consumir mucho tiempo. Por lo tanto, la versión beta viene con una nueva herramienta para arrancar nuevos contratos inteligentes basados en Go (TinyGo) o Rust (compilados en binarios Wasm). Esta herramienta de esquema toma una descripción de esquema como entrada (definiendo la funcionalidad que se desea utilizar) y crea todo el código y las pruebas para la implementación, permitiendo al desarrollador centrarse en escribir el código que importa para el contrato. Todos los contratos inteligentes de prueba de concepto existentes dentro de la base de código escrita en Rust o Go (TinyGo) se han rehecho utilizando la herramienta IOTA Smart Contracts Schema. La Fundación IOTA seguirá utilizándola por defecto para cualquier nuevo contrato inteligente basado en wasm de aquí en adelante.
La herramienta Schema se ampliará en una versión posterior con aún más comodidad (como las bibliotecas de cliente generadas automáticamente), con el objetivo de convertir un trabajo de desarrollo de una tarea en un placer. La documentación de la herramienta IOTA Smart Contracts Schema se puede encontrar aquí.
Red de pruebas pública
Para probar la funcionalidad actual de los Contratos Inteligentes IOTA, es posible ejecutar tus propios nodos validadores y crear una cadena separada anclada a una red basada en GoShimmer. Para facilitar las pruebas sin tener que pasar por esta configuración específica, hemos creado una red de prueba pública para que cualquiera pueda utilizarla. Esta red consiste en una nueva red GoShimmer y un comité de varios nodos Wasp. Para que la barrera de entrada para probar la red de prueba sea lo más baja posible, hemos decidido poner todas las tarifas posibles a cero. Como esperamos que esta decisión contamine la cadena con bastante rapidez, realizaremos reinicios regulares y no programados de esta red si es necesario.
Puedes encontrar todos los detalles para conectarte a la red de prueba pública en la wiki.
Prueba de concepto de contrato inteligente renovado: Ruleta
Para demostrar algunos de los cambios de esta versión hemos decidido renovar la prueba de concepto de la Ruleta Justa y desplegarla en una cadena disponible públicamente para que cualquiera pueda probarla. Esta demostración permite al usuario depositar tokens IOTA DevNet y apostar con ellos en una mesa de ruleta virtual. Este concepto utiliza el Generador de Números Aleatorios Distribuido (dRNG) incorporado en el Contrato Inteligente IOTA para generar un número aleatorio comprobable que determina el número ganador. El código para la demostración de la ruleta está disponible en el repositorio Wasp y es totalmente compatible con la nueva herramienta IOTA Smart Contracts Schema. La demostración puede probarse también en nuestra red de pruebas pública con una interfaz gráfica que se ejecuta en demo.sc.iota.org. ¡Que lo disfrutes!
Documentación
Mientras nos acercamos a una etapa de contratos inteligentes utilizables, una buena documentación es extremadamente importante para cualquier persona que quiera empezar a construir en IOTA Smart Contracts. Por lo tanto, la documentación ha sido completamente reescrita, centrándose en los desarrolladores que utilizan los Contratos Inteligentes de IOTA, con una nueva versión separada del documento de Arquitectura de los Contratos Inteligentes de IOTA que describe cómo funcionan los Contratos Inteligentes de IOTA en detalle. La nueva documentación se puede encontrar aquí.
¿Qué es lo siguiente?
Ahora que todos los componentes principales para ejecutar contratos inteligentes programables han sido llevados a un estado totalmente utilizable, el equipo de Contratos Inteligentes de IOTA se centrará en varios entregables para las próximas versiones. Estos entregables están principalmente orientados a llevar los contratos inteligentes de IOTA de una manera fácil de usar y robusta a la red principal de IOTA (también conocida como Chrysalis).
Soporte de la red principal de IOTA (Chrysalis)
La implementación actual de los Contratos Inteligentes IOTA se ejecuta en la próxima generación experimental de IOTA 2.0, desplegada en la IOTA 2.0 DevNet totalmente descentralizada, impulsada por los nodos GoShimmer. Como los Contratos Inteligentes IOTA deben estar disponibles en la red principal de IOTA antes de cambiar al protocolo IOTA 2.0 totalmente descentralizado (en un proceso conocido como «Coordicide»), una entrega importante para la próxima versión será soportar el anclaje a la actual red principal de IOTA. La actual red principal de IOTA y el futuro protocolo IOTA 2.0 totalmente descentralizado tienen algunas diferencias fundamentales, lo que hace difícil apoyar a ambos al mismo tiempo. Por lo tanto, nuestro objetivo principal es apoyar los contratos inteligentes en la actual red principal de IOTA utilizando el software del nodo Hornet a partir de ahora.
Soporte extendido de EVM
La actual implementación experimental de EVM es completamente ajena a la capa base de IOTA. La próxima versión permitirá la retirada y el depósito de tokens IOTA de la capa base de IOTA (L1) desde los contratos inteligentes basados en EVM. Esto apoyará la transferencia perfecta de activos entre diferentes cadenas de contratos inteligentes y la capa base de IOTA sin requerir una solución especial de puente. Esta funcionalidad hará que la integración de EVM sea más útil y permitirá que las cadenas de contratos inteligentes escalables y fragmentadas se comuniquen entre sí e intercambien activos sin problemas. Al repartir las aplicaciones tradicionales de contratos inteligentes/DeFi en diferentes cadenas utilizando este enfoque, las elevadas tarifas para interactuar con ellas pueden quedar como un cuento del pasado.
Compromisos con el estado de la cadena
Planeamos implementar una capa especial de acceso al estado con compromisos al estado de la cadena y a sus particiones individuales con pruebas de inclusión.
Estas características proporcionarán a los Contratos Inteligentes IOTA las características necesarias para las cadenas de alto rendimiento/alto volumen como las utilizadas para las aplicaciones de Finanzas Descentralizadas (DeFi), el almacenamiento inmutable de datos a largo plazo y casos de uso similares:
- Pruebas de inclusión de elementos de datos en el estado
- Snapshots del estado de la cadena
- Poda selectiva del estado de la cadena o del contrato por parte del contrato inteligente sin perder la consistencia de su estado
El framework de tokenización
Mientras que la implementación existente basada en IOTA 2.0 ya admite y utiliza activos digitales en una versión temprana del marco de tokenización de IOTA, esto todavía no se admite en la actual red principal de IOTA (Chrysalis). Las respectivas RFCs están siendo definidas y utilizadas para la implementación del marco de tokenización tanto en la futura IOTA 2.0 como en la actual IOTA mainnet (Chrysalis). El marco de tokenización permitirá, entre otros beneficios, la creación de tokens y NFTs como activos nativos en la capa base que también pueden ser utilizados en las cadenas de contratos inteligentes y aportar algunas funcionalidades únicas a IOTA en combinación con los contratos inteligentes que aún no son posibles en ninguna otra plataforma existente. Creemos que la capacidad de transición sin problemas entre la capa base y las cadenas de contratos inteligentes ancladas en ella ofrecerá una utilidad sin precedentes para las NFT y las aplicaciones DeFi, especialmente si se tiene en cuenta que la capa base de IOTA no tiene fees.
Validadores de cadena sin permiso
Si bien esta versión permite a cualquiera ejecutar una cadena con su propio conjunto de validadores seleccionados, la configuración sin permisos no es adecuada para todos los casos de uso. Los contratos inteligentes tradicionales y las aplicaciones DeFi prosperan en entornos sin permisos y eso no es actualmente parte de esta versión beta. Pero somos conscientes de este requisito y estamos investigando y trabajando activamente para encontrar una solución que satisfaga también este mercado. Muy pronto daremos más información al respecto.
Estamos deseando que pruebes nuestra nueva versión beta. La mejor manera de empezar es siguiendo los pasos de nuestra documentación, empezando por nuestra Wiki, o consultando el repositorio GitHub de WASP y desplegando sus primeros contratos inteligentes. Háganos saber lo que piensa y siéntase libre de llegar con cualquier pregunta en nuestros canales de Discord.
Post original: IOTA Smart Contracts Beta Release