Datos clave:
El lenguaje Solidity es una necesidad para crear aplicaciones descentralizadas en Ethereum y RSK.
La principal herramienta para programar contratos inteligentes basados en EVM es Truffle.
Contenido patrocinado por IOVLabs
Durante los primeros años de Bitcoin, no hubo mucha discusión sobre los contratos inteligentes; No eran muy conocidos por la comunidad en general, aunque su creación en realidad es anterior a Bitcoin (Nick Szabo los pre-conceptualizó en 1997).
Sin embargo, no pasó mucho tiempo para que plataformas blockchain como Ethereum y RSK pasaran a formar parte de la discusión diaria, proporcionando recursos esenciales para el desarrollo de estos programas en redes distribuidas.
Al pensar en un contrato, casi accidentalmente nos referimos a extensos documentos en letra pequeña, firmas por todas partes, y un abogado en el que no confiamos mucho, pero sí lo hemos hecho.
Los contratos inteligentes difieren sutilmente de este concepto. Como programas informáticos, tienen la capacidad de ejecutarse automáticamente una vez configurados en función de los acuerdos alcanzados entre las partes.
Funcionan como guardianes del cumplimiento de los acuerdos en el mundo real, siendo ejecutados de una manera irreversible e incuestionable. Para ello dependen de los oráculos, puntos de entrada para la información de fuera de la cadena de bloques.
Las condiciones acordadas para su cumplimiento deben ser muy claras entre sus participantes y transmitirse a los programadores y desarrolladores para que puedan configurar el contrato inteligente, ya que, de alguna manera, el acuerdo debe ser “traducido” del lenguaje verbal al lenguaje informático.
Cada vez más, el mercado profesional recompensa a aquellos que tienen conocimiento de la programación informática. Los contratos inteligentes, como una herramienta disruptiva e innovadora vinculada al mundo de las criptomonedas, no están muy lejos.
En este artículo explicaremos los pasos a seguir para crear e implementar un contrato inteligente. Mencionaremos datos clave para desarrollar contratos basados en Ethereum y RSK, redes blockchain con sus propias características, pero que mantienen un marco común entre ambos, como el lenguaje de programación Solidity.
Soy programador. ¿Qué herramientas tengo?
La red más popular para programar contratos inteligentes es Ethereum. A partir de ahí, muchos otros proyectos se han inspirado para permitir la ejecución de contratos inteligentes en sus propias áreas y lenguajes de programación.
Desde Solidity, el lenguaje de programación predeterminado de Ethereum está inspirado en otros lenguajes como C ++, Python y JavaScript, dominar estos lenguajes es el punto de partida para programar contratos inteligentes.
La solidez es una necesidad para crear aplicaciones descentralizadas en Ethereum. La solidez permite la ejecución de contratos inteligentes en la Máquina Virtual Ethereum (EVM), el procesador computacional de este protocolo.
Este lenguaje también es utilizado por RSK, una plataforma de contratos inteligentes que es una cadena lateral de la cadena de bloques Bitcoin, que permite a los desarrolladores crear, importar e implementar contratos inteligentes de una manera más estandarizada y sencilla. De esta manera, RSK aprovecha la seguridad proporcionada por la potencia informática de Bitcoin para procesar contratos inteligentes.
Al visitar Ethereum encontraremos una gran cantidad de recursos con diversas funcionalidades. Desde herramientas hasta aplicaciones de compilación y aquellas que nos permiten realizar un seguimiento de ellas y analizar su rendimiento.
Trufa
La principal herramienta para programar contratos inteligentes basados en EVM es Truffle. Este entorno digital permite implementar contratos y configurar su evolución a lo largo del tiempo, así como conectar e interactuar con otros contratos y protocolos.
Usando Truffle podemos desarrollar contratos inteligentes e implementarlos en otros protocolos blockchain compatibles, privados o públicos, abriendo la posibilidad de crear una variedad de aplicaciones descentralizadas (Dapps). Además, permite vincular varios contratos entre sí y compilarlos eficazmente, facilitando su gestión conjunta y migración a otros entornos de trabajo o redes.
De esta manera, si tenemos un contrato inteligente desarrollado en uno de los lenguajes de programación compatibles con Ethereum, se pueden importar a RSK. Por lo tanto, este marco de código abierto permite conectar un nodo RSK y realizar pruebas con contratos inteligentes creados previamente, como simular una red en la que varios participantes y contratos interactúan de forma segura.
Ganache
Ganache es la red de pruebas simulada integrada en la suite Truffle, que permite implementar contratos en una red con las últimas actualizaciones de Ethereum, configurar la minería y bloquear la emisión y depurar la red de errores e incoherencias del protocolo, sin riesgos y sin costes adicionales.
Visualstudio
Otras herramientas disponibles es VisualStudio, una consola para insertar y editar código con una interfaz más intuitiva y visual. Este programa permite a los desarrolladores ver cómo sus líneas de código se relacionan entre sí.
Entre las características más importantes de este programa está que se puede editar código en directo, directamente en una aplicación que se está ejecutando. También incluye una variedad de extensiones para agregar otros lenguajes de programación, temas y servicios de terceros.
Buidler
Buidler es la herramienta recomendada por Ethereum para verificar el correcto funcionamiento de los contratos inteligentes, en un entorno de prueba sin riesgo donde se integran plugins y herramientas adicionales.
Metamask
Entre los requisitos esenciales para interactuar con contratos inteligentes está el uso de una cartera adecuada. Uno de los más conocidos es Metamask, que, una vez instalado como una extensión en el navegador web, nos permitirá manipular Éteres y tokens ERC-20. Con esta cartera podremos interactuar con contratos inteligentes y realizar transacciones de este tipo. Es uno de los más conocidos, aunque hay otros disponibles como MyEtherWallet.
Con estas herramientas podemos implementar los contratos inteligentes diseñados anteriormente, conectándolos con un nodo de la red pública. Este conjunto de herramientas es muy versátil tanto para Ethereum como para RSK. Recuerde que EVM y su lenguaje de programación son compatibles con otras plataformas como RSK o redes privadas como Microsoft Azure.
¿Qué debo tener en cuenta?
El principal requisito, además de conocer lenguajes de programación como Javascript, es dominar la solidez, como el principal lenguaje a utilizar en la creación de contratos inteligentes.
Para crear un contrato inteligente, no debe olvidarse de definir su conceptualización y esquema. Basándonos en contratos legales reales podemos emular sus condiciones, su estructura, las instrucciones a seguir. Escuche a las partes involucradas y comprenda bien los requisitos y características que nuestro contrato debe tener.
Con respecto al desarrollo de aplicaciones descentralizadas y tokens utilizados para otros fines, debe pensar cuidadosamente en la funcionalidad de este contrato antes de ofrecerlo como un producto a la comunidad de usuarios. Deben tener claro para qué se usa el token y cómo funciona correctamente.
También considere la posibilidad de crear una interfaz gráfica para administrar mejor al usuario final. La facilidad y accesibilidad del cliente contratado en el uso de sus funcionalidades puede ser crucial en el caso de contratos que requieran la inserción manual de información.
También puede ser aconsejable trabajar con consultores o entidades como OpenZeppelin, con el fin de que verifiquen expertamente el funcionamiento de estos contratos, además de no tener lagunas de seguridad o puntos débiles que puedan ser explotados.
Implementar el contrato inteligente en Ethereum
Para implementar un contrato inteligente en la red pública Ethereum, primero debemos tener algunos Éteres depositados en nuestra cartera, con el fin de llevar a cabo la transacción que pondrá nuestro contrato en línea; y pagar por el “gas” de la red.
Una vez que hemos realizado las pruebas y depurado el contrato, usamos Trufa para desplegarlo, usando el comando truffle deploy. Al visualizar el contrato, obtendremos su dirección, a través de la cual los usuarios del contrato podrán interactuar con él.
En el caso de Ethereum, hay una variedad de redes de prueba, con diferentes características para elegir de acuerdo con la preferencia de los desarrolladores.
Tenemos Ropsten, una cadena de bloques basada en el algoritmo Proof of Work (PoW) y que incluso permite la minería de Éteres.
También tenemos Kovan, una cadena de bloques basada en proof of authority (PoA) y desarrollada por el equipo de Parity. En este caso, los Éteres no se extraen, sino que se adquieren a través de un grifo.
Por otro lado, Rinkeby, también basado en la Prueba de Autoridad y desarrollado por el equipo de Geth. Los éteres tampoco se pueden extraer, sino que se adquieren a través de un grifo.
Puede interactuar con el testnet Ethereum a través de Metamask, pero también a través de las carteras MyEtherWallet y MyCrypto.
RSK, contratos inteligentes garantizados por Bitcoin
Como ya hemos comentado, los contratos inteligentes se pueden crear a partir de trufa utilizando otras herramientas y recursos complementarios. Pero el código de un contrato inteligente también se puede importar a otras plataformas y entornos, como RSK.
RSK es una cadena de bloques que permite la configuración de contratos inteligentes en Bitcoin. La complejidad técnica del protocolo Bitcoin hace que sea más difícil desarrollar y ejecutar contratos inteligentes en su red. Sin embargo, RSK utiliza el poder de procesamiento de Bitcoin para ejecutar contratos y transacciones, siendo un puente de enlace con el protocolo de la criptomoneda de origen.
Como explica RSK en su blog, los pasos a seguir para implementar un contrato inteligente comienzan con la instalación de un nodo RSK local.
Instale un nodo RSK
Los detalles sobre cómo instalar un nodo se proporcionan en el sitio web de RSK, haciendo hincapié en que estos son compatibles con todos los principales sistemas operativos, como Mac, Linux y Windows. Como se indicó, la instalación no debe tardar más de 15 minutos si las instrucciones van seguidas paso a paso.
La importancia de instalar un nodo es que con él transmitiremos e implementaremos nuestro contrato inteligente, siendo un puente de conexión con el resto de los participantes de la red.
Probar contratos inteligentes en RSK
Antes de implementar un contrato inteligente en la red principal de RSK, primero se debe evaluar su rendimiento en la red de prueba. Podemos utilizar esta red con el monedero Metamask, definiendo un nombre personalizado de la red y, a continuación, introducir la DIRECCIÓN URL del nodo de prueba público en el cuadro RPC (Procedimiento remoto). Por último, establezca rBTC, el token nativo de RSK, como token predeterminado.
Una vez que esta configuración está lista, ingresamos el grifo del token tR-BTC, copiamos la dirección, resolvemos el captcha y esperamos unos 30 minutos para recibir los tokens.
Conclusiones.
Los contratos inteligentes tienen el poder de ejecutar tareas automáticamente, con el acuerdo previo de las partes. Su programación y codificación es compleja y por esa misma razón, tienen el potencial de impulsar la creación y desarrollo de múltiples aplicaciones y utilidades.
Cada vez más contratos inteligentes formarán parte de procesos que están cambiando el mundo. Participarán en la inteligencia artificial, el internet de las cosas y el manejo masivo de datos e información.
Del mismo modo, puede ser parte de la dinámica social en todo el mundo de las criptomonedas, como la habilitación de finanzas descentralizadas y el intercambio de activos basados en blockchain.