Hyperledger
Es una comunidad de desarrolladores de software y entusiastas por la tecnología los cuales se
han enfocado en la construcción de estándares que se implementen dentro del entorno de las
cadenas de bloques, así como en las plataformas que estas operan.
Su labor es importante debido a que crean tecnología blockchain que se adapta a las
necesidades de los negocios. Las criptomonedas en blockchain públicos tienen implicaciones
regulatorias y responsabilidades que impiden que muchas empresas utilicen estas redes.
Hyperledger es la plataforma de implementación “segura” para los equipos empresariales. Tiene
muchas de las ventajas de la tecnología de cadena de bloques pública, pero funciona sin una
criptomoneda. Con grandes partidarios como Intel e IBM.
Hyperledger y sus proyectos
se encuentran en constante crecimiento cada día, entre algunos de sus proyectos se encuentra
Fabric, Iroha y Sawtooth. Los cuales son marcos de trabajo que los desarrolladores pueden
emplear para construir cadenas de bloques privadas, crear contratos inteligentes y construir
sistemas de identidad distribuida para personas y cosas.
A finales del 2015, Linux Foundation formó el proyecto Hyperledger para desarrollar un marco
de libro mayor distribuido de nivel empresarial y de código abierto. Esta comunidad se enfocaría
en la creación de aplicaciones, plataformas y sistemas de hardware para apoyar a las
industrias.
La Fundación Linux observó que existían diferentes grupos de trabajo desarrollando tecnología
de cadenas de bloques, pero sin una dirección cohesiva. Por lo que había esfuerzos que se
estaban duplicando o se perdían recursos resolviendo el mismo problema varias veces. Por lo
que se planteó que para sacar el mayor potencial de las cadenas de bloques debía haber un
trabajo de código abierto y una estrategia colaborativa.
El proyecto de Hyperledger
Al ser dirigido por el director Brain Behlendorf el cual contaba con gran experiencia a partir de
las fundaciones Linux y Apache, tuvo un recibimiento favorable por la industria, uniéndose
empresas como Accnture, Cisco, Fujitsu Limited, IBM, Intel, J. P. Morgan y Wells Fargo, así
como la atracción de una gran cantidad de organizaciones de blockchain.
Hyperledger, como otros proyectos de código abierto usa GitHub
([Link]/hyperledger ) y Slack ([Link] ). Estos son un par de
lugares donde puedes conocer las ultimas actualizaciones y revisar el progreso de los proyectos
desarrollados.
Fabric es la primera plataforma de libro mayor distribuido que admite contratos inteligentes
creados en lenguajes de programación de uso general, como Java, Go y [Link], en lugar de
lenguajes de dominio específico (DSL) limitados. Esto significa que la mayoría de las empresas
ya cuentan con los conocimientos necesarios para desarrollar contratos inteligentes y no
necesitan formación adicional para aprender un nuevo lenguaje o DSL.
La plataforma Fabric también está autorizada, lo que significa que, a diferencia de una red pública
sin autorización, los participantes se conocen entre sí, en lugar de ser anónimos y, por tanto,
totalmente desconfiables. Esto significa que, aunque los participantes no confíen plenamente los
unos en los otros (pueden, por ejemplo, ser competidores en la misma industria), una red puede
funcionar bajo un modelo de gobernanza que se basa en la confianza que existe entre los
participantes, como un acuerdo legal o un marco para la gestión de conflictos.
Es una plataforma de tecnología de libro mayor distribuido (DLT) autorizada y de código abierto
para empresas, diseñada para su uso en contextos empresariales, que ofrece algunas
capacidades clave que la diferencia de otras plataformas populares de libro mayor distribuido o
blockchain.
Fabric tiene una arquitectura altamente modular y configurable, que permite la innovación, la
versatilidad y la optimización para una amplia gama de casos de uso de la industria, incluyendo
la banca, las finanzas, los seguros, la salud, los recursos humanos, la cadena de suministro e
incluso la entrega de música digital.
Fabric
Puede aprovechar los protocolos de consenso que no requieren una criptomoneda nativa para
incentivar la minería costosa o para alimentar la ejecución de contratos inteligentes. Evitar una
criptomoneda reduce algunos vectores de riesgo/ataque significativos y la ausencia de
operaciones de minería criptográfica significa que la plataforma puede desplegarse con
aproximadamente el mismo coste operativo que cualquier otro sistema distribuido.
La combinación de estas características de diseño diferenciadoras hace de Fabric una de las
plataformas de mejor rendimiento disponibles en la actualidad, tanto en términos de
procesamiento de transacciones como de latencia de confirmación de transacciones y permite
la privacidad y confidencialidad de las transacciones y los contratos inteligentes (lo que Fabric
denomina "chaincode") que las implementan.
Por ejemplo, cuando se despliega en una sola empresa o es operada por una autoridad de
confianza, un consenso totalmente bizantino y tolerante a fallos podría considerarse innecesario
y un lastre excesivo para el rendimiento. En este tipo de situaciones, un protocolo de consenso
tolerante a fallos por colisión (CFT) podría ser más que adecuado, mientras que en un caso de
uso descentralizado y multipartito, podría ser necesario un protocolo de consenso tolerante a
fallos bizantinos (BFT) más tradicional.
Hyperledger Fabric
Se ha diseñado específicamente para tener una arquitectura modular. Ya se trate de
consensos conectables, protocolos de gestión de identidades conectables como LDAP u
OpenID Connect, protocolos de gestión de claves o bibliotecas criptográficas, la plataforma ha
sido diseñada en su núcleo para ser configurada con el fin de satisfacer la diversidad de
requisitos de los casos de uso empresariales.
Contrato inteligente
Lo que Fabric denomina chaincode, funciona como una aplicación distribuida de confianza que
obtiene su seguridad/confianza de la blockchain y del consenso subyacente entre los pares. Es
la lógica de negocio de una aplicación blockchain.
Fabric introduce una nueva arquitectura para las transacciones que denominamos ejecutar-
ordenar-validar. Aborda los retos de resistencia, flexibilidad, escalabilidad, rendimiento y
confidencialidad a los que se enfrenta el modelo orden-ejecución.
El proyecto Iroha de Hyperledger
Se basa en el trabajo realizado en el proyecto Fabric. Su objetivo es complementar Fabric,
Sawtooth Lake y otros proyectos en curso de Hiperledger.
Hyperledger añadió el proyecto Iroha a la incubación porque los otros proyectos no tenían
ningún proyecto de infraestructura escrito en C++. No tener un proyecto C limitaba seriamente
el número de personas que podían beneficiarse del trabajo en Hyperledger y el número de
desarrolladores que podían contribuir al proyecto.
Además, hasta ahora la mayor parte del desarrollo de blockchain se ha realizado en el nivel más
bajo de la infraestructura y apenas se ha trabajado en la interacción con el usuario, infraestructura
y ha habido poco o ningún trabajo de desarrollo en la interacción del usuario o aplicaciones
móviles. Hyperledger cree que Iroha es necesaria para la popularización de la tecnología
blockchain. Este proyecto llena el vacío en el mercado atrayendo más desarrolladores y
proporcionando bibliotecas para el desarrollo de interfaces de usuario móviles.
¿Dónde puede utilizarse Iroha?
Hyperledger Iroha es un sistema blockchain con permisos de propósito general que puede
utilizarse para gestionar activos digitales, identidad y datos serializados. Puede ser útil para
aplicaciones como la liquidación interbancaria, monedas digitales de bancos centrales, sistemas
de pago, identificaciones nacionales y logística, entre otras.
¿Cuáles son las principales características de Iroha?
· Despliegue y mantenimiento, sencillos.
· Variedad de bibliotecas para desarrolladores.
· Control de acceso basado en roles.
· Diseño modular, basado en el principio de separación comando-consulta.
· Gestión de activos e identidades.
· Fiabilidad (tolerancia a fallos, capacidad de recuperación).
· Eficiencia del rendimiento (en particular, comportamiento temporal y utilización de
recursos).
· Usabilidad (facilidad de aprendizaje, protección contra errores del usuario, capacidad de
reconocimiento de la idoneidad).
Bitcoin y Ethereum están diseñados para ser libros de contabilidad sin permisos en los que
cualquiera puede unirse y acceder a todos los datos. También tienen criptomonedas nativas que
son necesarias para interactuar con los sistemas.
En Iroha no hay ninguna criptomoneda nativa. En cambio, para satisfacer las necesidades de
las empresas, la interacción con el sistema está autorizada, lo que significa que solo las personas
con el acceso necesario pueden interactuar con el sistema. Además, las consultas también están
autorizadas, de modo que se puede controlar el acceso a todos los datos.
Una diferencia importante con respecto a Ethereum, en particular, es que Hyperledger Iroha
permite a los usuarios realizar funciones comunes, como crear y transferir activos digitales,
utilizando comandos predefinidos que se encuentran en el sistema. Esto elimina la necesidad
de escribir contratos inteligentes engorrosos y difíciles de probar, lo que permite a los
desarrolladores completar tareas simples más rápido y con menos riesgo.
Iroha
Tiene un novedoso algoritmo de consenso tolerante a fallos (llamado YAC) que es de alto
rendimiento y permite la finalidad de las transacciones con baja latencia.
Además, los comandos integrados de Iroha son una gran ventaja en comparación con otras
plataformas, ya que es muy sencillo realizar tareas comunes como crear activos digitales,
registrar cuentas y transferir activos entre cuentas. Además, reduce el vector de ataque,
mejorando la seguridad general del sistema, ya que hay menos cosas que puedan fallar.
Por último, Iroha es el único libro mayor que cuenta con un sólido sistema de permisos, que
permite establecer permisos para todos los comandos, consultas y uniones de la red.
Hyperledger Sawtooth
Es una plataforma blockchain empresarial para crear aplicaciones y redes de libros de
contabilidad distribuidos. La filosofía de diseño tiene como objetivo mantener los libros de
contabilidad distribuidos y hacer que los contratos inteligentes sean seguros, especialmente
para uso empresarial.
Sawtooth simplifica el desarrollo de aplicaciones blockchain separando el núcleo del sistema del
dominio de la aplicación. Los desarrolladores de aplicaciones pueden especificar las reglas de
negocio apropiadas para su aplicación, utilizando el lenguaje de su elección, sin necesidad de
conocer el diseño subyacente del sistema central.
Sawtooth también es muy modular. Esta modularidad, permite a las empresas y consorcios
tomar las decisiones políticas que mejor les convengan. El diseño central de Sawtooth permite
a las aplicaciones elegir las reglas de transacción, los permisos y los algoritmos de consenso
que mejor se adapten a sus necesidades empresariales.
"Libro de contabilidad distribuido"
Un "libro de contabilidad distribuido" (distributed ledger) es otro término para una cadena de
bloques (Blockchain). Distribuye una base de datos o un libro de contabilidad (a ledger) de
transacciones a todos los participantes de una red (también llamados "pares" o "nodos"). No hay
administrador central ni almacenamiento de datos centralizado.
En esencia, es:
· Distribuida: La base de datos blockchain se comparte entre participantes potencialmente
no fiables y es demostrablemente idéntica en todos los nodos de la red. Todos los
participantes tienen la misma información.
· Inmutable: La base de datos de la cadena de bloques es un historial inalterable de todas
las transacciones que utiliza hashes de bloques para facilitar la detección e impedir los
intentos de alterar el historial.
· Segura: Todos los cambios se realizan mediante transacciones firmadas por identidades
conocidas.
Sawtooth
Facilita el desarrollo y despliegue de una aplicación proporcionando una clara separación entre
el nivel de aplicación y el nivel de sistema central. Sawtooth proporciona una abstracción de
contrato inteligente que permite a los desarrolladores de aplicaciones escribir la lógica del
contrato en un lenguaje de su elección.
Una aplicación puede ser una lógica de negocio nativa o una máquina virtual de contratos
inteligentes. De hecho, ambos tipos de aplicaciones pueden coexistir en la misma blockchain.
Sawtooth permite que estas decisiones de diseño se tomen en la capa de procesamiento de
transacciones, lo que permite que existan múltiples tipos de aplicaciones en la misma instancia
de la red blockchain.
Cada aplicación define los procesadores de transacciones
Personalizados para sus requisitos únicos. Sawtooth proporciona varias familias de
transacciones de ejemplo que sirven de modelo para funciones de bajo nivel (como el
mantenimiento de la configuración de toda la cadena y el almacenamiento de permisos en la
cadena) y para aplicaciones específicas como el análisis del rendimiento y el almacenamiento
de información de bloques.
Las herramientas de desarrollo de software
(Software Development Kit – SDK) del procesador de transacciones están disponibles en varios
lenguajes para agilizar la creación de nuevos lenguajes de contrato, incluidos Python,
JavaScript, Go, C++, Java y Rust. Una Interfaz de Programación de Aplicaciones de
Transferencia de Estado Representacional (API REST) proporcionada simplifica el desarrollo
de clientes adaptando la comunicación del validador a HTTP/JSON estándar.
Sawtooth está diseñado para resolver los problemas de las redes con permisos (privadas). Se
pueden desplegar fácilmente grupos de nodos Sawtooth con permisos independientes. No existe
un servicio centralizado que pueda filtrar patrones de transacciones u otra información
confidencial.
La cadena de bloques almacena las configuraciones que especifican los permisos, como las
funciones y las identidades, para que todos los participantes de la red puedan acceder a esta
información.
La mayoría de las cadenas de bloques requieren la ejecución de transacciones en serie para
garantizar un orden coherente en cada nodo de la red. Sawtooth incluye un planificador paralelo
avanzado que divide las transacciones en flujos paralelos. Basándose en las ubicaciones del
estado a las que accede una transacción, Sawtooth aísla la ejecución de las transacciones entre
sí manteniendo los cambios contextuales.
Cuando es posible, las transacciones se ejecutan en paralelo, al tiempo que se evita el doble
gasto incluso con múltiples modificaciones del mismo estado. La programación en paralelo
proporciona un aumento potencial sustancial del rendimiento con respecto a la ejecución en
serie.
El proyecto de integración Sawtooth-Ethereum, Seth, extiende la interoperabilidad de la
plataforma Sawtooth a Ethereum. Los contratos inteligentes EVM (Ethereum Virtual Machine)
pueden desplegarse en Sawtooth utilizando la familia de transacciones Seth.
FireFly
Hyperledger FireFly es la puerta de entrada de una organización a Web3, incluyendo todos los
ecosistemas blockchain en los que participan. Múltiples blockchains, múltiples economías de
tokens y múltiples redes empresariales.
Hyperledger FireFly
Es un conjunto de herramientas para construir y conectar nuevas aplicaciones descentralizadas
de pila completa (dapps), así como para integrar sus sistemas centrales existentes al mundo de
Web3.
Tiene un motor de ejecución y proporciona una capa de datos que sincroniza el estado de la
cadena de bloques y otras tecnologías Web3.
Expone una API y un Bus de Eventos a su lógica de negocio, que es fiable, fácil de desarrollar
y listo para su uso empresarial.
Y le llaman Supernodo: se sitúa entre la aplicación y los nodos de infraestructura subyacentes,
proporcionando capas de funciones adicionales.
El concepto de Supernodo ha evolucionado a lo largo de la última década de proyectos
empresariales de blockchain, a medida que los desarrolladores se daban cuenta de que
necesitaban mucho más que un nodo de blockchain para que sus proyectos tuvieran éxito.
Sin una tecnología como Hyperledger FireFly, la capa de aplicación se vuelve extremadamente
compleja y frágil. Se necesitan decenas de miles de líneas de complejo código de "fontanería" /
"middleware" de bajo nivel para integrar la infraestructura web3 en la aplicación. Este código no
aporta ningún valor empresarial único a la solución, pero puede consumir una enorme proporción
del presupuesto de ingeniería y del coste de mantenimiento si se construye a medida dentro de
una solución.