Por qué los programadores amamos Ethereum

El espectacular incremento de valor que ha sufrido Ethereum provoca un especial interés por las criptomonedas. En este año 2017, ETH ha pasado de valer unos pocos euros a alcanzar cotas de alrededor 300 euros por unidad. Incluso el inversor más cauto está planteandose invertir.

Pero Ethereum no es sólo una moneda para especular como las acciones de la bolsa, al menos eso queremos pensar algunos desarrolladores que estamos ilusionados con lo que está por venir.

Las criptomonedas no se crearon para especular con ellas, incluso este afán de hacer dinero a su costa perjudica su principal cometido: crear un sistema distribuido, donde no necesitemos un entidad centralizada (véase los bancos) para realizar operaciones. Esa responsabilidad recae en un blockchain distribuido de miles de nodos por todo el mundo que nos den la misma seguridad o más. De momento, la especulación sirve para financiar parte del proyecto Open Source que sustenta Ethereum y el ecosistema detrás él.

La posibilidad de crear contratos inteligentes ligados a esas transacciones muestra el potencial tremendo de una plataforma que no sólo revolucionará las finanzas sino también internet.

Ethereum quiere hacer el blockchain más que un calculadora

La posibilidad de crear contratos inteligentes (smart contracts) ligados a las transferencias es la gran revolución que le espera al sector financiero.

Ethereum es mucho más que una criptomoneda. De hecho, cuando nos referimos a Ethereum podemos estar hablando del protocolo o la red de nodos que sustenta el sistema. Y la parte más conocida para los no programadores es la moneda Ether, la criptomoneda de Ethereum.

Lo primero que hace Ethereum es descentralizar el control de la verificación de las transacciones. Describiendo brevemente cómo lo hace, podemos decir que la responsabilidad recae en un blockchain que actúa como una inmensa base de datos distribuida segura y mantenida por una gran cantidad de nodos conectados a lo largo de todo el mundo (los mineros).

Los datos son almacenados en bloques, los cuales están enlazados los unos a los otros identificados por un hash generado junto a un timestamp. Toda esa información es inmutable, es decir, nadie puede modificarla. Y aún más está replicada a lo largo de todos los nodos que forma la red.

Hasta aquí todo es muy similar a lo que nos encontramos cuando hablamos de Bitcoin. Pero Vitalik Buterin, inventor de Ethereum, ya empezó a diseñar en su white paper sobre Ethereum de 2014 lo que daría un paso más allá a ser una simple calculadora o un gran libro de cuentas.

The key component is this idea of a Turing-complete blockchain. … As a data structure, it works kind of the same way that Bitcoin works, except the difference in Ethereum is, it has this built-in programming language.

Vitalik Buterin, inventor of Ethereum

Smart Contracts en Ethereum

Los smart contract son ideales para realizar micro-transacciones guiados por eventos verificables por la red.

Tal como hemos mencionado, Ethereum permite a los desarrolladores crear pequeños contratos inteligentes en el blockchain. Tales piezas de código son autocontenidas y definen el acuerdos entre múltiples partes. Podemos realizar micropagos instantáneamente si se cumple las condiciones por las que fue creado dicho acuerdo.

La gran ventaja es que son inmutables (no pueden ser modificados estando en el blockchain), no necesitan de intervención directa sino que puede mediar y realizar las transferencias monetarias automáticamente.

Los smart contract pueden ser empleados en una amplia variedad de escenarios. Son ideales para realizar simples transacciones, en cuyas partes deban estar obligados a un conjunto de requisitos verificables por la red, tanto dentro del blockchain como variables externas mediante APIs.

Podemos pensar en distintos productos financieros ya existente que tardan días en ser actualizados para ser liquidados como fondos, derivados, futuros, opciones de compra, etc.., pero también cualquier microtransaction que ahora mismo realicemos de forma cotidiana.

Por ejemplo, podemos desarrollar un smart contract que gestione los derechos de autor del fondo de un banco de imágenes, cada vez que un medio use una de las imágenes para alguna de sus noticias se realizará un micropago de los ETH estipulados.

O en otro uso práctico crear un microseguro que asegure a los agricultores contra la sequía realizando pagos asociados a los datos recogidos de lluvias en un periodo de tiempo.

Solidity: el lenguaje para programar los smart contract

Ethereum combina las facetas de networking, app hosting y base de datos para almacenar estados de dichos contratos.

En Ethereum, los smart contract son programados en Solidity, un lenguaje específicamente creado para tal fin. Digamos que es un batiburrillo de algunas convenciones ya usadas por programadores web y de aplicaciones de red. La sintaxis del código es similar a JavaScript y C.

Permite compilar dichos contratos en el bytecode utilizado por Ethereum que será desplegado en las máquinas virtuales que representa la combinación de nodos. Es decir, Ethereum Virtual Machine (EVM), las responsables de ejecutar ese código, pequeñas computadoras distribuidas de 256-bits.

Se pueden programar esos smart contract localmente y después desplegarlo para que sean propagados alrededor de toda la red siendo alojados de forma descentralizada. En ese sentido, Ethereum combina las facetas de networking, app hosting y base de datos para almacenar estados de dichos contratos.

Desplegar aplicaciones en Ethereum no es una tarea trivial, ya que tiene una cierta curva de aprendizaje. Para ello existen herramientas como el browser Mist Browser que permite prototipar los scripts de los smart contract, crear wallets y provee algunas funcionalidad por línea de comandos para comunicar con la red Ethereum.

Sobre Solidity puedes encontrar documentación de cómo empezar a programar con él en la propia web del proyecto Ethereum. Además de trastear con algunos ejemplos de smart contract ya creados.

Cuando tengamos esos smart contracts desplegados podemos empezar a crear una serie de aplicaciones entorno a ellos. Ese es el papel de las distributed application, conocidas como DApp.

Las Dapps están compuestas por smart contract que se ejecutan en la red de nodos de Ethereum (el backend). Para que sean fácilmente accesibles, la parte front-end se crea con HTML/CSS/Javascript y puede ser utilizadas a través de un web browser, una aplicación de móvil o un Ethereum Browser, tal como Mist o la línea de comandos usando Geth implementada en GO.

¿Qué podemos construir a día de hoy en Ethereum?

Más arriba hemos descrito el potencial que posee Ethereum y de algunas de sus herramientas como el propio lenguaje Solidity, los smart contract o el concepto de aplicaciones descentralizadas Dapps y la capacidad de computación que nos permite EMV a través de sus nodos. Ahora vamos a repasar qué podemos hacer a día de hoy, es decir, que tipos de aplicaciones nos estamos encontrando los desarrolladores.

La mayoría de estas aplicaciones están siendo desarrolladas en la cadena pública, pero a nadie se le impide crear su propio blockhchain privado haciendo un fork de Ethereum, tal como en alguna ocasión hemos hablado de las alt-coin creadas a partir de Blockchain. Pero soy bastante crítico con ese tipo de aplicaciones que más allá de reinventar la rueda entorpecen el desarrollo de Ethereum.

Algunas de las aplicaciones que se pueden conseguir son:

  • Enviar y recibir Ether. Obvio y quizás la primera en la que pensariamos. Cualquiera puede conseguir un dirección pública de Ethereum y descargando el wallet de Mist para operar. Existen multitud de wallet alternativos, incluidos en el apps móviles en la Apple Store o Google Play.

  • Escribir smart contract: podemos crear apps descentralizadas apoyadas en los smart contract que realicen pagos y transferencias entre cuentas. El verdadero potencial viene de lo grande que llegue a ser la red pública y quien participe alli. Alternativamente, las redes privadas permiten los mismo de forma reservada en un entorno empresarial.

  • Crear aplicaciones sin intermediación que aseguren apuestas, o incluso, transforme los típicos puntos obtenidos en juegos a dinero real para gastar sin la necesidad de confiar en un entidad que lo avale o te lo canjee.

  • Crear nuestro propio Token. Aunque nos llevaría más tiempo explicar el concepto de token dentro de la red Ethereum, simplificando la idea podemos crear sub monedas de Ethereum que tengan una validez dentro de nuestro desarrollo u organización. De aqui, ya hemos visto algunos ejemplos como se ha creado ICOs basados en Ethereum utilizando la conversión de token en forma de inversión.

El futuro: una internet de valor, quizás sea el Internet 3.0

Ethereum es ya un gran protocolo que permite la creación de smart contract, DApps u organizaciones descentralizadas. Quizás esto nos lleve a nueva estructura del nuevo Internet.

Web 3 es el término general para referirse una web descentralizada, tal como Web 2 se refiere a las web alojadas en servidores, aplicaciones o servicios. Web 1 se refería a la original World Wide Web, la cual tan solo aloja páginas estáticas.

Web 3 es una amplia visión en el que Ethereum forma parte importante, aunque no única, pero donde los desarrolladores nos vemos identificados. Hablamos de tres componentes:

  • Identificación peer-to-peer y un sistema de mensajería
  • Datos compartidos a través de un blockchain
  • Almacenamiento descentralizado

En todo esto tiene mucho que ver la Enterprise Ethereum Alliance (EEA) una red de académicos, compañías y startups que comparten conocimiento para definir el software necesario para crear aplicaciones que aceleren los negocios. Aquí en esta imagen podéis ver algunos de los miembros, algunos de los negocios tradicionales que verían riesgo en ello están ahí siguiendo de cerca la plataforma Ethereum. Y por supuesto, el creador, Vitalik Buterin, y como suele llamarse en el entorno Open Source a este tipo de figuras, el dictador benevolente.

Del modo en el que vemos Bitcoin como una forma de intercambiar dinero sin intermediación de bancos o entidades financieras tradicionales, Ethereum construye una red descentralizada para crear, por ejemplo, markeplaces de intercambio de servicios como Uber o Ebay. La confianza recae en el blockchain al que podemos tratar con una web 3.0 donde conectarnos para obtener los datos justos y necesarios para crear valor y confianza entre las apps-usuarios.

Todo ello lleva a la convergencia de la red con una estructura peer-to-peer y los servicios de la economía compartida.

Más información | Ethereum project

Ver todos los comentarios en https://www.xataka.com

VER 38 Comentarios

Portada de Xataka