Una vez que nos hemos dado cuenta del potencial de las aplicaciones basadas en Smart Contracts, cabe preguntarse: ¿por dónde empiezo? ¿qué tipo de red elijo?

En función de las necesidades de nuestro negocio, y especialmente el caso de uso que vayamos a implementar, tenemos varias opciones. Hoy vamos a profundizar en una de las redes más conocidas, Ethereum.

Ethereum

Ethereum es seguramente la primera opción que nos viene a la cabeza cuando pensamos en Smart Contracts.

Creada por Vitalik Buterin, basándose en el protocolo de Bitcoin, Ethereum nos ofrece su Ethereum Virtual Machine (EVM) para la ejecución de los contratos inteligentes.

Esta máquina virtual de Ethereum, que no dejaría de ser similar a la máquina virtual de Java, interpreta y ejecuta las instrucciones que forman los Smart Contracts, con la salvedad de que esta máquina se encuentra distribuida en la red.

Esto significa que todos los nodos ejecutan las instrucciones, lo que nos trae dos consecuencias inmediatas:

Los contratos que se pueden ejecutar son turing completos, que puede resumirse en que podemos usar un conjunto de operadores e instrucciones que nos permiten ejecutar programas similares a cualquier lenguaje de programación moderno.

El lenguaje de programación que se usa para estos programas en Ethereum es Solidity, un lenguaje parecido a Javascript en la sintaxis, lo que facilita su adopción, pero enriquecido con conceptos de Programación Orientada a Objetos como C++.

Basándonos en los smart contracts desplegados en la red podemos crear aplicaciones conocidas como Distributed Application DApp). Las DApps están compuestas por smart contract que se ejecutan en la red de nodos de Ethereum (el backend).

A decentralized application (Dapp, dApp or DApp) is an application that is run by many users on a decentralized network with trustless protocols. They are designed to avoid any single point of failure. They typically have tokens to reward users for providing computing power.[1]

Hemos hablado de que la eficiencia no es una de las ventajas de la red de Ethereum. El motivo de esto es que la red se basa en un conjunto ingente de nodos, que ejecutan los contratos y validan los bloques con nueva información.

Para poder mantener estos nodos, es necesario ofrecer algún tipo de recompensa, y por ello surge el concepto de Gas.

Gas y Ether

El Gas en Ethereum es el coste asociado a realizar cada una de las operaciones en la red de Ethereum. En función de la complejidad de nuestro programa o smart contract, tendremos un gasto de Gas mayor o menor.

Cuando hablamos de complejidad, debemos pensar términos de instrucciones computacionales: realizar una comparación, una suma, son instrucciones sencillas pero tienen asociadas un coste.

Lo más fácil sería pensar en instrucciones a nivel “lenguaje ensamblador”, de forma que cada una de ellas tiene un coste de Gas asociado, y analizando nuestro programa, podremos obtener una aproximación de la complejidad.

Pero al igual que pasa con la gasolina de un coche, el gasto no sólo depende de la distancia (complejidad), sino también de la velocidad del Gas que compramos.

Si compramos Gas “muy rápido” nos aseguraremos de que nuestro programa se ejecute en poco tiempo (generalmente en el siguiente bloque), pero si nuestro caso no requiere de tanta rapidez, podemos comprar un Gas con un precio más bajo de forma que nuestro programa tendrá menos prioridad.

El gas es como la gasolina para ejecutar el viaje. En función de la distancia y la velocidad, el gasto será mayor o menor. Es importante comprobar el nivel antes de salir, o podremos quedarnos tirados a mitad del recorrido.

Pese a que podemos pensar en el Gas sólo como un gasto, el Gas aporta una serie de ventajas a la red de Ethereum:

Si realizamos una comparación con la programación en un entorno tradicional, el coste del Gas sería el equivalente al coste de adquisición y mantenimiento de máquinas en caso de optar por un modelo on-premise, o el coste de máquinas/computación en la nube en caso de irnos a un proveedor Cloud.

Para adquirir el Gas necesario para la ejecución de nuestros programas es necesario contar con la moneda propia de Ethereum llamada Ether (ETH).

Es importante resaltar que la cotización del Ether, como cualquier otra moneda, fluctúa; debemos tenerlo en cuenta y realizar una buena planificación para evitar quedarnos sin Ether y vernos con un coste excesivo.

Es necesario advertir también del riesgo que puede suponer ejecutar programas con un Gas insuficiente, ya que en caso de iniciar la ejecución de un programa y quedarnos sin gas en mitad de la ejecución, puede llevarnos a un estado incierto en que, además de haber gastado definitivamente el Gas necesario para la ejecución realizada, perdamos información o dinero en caso de estar en medio de una transacción.

Por estas razones, es necesario contar con unos sólidos conocimientos o asesoramiento experto de cara a evitar problemas que ensombrezcan las apasionantes posibilidades que nos ofrece Ethereum.

Retos y particularidades a tener en cuenta

Pese a ofrecer muchas ventajas, hay ciertos retos o particularidades que deben tenerse en cuenta al embarcarse en un desarrollo en Ethereum.

Otras opciones

Una de las características de Ethereum es que es una red de carácter público. Cualquiera puede unirse a la red manteniendo un nodo, y la información es pública para todos, por lo que sería una elección adecuada para aquellos contratos de dominio público, y en particular aquellos smart contracts para regular relaciones Business-to-Consumer.

Pero Ethereum no es la única plataforma para el despliegue y la ejecución de los mismos. Como alternativas podemos destacar:

Quorum soluciona algunos de los posibles problemas de Ethereum, sacrificando la universalidad que ofrece éste al ofrecer distintos tipos de nodos con atribuciones distintas.

Conclusiones

Hemos visto las grandes posibilidades que ofrecen las DApps y los contratos inteligentes, tanto para generar nuevas oportunidades de negocio como para buscar nuevas soluciones a problemas sin resolver o cuya solución no era muy óptima.

Sin duda, el desarrollo de aplicaciones en Blockchain va a evolucionar mucho en los próximos meses y años, pero ya contamos con un ecosistema suficiente para aplicarlo en soluciones reales en nuestro negocio y por eso cada día nos llegan noticias de empresas que están empezando a aplicar blockchain en sus soluciones para comprobar los beneficios que ofrece, y nuevas empresas que ofrecen soluciones innovadoras que antes no eran viables.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.