La tecnología de Blockchain

Diego Martín Moreno    16 julio, 2019

En el anterior artículo hablamos de los conceptos básicos del blockchain, y en este segundo artículo nos centraremos en las tecnologías actuales para implementar una solución con blockchain.

Blockchain y los Smart Contract nacieron en los 90 conceptualmente, pero ha sido en los últimos 9 años cuando han aparecido diferentes soluciones tecnológicas, en este momento existen multitud de implementaciones, pero podemos destacar tres:

1. Por un lado tenemos Corda R3, que es un blockchain creado en 2014, enfocado sobre todo para el sector financiero, donde no existe el concepto moneda y existe el concepto de notario.

2. Tenemos también Hyperledger, es un blockchain que nace en 2015  y es de uso más general,  con un diseño modular, sin moneda, y donde la cadena o ledger que creemos está muy pegado al diseño de nuestro smart contract.

3. Y por último podemos hablar de Ethereum, que es un blockchain que también nace en 2015, con un diseño más generalista, con su propia moneda, el ether, y donde la red está enfocado su diseño a los aplicaciones Dapp (decentralized application), para poder crear aplicaciones descentralizadas que se ejecutan dentro de Ethereum.

Para la tecnología nos vamos centrar en Ethereum, como ejemplo de cómo podemos construir una aplicación en blockchain, ya que es una red más flexible, y además existen entornos de test públicos, donde podemos construir nuestra aplicaciones sin prácticamente costes.

Para empezar debemos hablar de Ethereum, que es una red con su propia moneda, el ether, y que es el elemento clave de todo el sistema. Para poder ejecutar los smart contract necesitamos disponer de Gas, que se consigue a través del Ether, que está en nuestra cuentas dentro de Ethereum, para poder pagar a los mineros que nos minan o ejecuten nuestros smart contract.

Además del ether, Ethereum dispone de un segundo componente básico en la red y es la Ethereum Virtual Machine (EVM), que es el software que ejecutan todos los nodos de la red, y que permite ejecutar los smart contract con seguridad. Esta EVM puede estar implementada en diferentes lenguajes, simplemente hace falta cumplir las especificaciones del Ethereum Yellow Paper.

En este momento existen dos grandes implementaciones, por una lado Geth, que es la implementación en Go de la  EVM y Parity por otro, que es la implementación en Rust. Las grandes ventajas de la EVM son:

  1. Es determinista. Siempre nos devolverá el mismo resultado, para los mismos datos y las mismas operaciones, es decir 2 más 2 siempre será 4.
  2. Es terminable. Nuestras operaciones no podrán ejecutar indefinidamente, ya que todas las instrucciones ejecutadas en la EVM tienen un coste de gas y tenemos un límite de gasto para cualquier smart contract.
  3. Está aislado. Nadie puede manipular la ejecución del smart contract.

Los nodos y el ether son la base del sistema, ahora ya podemos desplegar nuestros smart contract, que son programas que pueden desarrollarse en distintos lenguajes aunque todos se ejecutan en la misma red. En este momento en Ethereum, el principal lenguaje de programación de Smart Contract es Solidity, que es una mezcla entre C y Javascript.

Ya tenemos todos los elementos para construir nuestra aplicaciones en Ethereum, una red con nodos para ejecutar los contratos, moneda para pagar las transacción y un lenguaje para construir los smart contract, y ahora surge la pregunta, ¿que tipo de blockchain quiero utilizar?

Cuando hablamos de redes dentro de blockchain tenemos tres tipo de redes dependiendo del tipo de privacidad de las mismas:

  • Redes públicas. Estas son las red donde cualquier persona se puede unir a la red, en el caso de Ethereum se denomina Mainnet, también existiendo redes de pruebas públicas como la red Ropsten. Su principal característica es que la información que esté en esta red será pública.

Este tipo de redes está orientado sobre todo a acuerdos públicos, certificados o cual tipo de funcionalidad que necesite ser de dominio público, y donde los costes económicos son más elevados que en otro tipo de redes.

  • Redes semipúblicas. Este tipo de redes son las que están orientadas para el intercambio de información entre distintas organizaciones, y donde los smart contract se encarga de gestionar las relaciones entre los miembros, de un modo automático y sin necesitar supervisión, lo cual mejora los procesos productivos.

Una de las ventajas de estas redes es que no necesitan tantos recursos como las redes públicas. Existe ya implementacion sobre Ethereum que es Quorum, de JP Morgan, específico para redes semipúblicas.

En el caso de España tenemosAlastria como red semipública implementada sobre Quorum.

  • Redes privadas. El último tipo de red, que sería el desplegado dentro de una empresa y que no se tiene que comunicar con el exterior, donde queremos simplificar procesos y donde además tenemos toda la información auditada.

Como vemos tenemos distintos tipos de redes para cada tipo de uso, y donde dependiendo de nuestro caso de uso deberemos ir a un tipo de red.

Y todo esto es hoy en día, pero tenemos que estar preparados para los futuros cambios y las mejoras de las tecnologías existentes, como por ejemplo los futuros cambios en la red Ethereum.

En Ethereum  tenemos varios proyectos para mejorar la red, por un lado Plasma, un proyecto para mejorar la capacidad de Ethereum de tratar más transacciones por segundo, por otro Casper que nace con la idea de disminuir el consumo de la red con un nuevo protocolo que una el algoritmo Proof-Of-Stake (PoS) y Proof-of-Work (PoW).

Como hemos visto en estos dos artículos, blockchain es un tecnología joven, que irá mejorando y cambiando con el tiempo, pero que ha venido para quedarse y modificar en muchos casos las soluciones que podemos dar, igual que ocurrió con las tecnologías de Big Data.

Para mantenerte al día con LUCA visita nuestra página web,  suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *