Hyperledger: la Blockchain privada que todos tenemos que conocer

Hoy vamos a hablar de Hyperledger, la más importante de todas las tecnologías de Blockchain privadas que actualmente existen en este ecosistema.

Para eso hemos invitado a María Teresa Nieto Galán, full stack blockchain developer y Nodo Programación de Blockchain España, para que comparta con nosotros y en detalle su experiencia sobre la tecnología de Hyperledger, solución liderada por la Fundación Linux.

¿Cuál es el origen de Hyperledger Project? ¿Cómo se gobierna Hyperledger, quiénes son sus miembros, cómo y por qué un proyecto puede incorporarse a su red?

Hyperledger es un proyecto de código abierto (open source en inglés) nacido en diciembre de 2015 y albergado en la Fundación Linux (Linux Foundation). Nació con el objetivo de crear un ecosistema centrado en crear soluciones de código abierto en el ámbito corporativo con DLTs (Distributed Ledger Technology, otro nombre para Blockchains privadas) y en la práctica por ahora se está centrando en el desarrollo de tecnología blockchain privada para corporaciones.

Su línea de trabajo principal por el momento es aunar todos los esfuerzos en el ámbito de la tecnología de las blockchain privadas para conseguir desarrollar protocolos y estándares abiertos con el propósito de crear un ecosistema variado para diferentes usos.

Hyperledger incuba y promueve una gran variedad de negocios basados en la tecnología blockchain, incluyendo frameworks, librerías, interfaces gráficas, redes blockchain privadas, motores de smart contracts o aplicaciones. Gracias a esta estrategia, es posible fomentar la reutilización de módulos comunes y permite la rápida innovación sobre esta tecnología.

En sus inicios, el proyecto Hyperledger fue lanzado por 30 miembros fundadores e incluía únicamente dos proyectos originales: Hyperledger Fabric, en el que colaboraban Digital Asset Holding, libconsensus de Blockstream y OpenBlockchain de IBM, e Hyperledger Sawtooth liderado por Intel.

Actualmente el proyecto cuenta con conocidas figuras del mundo de las finanzas y la tecnología como, por ejemplo, Blythe Masters (Digital Asset Holding) director ejecutivo de Hyperledger o con Chris Ferris (IBM) que trabaja en la dirección del comité técnico.

En cuanto a los miembros del proyecto Hyperledger, cada vez su número es más y más elevado. Entre ellos podemos encontrar algunas de las empresas más influyentes en el mundo de la tecnología como Cisco, IBM, Intel, SAP. También muchos son los bancos que han decido participar en el mismo, como por ejemplo el banco BBVA y empresas españolas como Tecnalia.

Finalmente, también son muchas son las startups que deciden donar su proyecto a Hyperledger para ganar visibilidad y generar una comunidad alrededor de su código. Ejemplos son Monax Industries (Hyperledger Burrow) y Sovrin (Hyperledger Indy).

Cualquier empresa puede participar en este proyecto y existen tres tipos de miembros en Hyperledger, que además deben ser miembros de la Linux Foundation:

1. Premier Members: Los cuales hacen una donación anual de 250.000 dólares.

2. General Members: Pagan una tarifa en función del tamaño de la empresa.

3. Associate Members: No tienen que realizar ninguna donación anual pero han de ser previamente aprobados y son proyectos de tipo open source, organismos gubernamentales, u organizaciones sin ánimo de lucro.

El nivel de compromiso de la Linux Foundation con el proyecto Hyperledger es muy elevado porque al frente del proyecto han puesto a uno de sus máximos exponentes, Brian Behlendorf, fundador de la fundación Apache.

Además se ha establecido una estructura de grupos de trabajo que se reúnen semanal o bisemanalmente, para que los expertos de la mayoría de empresas integrantes se sincronizan y las decisiones se adopten de forma ágil. Algunos de los grupos de trabajo con mayor actividad son el Technical Steering Committee (TSC), el Performance and Scale Working Group o el Architecture Working Group.

¿Qué es la Fundación Linux?

La Fundación Linux es un consorcio tecnológico creado a principios de 2010 y actualmente es un referente a nivel técnológico.

Este consorcio es el elegido por los principales desarrolladores y empresas del ecosistema porque permite la construcción de nuevos ecosistemas tecnológicos que aceleran su crecimiento gracias a la tecnología open source y su posterior adopción comercial.

La fundación Linux acoge la mayoría de los proyectos open source del mundo, entre los que se incluye obviamente Linux. En la actualidad son aproximadamente setenta proyectos los desarrollados, entre los cuales se encuentra Hyperledger.

¿Qué proyectos hay en Hyperledger?

Actualmente en Hyperledger se encuentran nueve proyectos, los cuales se pueden dividir en dos ramas principales: plataformas blockchain y herramientas para la interacción con las plataformas.

1. Hyperledger Burrow: Conocida anteriormente como Monax (y antes Eris Industries), fue impulsada por por la startup Monax Industries y es una blockchain privada basada en el código de Ethereum. Es decir, permite el despliegue de smart contracts desarrollados en Solidity.

2. Hyperledger Fabric: El proyecto más conocido dentro de Hyperledger, tanto que normalmente es confundido el término Hyperledger con esta blockchain privada. Está orientada al mundo empresarial y sus contribuciones iniciales provienen principalmente de IBM. Es una plataforma multidisciplinar que aspira facilitar la implementación de cualquier modelo de uso. Permite el despliegue de smart contracts -llamados en este caso chaincodes- desarrollados en el lenguaje de programación de Google: 'Golang'. Un punto muy a favor de esta blockchain es que posee un diseño muy flexible ya que incorpora capacidades como crear chaincodes en cualquier lenguaje o decidir qué algoritmo de consenso usar ('pluggable consensus'). Es una de las blockchain privadas más conocidas ahora mismo en el mercado.

3. Hyperledger Indy: En una plataforma cuyo principal objetivo es proponer una solución de Identidad Digital. Su filosofía defiende que los datos personales deben ser administrados por la propia persona y apuesta por el "Zero Knowledge Protocol", protocolo de conocimiento cero. Este protocolo tiene como objetivo dar la menor cantidad de información posibles en procesos en los que usa la identidad digital.

4. Hyperledger Iroha: Pretende ser una plataforma blockchain simple y modularizada que permita el despliegue de smart contracts desarrollados en Java y, al igual que la anterior, también apuesta por la identidad digital. Esta plataforma ha sido desarrollada en Japón por Soramitsu, Hitachi, NTT Data and Colu.

5. Hyperledger Sawtooth: Como hemos comentado anteriormente, este proyecto proviene, en su mayor parte, de Intel. Intel es uno de los mayores fabricantes de hardware del mercado que también ha decidido unirse a la 'fiebre blockchain' y realizar su propia línea de investigación. Es una blockchain privada de ámbito empresarial que también incorpora la capacidad de despliegue de smart contracts. Sus contratos también se desarrollan en Solidity.

En cuanto a los framework y herramientas el Hyperledger Project alberga los siguientes:

1. Hyperledger Composer: Es una herramienta que permite la creación de aplicaciones descentralizadas, abstrayéndose del desarrollo de bajo nivel.

2. Hyperledger Explorer: Nacida con el objetivo de proporcionar una interfaz visual para la monitorización de peers (nodos) de Hyperledger Fabric. Asimismo, provee de un servicio para la comunicación entre la plataforma Blockchain y la aplicación.

3. Hyperledger Cello: Tiene como objetivo crear una solución que permita conseguir un modelo de despliegue de 'Blockchain as a Service'. Reduciendo el esfuerzo que supone crear una infraestructura de nodos blockchain.

4. Hyperledger Quilt: Su objetivo es conseguir una interoperabilidad entre distintas redes blockchain mediante ILP (Interledger Protocol). Este protocolo, creado por Ripple, nació para solucionar la necesidad de la realización de pagos entre distintos sistemas bancarios. ILP permite la realización de transferencias seguras entre dos distintos 'ledgers' y permite conectar a usuarios sus cuentas albergadas en distintos sistemas.

¿De cuántos nodos se compone una blockchain privada de una red con Hyperledger? ¿Cómo de escalables son estas redes y cuál es el máximo de nodos que puede haber?

Empezando por la última pregunta, nunca hay un máximo de nodos que pueda haber. Blockchain es una tecnología descentralizada, de manera que se podría decir que a más nodos, más descentralización y más tolerancia a fallos. Este último término está muy relacionado con el campo de la computación y está referido a la capacidad que posee un sistema de seguir funcionando aunque se haya producido un fallo.

Si nos llevamos este significado al mundo Blockchain podría traducirse en cúal sería el mínimo número de nodos que se necesitaría para que el sistema siguiera funcionando en el caso de que hubiera un fallo en uno de los mismos.

Por eso, y respondiendo a la primera pregunta, el número de nodos del cual se compone una blockchain privada dependería del mecanismo de consenso que posea la red, más un nodo de más que habría que añadir (como mínimo) para tener tolerancia a fallos. Esta respuesta es muy generalista puesto que hasta ahora hay implementados múltiples mecanismos de consenso, sin embargo todos ellos poseen la misma base: para que se realice el consenso y que se marque una transacción como válida de 2/3 de los nodos (o del poder de voto de la red) deberían haberla marcado con ese estado.

También a la hora de decidir el número de nodos hay que tener en cuenta la demanda de la red, es decir, cuántas interacciones medias puede tener un nodo. Si por ejemplo, tenemos un aplicación que realiza miles de peticiones por segundo, necesitaríamos que los nodos de la red tuvieran una alta disponibilidad.

En cuanto a la escalabilidad, es un término que se refiere a la capacidad que tiene un sistema de adaptarse a medida que sube el rendimiento del mismo sin que se vea comprometido su funcionamiento. En el caso de una blockchain podría decirse que la escalabilidad del sistema es la capacidad que tendría el sistema de poder añadir más nodos en función de la demanda del mismo. Puesto que es una tecnología totalmente descentralizada, esta cualidad debe de estar integrada en el diseño de la blockchain, y es un requisito muy necesario para su correcto funcionamiento. Por regla general, las blockchain, como por ejemplo Ethereum (privada) o Hyperledger Burrow, son bastante escalables.

Sin embargo, en el caso de Hyperledger Fabric que usa el algoritmo de consenso PBFT (Practical Byzantine Fault Tolerance), por defecto, hay un problema de escalabilidad porque este algoritmo está diseñado de tal manera que si hay un elevado número de nodos, como por ejemplo 100, podría dejar de funcionar. A pesar de esto, gracias a cómo está diseñada la arquitectura, esto solo ocurriría en los nodos pertenecientes a su 'Orderer Service'. En este servicio, no es necesario llegar a la cantidad de nodos que hemos comentado y por ende no se daría tal fallo. Finalmente, como veremos más adelante, cabe destacar que Hyperledger Fabric ha sido diseñado para elegir qué algoritmo de consenso se puede utilizar en la red.

¿Qué es Hyperledger Composer?

Hyperledger Composer en su proyecto de tipo open source (código libre). Es una herramienta que permite hacer aplicaciones abstrayéndose de la parte de programación de Hyperledger Fabric. Usando Hyperledger Composer, a la hora de crear la aplicación, únicamente hay que centrarse en la lógica de diseño de activos, participantes y transacciones.

Gracias a esta característica el desarrollo de Dapss ('distributed applications') se hace de una manera mucho más rápida, en comparación al proceso de desarrollo de aplicaciones convencional.

Finalmente, a la hora de integrar el producto realizado con esta herramienta con soluciones propias -que dependen de ella- se provee de una API de alto nivel, de manera que sería una pieza compatible más.

Entre sus beneficios encontramos:

1. Aumenta la comprensión con la tecnología: Es mucho más fácil realizar la toma de requerimientos cuando se puede realizar un MVP (mínimo producto viable) de manera rápida y pudiéndose ejecutar.

2. Disminución del tiempo de desarrollo: El uso de la herramienta permite crear soluciones en 20 minutos, mediante una interfaz visual, un tiempo radicalmente menor a un proyecto basado en Hyperledger Fabric en el que hay que definir una arquitectura de red, sus controladores y sus smart contracts (chaincodes) desarrollados en el lenguaje golang.

3. Reduce el riesgo: A la hora de realizar el proyecto muchos de sus componentes son reusables y ha sido pensado para que fuera fácil de testear.

4. Flexible: Gracias a la capacidad de abstracción que genera esta herramienta la solución desarrollada ha sido realizada para que fuera fácil de adaptar a otras soluciones.

¿En qué casos de uso podría dominar una tecnología como la de Hyperledger frente a las blockchain públicas como Bitcoin o Ethereum?

En ocasiones, visto desde el punto de vista técnico y tras haber trabajado con la tecnología a ese nivel durante un par de años, las blockchain públicas en ocasiones plantean, desde mi punto de vista, dos grandes problema: las tasas y la privacidad.

Ahora mismo, a pesar de que hayan salido frameworks que permitan el despliegue de contratos compatibles con la red Bitcoin, es prácticamente imposible un desarrollo 'costless' de aplicaciones basadas en esa red debido a las tasas. Uno de los problemas de bitcoin es la alta carga computacional que posee y eso al final se convierte en un coste que a las personas que desarrollamos productos basados en la tecnología no nos interesa. Si una aplicación realiza un elevado número de transacciones por segundo, como por ejemplo lecturas y escrituras en un smart contract, ¿sería eficiente usar una plataforma con alto coste? Una red privada por lo general es menos resistente a la censura que una red pública y por tanto según el caso de uso la escalabilidad o el coste del uso puede pasar a un segundo plano. Aunque también hay que tener en cuenta que es lo que se quiere conseguir.

Por otro lado, respecto a Ethereum, la realización de transacciones privadas verificables es un requisito muy necesario hoy en día y, sin embargo, esta plataforma no posee dicha características. Muchos son los datos de carácter comprometido que se manejan actualmente y hay que tener muy en cuenta cómo se van a tratar. Un ejemplo para poder comprender este punto de vista sería una aplicación basada en un consorcio entre empresas. La información que se puede enviar de una empresa a otra puede contener datos de carácter confidencial y debería ser solo visible entre estas partes involucradas y no para toda la red. Esto es uno de los argumentos por los que se eligió Quorum para el consorcio Alastria desarrollado por JP Morgan. Quorum, una plataforma que funciona por encima de una red Ethereum, permite las transacciones privadas entre dos o más participantes en la misma, del modo que no son visibles para el resto de los participantes que no estén involucrados.

Otro de las cosas a tener en cuenta en la red de Ethereum es el gas. El gas es el coste que tiene una operación en la red de Ethereum. Esta operación puede ser una transacción o una interacción con un smart contract. Este elemento fue introducido en la red con el fin de evitar comportamientos hostiles, desperdicio computacional de código o bucles infinitos accidentales. De esta manera, cuando a una cuenta se queda sin gas en esta plataforma, no puede realizar más transacciones hasta que vuelva a tener gas. Por esta razón, en ocasiones hay que tenerlo muy en cuenta a la hora de desarrollar nuestros contratos, puesto que a mayor complejidad del mismo, más cuesta desplegarlos en la red y, se podría dar el caso de que a lo mejor no podríamos ni conseguir desplegarlo. Si queremos no tener este tipo de complicación, a veces, hay que tener en cuenta las redes de tipo 'Ethereum' (en otras palabras, redes que permiten el despliegue de smart contracts desarrollados en Solidity) que no poseen gas, como por ejemplo Hyperledger Burrow.

Por otro lado y volviendo al tema de las transacciones privadas, en el caso de Hyperledger Fabric este caso quedaría solventado. Gracias a su sistema de canales, sólo los participantes que hay en un canal pueden ver las transacciones que hay en el mismo, y de esta manera quedarían protegidos los datos. También otro punto muy a favor son sus políticas de 'endorsement' donde también se puede realizar un permisionado a nivel de las organizaciones participantes dentro de un canal.

Puede que parezca que las blockchain públicas tengan todas las de perder frente a las privadas, pero no tiene por qué ser así. A pesar de los inconvenientes que ya hemos visto, las blockchain públicas nos proveen de una infraestructura que no es necesario mantener. En otras palabras, a la hora de realizar proyectos basados en blockchain privadas parte de los costes del mismo se van al mantenimiento de la red, mantenimiento de las máquinas en las que están desplegados los nodos, costes de las mismas etc, y usando infraestructuras públicas desaparecerían.

Asimismo, en el caso de Ethereum a parte de la cadena pública hay actualmente tres testnets: Ropsten, basada en el algoritmo de consenso Proof of Work; Kovan, cuyo consenso es Proof of authority; y, finalmente, Rinkeby que usa Clique consensus. En ellas se pueden testear los smart contracts y conseguir, así, las pruebas de comportamiento que hemos comentado anteriormente.

Por todas estas razones llegamos a la conclusión de que no hay una plataforma Blockchain única y que encaje perfectamente en un caso de uso multidisciplinar. Cada plataforma es más conveniente, o no, en función del caso de uso que se quiera desarrollar.

Origen aquí.
Fuente de noticias: www.eleconomista.es

Comentarios