Buscar

Blog de Alfonso Tienda

Marketing, Startups, Proyectos y Tecnología.

Módulos de Hyperledger: Cello y Composer

 

Como continuación del post Blockchain Hyperledger: Introducción, vamos a analizar algunos módulos de Hyperledger.

Hyperledger Cello

Para las empresas que quieren implementar un Blockchain-as-a-Service, Hyperledger Cello proporciona un conjunto de herramientas que cumplen con esta necesidad. Particularmente para PYMES que desean reducir o eliminar el esfuerzo requerido en la creación, gestión y terminación de blockchains, Hyperledger Cello permite el despliegue de blockchains en la nube. Los diferentes operadores pueden crear y administrar dichas cadenas de bloques a través de un tablero de instrumentos, y los usuarios (por lo general, desarrolladores de chaincode) pueden obtener una instancia de blockchain de forma inmediata.

Cello tiene como objetivo llevar el modelo on-demand SaaS ‘como un servicio’, lo que ayuda a impulsar el desarrollo y la implementación de los frameworks de Hyperledger. Hyperledger Cello fue inicialmente aportado por IBM, con patrocinadores de Soramitsu, Huawei e Intel.

Los desarrolladores de aplicaciones y administradores de sistemas que usan Cello pueden aprovisionar y mantener redes de Hyperledger. Por ejemplo, se puede crear un grupo de ledgers distribuidos en clústers de contenedores y, luego, administrar y monitorizar esas redes con un dahsboard configurable. Además, se puede construir una plataforma Blockchain-as-a-Service (BaaS).

Hyperledger-Cello-to-govern-multi-tenant-blockchain-as-a-service-v2

Hyperledger Explorer

Hyperledger Explorer es una herramienta para visualizar las operaciones de blockchain. Es el primer explorador de blockchain para los ledgers autorizados, lo que permite a cualquier persona explorar los proyectos de ledgers distribuidos que están siendo creados por los miembros de Hyperledger desde dentro de la red, sin comprometer su privacidad. El proyecto fue contribuido por DTCC, Intel e IBM.

Diseñado para crear una aplicación web fácil de usar, Hyperledger Explorer puede ver, invocar, implementar o consultar:

  • Bloques
  • Transacciones y datos asociados
  • Información de red (nombre, estado, lista de nodos)
  • Smart Contracts (códigos de cadena y familias de transacciones)
  • Otra información relevante almacenada en el ledger.

La capacidad de visualizar datos es de importancia crítica, a fin de extraer valor de ella. Hyperledger Explorer proporciona esta funcionalidad. Los componentes clave incluyen un servidor web, una interfaz de usuario web, sockets web, una base de datos, un repositorio de seguridad y una implementación de blockchain.

hyperledger-exolorer-incubation-v11.gif

Hyperledger Composer

Hyperledger Composer es uno de los módulos más interesantes y que será en un futuro uno de los más populares, ya que proporciona un conjunto de herramientas para desarrolladores que facilitan la tarea de construir redes de blockchain.

Hyperledger Composer ha creado un lenguaje de modelado que le permite definir los activos, los participantes y las transacciones que conforman la red utilizando vocabulario del dominio. Además, la lógica de transacción la escriben los desarrolladores que usan Javascript. Esta interfaz simple permite a las personas de negocios y tecnólogos trabajar juntos en la definición de su red de negocios.

Estas herramientas te permiten:

  • Modelar la red
  • Creación más rápida de aplicaciones blockchain, eliminando el esfuerzo requerido para construir aplicaciones blockchain desde cero, de hecho generan esqueletos de aplicaciones en AngularJS
  • Generar API REST para interactuar con su red blockchain
  • Riesgo reducido con un diseño eficiente y bien probado que alinea la comprensión entre los analistas funcionales y técnicos
  • Mayor flexibilidad ya que las abstracciones de mayor nivel hacen que sea mucho más simple iterar.
  • Sistema de testing

Construido en Javascript, Hyperledger Composer proporciona un conjunto de componentes fácil de usar que los desarrolladores (especialmente desarrolladores de Javascript) pueden aprender e implementar rápidamente. El proyecto fue contribuido por Oxchains e IBM.

Dejo un video de una introducción a Composer (en inglés)

 

Anuncios

Blockchain Hyperledger: Introducción

Hyperledger es un proyecto open source creado para avanzar las tecnologías blockchain en cualquier tipo de ámbito. Coordinado por The Linux Foundation, es una colaboración global de miembros de diversas industrias y organizaciones. Cuenta en este momento con una gran cantidad de soluciones. Hyperledger se puede ver como un sistema operativo para marketplaces, redes de intercambio de datos, microempresas y comunidades digitales descentralizadas. Intenta asimismo reducir significativamente el coste y la complejidad de los negocios.

Los blockchain de Hyperledger son por lo común “permissioned” o autorizadas (ver Tipos de Blockchain : Públicos y privados ), lo que significa que las partes que se unen a la red están autenticadas mediante un módulo de autenticación y autorizadas para participar en la red. El objetivo principal de Hyperledger es crear frameworks para ledgers distribuidos, open source, con capacidades corporativas y código suficiente para dar respuesta a las necesidades empresariales.

En los blockchain sin permiso, como la cadena de bloques de Bitcoin o la cadena de bloques de Ethereum, cualquiera puede unirse a la red, así como también escribir y leer transacciones. Los actores en el sistema no son conocidos, lo que significa que podría haber algunos actores maliciosos dentro de la red.

Hyperledger reduce estos riesgos de seguridad y garantiza que solo las partes que deseen realizar transacciones sean las que forman parte de la transacción y, en lugar de mostrar el registro de las transacciones en toda la red, solo son visibles para las partes involucradas. Por lo tanto, Hyperledger ofrece todas las capacidades de la arquitectura blockchain: privacidad de datos, intercambio de información, inmutabilidad, una pila completa de protocolos de seguridad, etc.

Hyperledger tiene (mayo-08) muchos proyectos bajo su paraguas:

hyperledger-community-update-feb-20-2018-6-638.jpg

Hay también algunas diferencias fundamentales entre hyperledger y los blockchain sin permiso como Bitcoin o Ethereum que pasamos a resumir:

Bitcoin

Ethereum

Hyperledger

Basado en Criptomonedas

No

Autorizados

No

No

Si, aunque Sawtooth puede configurarse sin permiso

Pseudo-anónimo

No

No

Auditable

Immutable ledger

Modularidad

No

No

Smart contracts

No

Consensus protocol

PoW

PoW

Varios

Componentes de los Frameworks Hyperledger

Los frameworks de blockchain comerciales Hyperledger se utilizan para crear blockchains para uso empresarial. Son diferentes a los públicos como Bitcoin blockchain y Ethereum. Los frameworks de Hyperledger incluyen:

  • Un ledger distribuido de solo adición
  • Un algoritmo de consenso para aceptar cambios en el ledger
  • Privacidad de las transacciones a través de un acceso permitido
  • Contratos inteligentes para procesar solicitudes de transacción.

Components_of_blockchain.jpg

En los siguientes puntos veremos cada uno de estos frameworks.

Hyperledger Iroha

Hyperledger Iroha es un framework diseñado para ser simple y fácil de incorporar en proyectos de infraestructura que requieren tecnología ledger distribuida. Hyperledger Iroha hace hincapié en el desarrollo de aplicaciones móviles con bibliotecas cliente para Android e iOS, lo que lo diferencia de otros marcos de Hyperledger. Inspirado por Hyperledger Fabric, Hyperledger Iroha busca complementar Hyperledger Fabric e Hyperledger Sawtooth, a la vez que proporciona un entorno de desarrollo para que los desarrolladores de C ++ contribuyan a Hyperledger.

Hyperledger Iroha presenta una construcción simple, un diseño C ++ moderno y domain-driven, junto con el algoritmo de consenso YAC.

Hyperledger Sawtooth

Hyperledger Sawtooth, contribuido por Intel, es un framework de blockchain que utiliza una plataforma modular para construir, desplegar y ejecutar ledgers distribuidos. Las soluciones de ledgers distribuidos construidas con Hyperledger Sawtooth pueden utilizar varios algoritmos de consenso basados en el tamaño de la red. Incluye el algoritmo de consenso Prueba de tiempo transcurrido (PoET), que proporciona la escalabilidad de la cadena de bloques de Bitcoin sin el alto consumo de energía. PoET permite una red altamente escalable de nodos de validación. Hyperledger Sawtooth está diseñado para ofrecer versatilidad, con soporte para despliegues autorizados y sin permiso, siendo la única tecnología hyperledger (por el momento) que permite ambos despliegues. Tiene varias características importantes:

  • Dispone de un acuerdo de estado distribuido, lo que implica que todos los nodos dispongan del mismo conocimiento de la información, ningún nodo puede obviar la información de los demás.
  • Es capaz de crear interfaces para cualquier lógica de transacción, en la integración con Hyperledger Burrow consigue poder ejecutar cualquier código de máquina virtual Ethereum, como solidity y ejecutarse en Sawtooth

En un caso de uso de cadena de suministros o procedencia, como veremos en un video más adelante, permite hacer crecer a la red y cambiar los mecanismos de consenso en caliente. Esta característica permite una alta escalabilidad y flexibilidad en este framework.

El siguiente es un bonito video sobre un caso de uso de trazabilidad de procedencia de pescado:

 

Hyperledger Fabric

Hyperledger Fabric fue la primera propuesta para un framework en Hyperledger, que combina el trabajo previo realizado por Digital Asset Holdings, el libconsensus de Blockstream y OpenBlockchain de IBM. Hyperledger Fabric tiene una arquitectura modular, que permite que componentes como el consenso y los servicios de identificación sean plug-and-play. Hyperledger Fabric permite que las entidades realicen transacciones confidenciales sin pasar información a través de una autoridad central. Esto se logra a través de diferentes canales que se ejecutan dentro de la red, así como la división del trabajo que caracteriza a los diferentes nodos dentro de la red. Por último, es importante recordar que, a diferencia de Bitcoin, que es una cadena pública, Hyperledger Fabric admite implementaciones autorizadas. Es útil en casos de uso donde hay una gran red de blockchain y deseas compartir datos sólo con ciertas partes,  ya que permite crear canales privados con esos participantes.

 

La principal diferencia en Hyperledger Fabric con respecto a Bitcoin y Ethereum es que se trata de una implementación de una tecnología de ledger distribuida autorizada.
Bitcoin y Ehereum son redes esencialmente públicas y sin permiso, donde todos pueden unirse anónimamente.

Hyperledger Indy

Hyperledger Indy es un ledger distribuido especialmente diseñado para hacer una identidad distribuida, permite tener un lugar de confianza para administrar las claves, esquemas, pruebas y otra información que necesita, para habilitar las interacciones de pares confiables entre diferentes identidades, tal como se almacenan en una instancia de cadena de bloques de Hyperledger Indy. Esta identidad es propiedad de la persona que subyace a la misma. Se puede usar para compartir diferentes datos correlacionables entre la persona identificada e identidades con las que se desea interactuar, filtrando la información privada y no divulgando información que no se desee compartir.
Uno de los principales usos de Hyperledger Indy es la creación de una utilidad pública global para la identidad que está siendo creada por la Fundación Sovrin.

Según el proyecto:

Hyperledger Indy permite que los usuarios autentiquen la identidad en función de los atributos que desean almacenar y compartir. Esto puede reducir la cantidad de responsabilidad contenida dentro de una empresa porque los datos se pueden mantener con el usuario y volver a presentarlos de una manera que puede confiar y validar que lo que se ha dicho realmente fue dicho y es confiable para las otras partes con las que hace negocios.

Hyperledger Burrow

Conocido formalmente como eris-db, Hyperledger Burrow fue lanzado en diciembre de 2014. Hyperledger Burrow es una máquina de smart contracts autorizada que proporciona un cliente modular de blockchain con un intérprete de smart contracts autorizado incorporado a la especificación del Ethereum Virtual Machine (EVM). Es la única implementación de EVM con licencia de Apache.

Los siguientes son los principales componentes de Burrow:

  • El Gateway proporciona interfaces para integración de sistemas e interfaces de usuario
  • El motor de aplicación de smart contract facilita la integración de la lógica de negocio compleja
  • Consensus Engine tiene el doble propósito de:
    • Mantener la pila de red entre los nodos
    • Pedidos de transacciones
  • La Application Blockchain Interface (ABCI) proporciona la especificación de la interfaz para el motor de consenso y el motor de aplicación de smart contracts para conectarse.

Algunos proyectos menos conocidos de Blockchain

Chain Core

Chain Core es un sistema blockchain autorizado que se centra principalmente en servicios financieros, como monedas, valores, derivados, tarjetas de regalo y puntos de fidelidad. La compañía se asocia con clientes para lanzar y operar una red bajo la marca del cliente. Gracias a sus alianzas estratégicas con compañías como Capital One, Citigroup, Fiserv, Nasdaq, Orange, Visa, etc., la compañía recaudó más de $ 40 millones en fondos desde 2014.

Dentro de la red Chain Core, la creación y transferencia de activos está descentralizada. Sin embargo,  el funcionamiento de la red se rige por un conjunto designado de entidades conocidas como federación.

La plataforma cuenta con Chain Testnet, que permite el desarrollo descentralizado de aplicaciones en Chain Core, operado por Chain, Microsoft, y la Iniciativa para Cryptocurrencies and Contracts (IC3).

https://chain.com/technology/

Corda

R3 es un consorcio de más de cien grandes instituciones financieras mundiales, que busca aprovechar las tecnologías de ledger distribuidos para registrar, gestionar y automatizar acuerdos legales entre empresas a través de su solución de software, llamada Corda.

Corda es una de ledger distribuido, que presenta una red P2P de estilo blockchain; sin embargo, no es una plataforma blockchain. A diferencia de las blockchains, que involucran la disponibilidad global de datos a través de la red y validadores de terceros, Corda solo permite el acceso a la información y las funciones de validación a las partes involucradas en la transacción. Con una arquitectura de software diferente, logra el consenso entre las empresas a nivel de acuerdos individuales, no el nivel del sistema, al tiempo que admite una variedad de mecanismos de consenso.

https://www.corda.net/

Quorum

Creado por JPMorgan, Quorum es, de hecho, una rama del blockchain público de Ethereum, que utiliza un algoritmo de consenso basado en votación para facilitar un ledger distribuido y una plataforma de smart contracts. La privacidad de los datos se logra dentro de la red al permitir la visibilidad de los datos según la necesidad de conocerlos. La plataforma está diseñada para admitir la privacidad a nivel de la transacción y la transparencia de toda la red. La red valida todos los smart contracts y el estado general del sistema a través de la participación de todos los nodos en ejecución. Al igual que con otros ledgers autorizados, el cumplimiento normativo es el centro de atención en la plataforma Quorum.

https://www.jpmorgan.com/global/Quorum

IOTA

La criptomoneda IOTA existe desde 2015 y afirma ser la primera criptomoneda que proporciona todo el ecosistema basado en blockchain sin bloques para permitir transacciones de máquina a máquina (M2M).

IOTA, sin embargo, es más que solo una criptomoneda. Esencialmente, la plataforma implica una generalización del protocolo blockchain (la tecnología llamada Tangle) que se encuentra en el backend de la plataforma IOTA.

En lugar de pagar a los mineros para validar las transacciones, la arquitectura de la red implica validación basada en pares. Podemos pensar en una analogía simple, la de un maestro que califica la tarea de los estudiantes: los estudiantes son los clientes / usuarios en el protocolo de Bitcoin, y el maestro es el minero / validador. La tecnología Tangle les pide a los estudiantes (usuarios) que califiquen la tarea de los demás, haciendo que la necesidad de un maestro (validador externo) sea redundante y evite los gastos relacionados con el trabajo del docente / validador. Esto permite que la plataforma sea completamente gratuita, sin enfrentar los desafíos de escalabilidad que son inherentes a la primera generación de blockchains.

Además, la plataforma se ha diseñado para el uso con dispositivos conectados o el Internet de las cosas, lo que permite explorar nuevos modelos de negocio haciendo que cada recurso tecnológico sea un servicio potencial para ser intercambiado en un mercado abierto en tiempo real, sin comisiones.

https://www.iota.org/

 

Blockchain: Algoritmos de consenso

El consenso en la red se refiere al proceso de lograr un acuerdo entre los participantes de la red sobre el estado correcto de los datos en el sistema. El consenso lleva a que todos los nodos compartan exactamente los mismos datos. Un algoritmo de consenso, por lo tanto, hace dos cosas: asegura que los datos en el libro mayor o ledger son los mismos para todos los nodos de la red y, a su vez, evita que actores malintencionados manipulen los datos. El algoritmo de consenso varía con las diferentes implementaciones de blockchain.

Mientras que la cadena de bloques de Bitcoin utiliza Prueba de trabajo (proof of work) como algoritmo de consenso, otros blockchains y ledgers distribuidos están implementando una variedad de algoritmos de consenso, como Proof of Stake, Proof of Burn, Proof of Capacity, Proof of Elapsed Time y muchos otros, dependiendo en sus requisitos únicos.

Proof of Work (PoW)

El algoritmo de consenso de prueba de trabajo implica resolver un desafío computacional complejo y pesado con el fin de crear nuevos bloques en la cadena de bloques de Bitcoin. Coloquialmente, el proceso se conoce como ‘minería’, y los nodos de la red que se dedican a la minería se conocen como ‘mineros’. El incentivo para las transacciones mineras radica en los pagos económicos, donde los mineros que compiten son recompensados ​​con 12.5 bitcoins y una pequeña tarifa de transacción. La prueba es difícil de crear pero fácil de verificar.

Existen múltiples críticas para el algoritmo de consenso PoW. PoW requiere una gran cantidad de energía, dado el algoritmo computacionalmente pesado. Además, PoW tiene una alta latencia de validación de transacciones, y la concentración de la potencia minera se encuentra en países donde la electricidad es barata. En términos de seguridad de la red, PoW es susceptible al ‘51% de ataque ‘, que se refiere a un ataque a un blockchain por un grupo de mineros que controlan más del 50% de la potencia de computación de la red.

Proof of Stake (PoS)

El algoritmo de proof of stake es una generalización del algoritmo de prueba de trabajo. En PoS, los nodos se conocen como los “validadores” y, en lugar de extraer la cadena de bloques, validan las transacciones para obtener una tarifa de transacción. No se debe realizar una minería, ya que todas las monedas existen desde el primer día. En pocas palabras, los nodos se seleccionan aleatoriamente para validar bloques, y la probabilidad de esta selección aleatoria depende de la cantidad de participación que se tenga. Entonces, si el nodo X posee 2 monedas y el nodo Y posee 1 moneda, el nodo X tiene el doble de probabilidades de ser llamado para validar un bloque de transacciones.

La implementación específica de PoS puede variar, dependiendo del caso de uso, o como una cuestión de diseño de software. Las instancias incluyen Proof of deposit y Proof of burn. El algoritmo PoS ahorra costosos recursos computacionales que se gastan en la minería bajo un régimen de consenso PoW.

Proof of Elapsed Time (PoET)

Este algoritmo fue desarrollado inicialmente por Intel. El algoritmo de consenso de Prueba de tiempo transcurrido o proof of elapsed time emula la Prueba de trabajo de estilo Bitcoin. La implementación de Sawtooth de Hyperledger es un ejemplo de PoET.

En lugar de competir para resolver el desafío criptográfico y extraer el próximo bloque, como en el blockchain de Bitcoin, el algoritmo de consenso PoET es un híbrido de una lotería aleatoria y de un orden de llegada. En PoET, cada validador recibe un tiempo de espera aleatorio. El validador con el menor tiempo de espera para un bloque de transacción en particular es elegido líder. Este “líder” crea el siguiente bloque de la cadena.

Para garantizar que efectivamente no se está “mintiendo” para ser el líder del bloque se la cadena, PoET confía en unas instrucciones “seguras” de Intel, ejecuta una instrucción SGX del procesador para generar este tiempo aleatorio de espera.

Simplified Byzantine Fault Tolerance (SBFT)

El algoritmo de consenso SBFT implementa una versión adaptada del algoritmo practical byzantine fault tolerance (PBFT), y busca proporcionar mejoras significativas sobre el protocolo de consenso proof of work de Bitcoin. La idea básica involucra a un único validador que agrupa las transacciones propuestas y forma un nuevo bloque. Tenga en cuenta que, a diferencia de la cadena de bloques de Bitcoin, el validador es una parte conocida, dada la naturaleza permitida del ledger libro mayor. El consenso se logra como resultado de un número mínimo de otros nodos en la red que ratifican el nuevo bloque. Para ser tolerante a errores bizantinos, el número de nodos que debe alcanzar el consenso es 2f + 1 en un sistema que contiene 3f + 1 nodos, donde f es el número de fallas en el sistema. Por ejemplo, si tenemos 7 nodos en el sistema, entonces 5 de esos nodos deben estar de acuerdo si 2 de los nodos están actuando de manera incorrecta.

El ejemplo práctico sería el de ByzCoin, que busca realizar mejoras importantes sobre el protocolo original de Bitcoin. Al abordar el desafío de la escalabilidad debido a la alta latencia, las transacciones de ByzCoin se comprometen irreversiblemente con la cadena de bloques en cuestión de segundos. La ventaja adicional es que los árboles de comunicación optimizan los compromisos de transacción y la verificación en operaciones normales.

Proof of Authority (PoA)

Sólo se puede usar con permissiones ledgers o ledgers autorizados, ya que existen nodos validadores que tienen la autoridad para crear bloques, y están especialmente designados a tal efecto. Los ledgers  que utilizan el PoA requieren la aprobación de la mayoría de los validadores para que se cree un bloque.

Conclusiones

Esta fue una descripción general sobre algún algoritmo de consenso utilizado en el mundo blockchain.  Por supuesto, hay muchos otros posibles. En general, podemos distinguir tres tipos de consenso:

  • El consenso estándar de Prueba de trabajo
  • Consentimiento basado en votación autorizado (PoA, SBFT)
  • Concesión basada en lotería autorizada (PoET)

El consenso que se elija en una implementación de cadena de bloques depende del tipo de red y de los datos manejados.

Los tipos de lotería serían más adecuados para redes grandes. Los tipos de votación son más adecuados para redes más pequeñas y reducen la latencia a un mínimo.

 

 

 

Certificando un documento en Blockchain usando stamp.io

En esta entrada  mostraremos cómo podemos tomar un documento y certificarlo en los blockchain de Bitcoin y Ethereum. Vamos a usar la herramienta Stamp.IO, y tomaremos un archivo y, en cierto sentido, lo tendré certificado en el bloques. Una vez hecho esto, la salida de Stamp.IO nos mostrará un certificado.

Lo primero será darse de alta en https://stamp.io/ , es un registro sencillo. Posteriormente veremos el panel principal de la aplicación:

stamp_io_panel

Aquí podemos subir cualquier tipo de archivo. Por mi parte, subo un archivo gráfico y obtengo un certificado.

stamp.png

Se llama stampery certificate e indica el nombre del archivo, cuando se agregó a la estampación, y la persona que, en cierto sentido, lo firmó. Asimismo, esperando unos 10 o 15 minutos dispondremos de los hash en ethereum y bitcoin.

bitcoinethereumproof

Así, un hash particular de este documento se almacena en transacciones que fueron colocadas en varios bloques, tanto en el blockchain de Ethereum como en el de Bitcoin.

Así que, si abrimos esta transacción en particular en un explorador de bloques (ver entrada de El blockchain de Bitcoin y Ethereum: Ejemplos de bloques), veremos que había dentro de esta transacción un hash del documento, y esto se hizo hace un número de días y se agregó a este bloque en particular en el blockchain de  Ethereum:

https://etherscan.io/tx/0xf17ebf79e7ebfc647a3315329f878896320debc24675772b6b6f613dd9c289c5

Si examinamos el bloque bitcoin, también podemos ver sus datos:

https://www.blocktrail.com/BTC/tx/229454fed89f3af502e11df90e91cfe89021906a60aac3de45d8d86d143e647f

Por lo tanto, Stamp.IO es una herramienta que se puede utilizar para poner y verificar hashes de documentos en el Ethereum y Bitcoin blockchains.

Blockchain: Smart Contracts

En 1996, Nick Szabo acuñó el término smart contract o contrato inteligente.

Los Smart Contracts son simplemente programas informáticos que ejecutan acciones predefinidas cuando se cumplen ciertas condiciones dentro del sistema. Pueden considerarse como protocolos informáticos para facilitar, verificar o hacer cumplir la negociación de un contrato legar. Los Smart Contracts proporcionan el lenguaje de las transacciones que permiten modificar el estado del ledger distribuido. Pueden facilitar el intercambio y la transferencia de cualquier cosa de valor (por ejemplo, acciones, dinero, contenido, propiedad).
Hoy, los contratos inteligentes de Ethereum están diseñados para funcionar en todos los nodos de la red Ethereum.

Blockchain: Inmutabilidad de datos

La inmutabilidad de los datos que se encuentran en el blockchain es quizás la razón más poderosa y convincente para implementar soluciones basadas en blockchain para una variedad de procesos que actualmente se registran en servidores centralizados. Esta característica de inmutabilidad o “inalterable en el tiempo” hace que blockchain sea útil para la contabilidad, las transacciones financieras, la administración de identidades y la propiedad, administración y transferencia de activos, solo por nombrar algunos ejemplos. Una vez que se escribe una transacción en la cadena de bloques, nadie puede cambiarla o, al menos, sería extremadamente difícil cambiarla.

De acuerdo con Antony Lewis, el Director de Investigación en R3,

Cuando la gente dice que las cadenas de bloques son inmutables, no significa que los datos no se puedan modificar, significa que es extremadamente difícil cambiarlo, y si lo intentas, es muy fácil detectar el intento

Profundicemos en esta afirmación un poco más. Es extremadamente difícil cambiar las transacciones en un blockchain, porque cada bloque está vinculado al bloque anterior al incluir el hash del bloque anterior. Este hash incluye el hash de raíz de Merkle de todas las transacciones en el bloque anterior. Si una sola transacción fuera a cambiar, no solo cambiaría el hash raíz de Merkle, sino también el hash contenido en el bloque modificado. Además, cada bloque subsiguiente debería actualizarse para reflejar este cambio. En el caso del modelo de consenso de prueba de trabajo o proof of work, la cantidad de energía requerida para volver a calcular la ausencia de este bloque y cada bloque subsiguiente sería prohibitiva. Por otro lado, si alguien modificó una transacción en un bloque sin realizar los pasos necesarios para actualizar los bloques subsiguientes, sería fácil recalcular los valores hash usados ​​en los bloques y determinar si algo anda mal.

Veamos un ejemplo de cómo funciona esto. En el siguiente diagrama, vemos los bloques originales y las transacciones para el Bloque 11. Específicamente, vemos que la raíz de Merkle para las transacciones en el Bloque 11 es Hash #ABCD, que es el hash combinado para las cuatro transacciones en este bloque. Ahora, digamos que alguien entra e intenta cambiar la Transacción A por la Transacción A ‘. Esto, a su vez, modifica los hashes que se almacenan en el árbol de Merkle, y la raíz de Merkle cambia a Hash # A’BCD. Además, el hash del Bloque Anterior almacenado en el Bloque 12 también necesita ser modificado para reflejar el cambio general en el hash para el Bloque 11

BLOCKCHAIN_IMMUTABILITY

Blockchain: Peer 2 Peer y consenso

Históricamente, la mayoría de las aplicaciones utilizan un servidor central (o servidores). Para que un usuario / cliente envíe un mensaje a otro usuario / cliente en la red, la solicitud debe enviarse al hub o a un servidor central, que luego lo dirige a la computadora correcta.

Las redes peer-to-peer (P2P) primero se hicieron populares por Napster (y más tarde BitTorrent) y consisten en sistemas informáticos que están conectados directamente entre sí a través de Internet, sin un servidor central. Los pares contribuyen a la potencia de cómputo y almacenamiento que se requiere para el mantenimiento de la red. Las redes P2P generalmente se consideran más seguras que las redes centralizadas, ya que no tienen un único punto de ataque, como en el caso de una red basada en servidores centrales, donde la seguridad de toda la red puede verse comprometida si el servidor central es atacado con éxito Como resultado, las grandes empresas invierten cantidades significativas de recursos financieros para fortalecer sus servidores centrales. Según el “Informe de Riesgo Global 2016” del Foro Económico Mundial  en ese año esta inversión en seguridad superó los 445 mil millones de dólares.

Los sistemas P2P sin permiso (o públicos), no requieren una cantidad establecida de pares para estar en línea y generalmente son más lentos. Las redes P2P privadas deben garantizar el tiempo de actividad y requieren un alto nivel de calidad de servicio en los enlaces de comunicación.

Una red blockchain es un grupo de computadoras que están organizadas en una arquitectura Peer-to-Peer. El consenso es un proceso mediante el cual los pares sincronizan los datos en el blockchain. Hay una serie de mecanismos o algoritmos de consenso, como proof of work, proof of stake, proof of elapsed time o simplified byzantine fault tolerance.
Bitcoin usa proof of work, Ethereum usa proof of work pero está migrando a proof of stake. Hyperledger Sawtooth utiliza proof of elapsed time.

Tipos de Blockchain : Públicos y privados

Un blockchain puede ser sin permiso (como Bitcoin o Ethereum) o estar autorizado (como los diferentes frameworks de cadena de bloques de Hyperledger). Una blockchain sin permiso también se conoce como blockchain público, porque cualquiera puede unirse a la red. Una cadena de bloques autorizada o cadena de bloques privada requiere una verificación previa de los participantes de la red, y estas partes generalmente son conocidas entre sí.

La elección entre blockchain público o privado debe ser tomada por la aplicación  y la necesidad de negocio. La mayoría de las aplicaciones empresariales implican una investigación exhaustiva antes de que las partes acuerden hacer negocios entre ellos. Un ejemplo en el que varias empresas intercambian información es la gestión de la cadena de suministro. La gestión de la cadena de suministro es un caso de uso ideal para blockchains privados. No se quiere que las compañías no “validadas” participen en la red. Cada participante de la cadena de suministro requeriría permisos para ejecutar transacciones en el blockchain. Estas transacciones permitirían a otras compañías entender en qué parte de la cadena de suministro se encuentra un artículo en particular.

Por el contrario, cuando una red puede ‘distribuir’ la confianza, facilitando a las partes a realizar transacciones sin necesariamente tener que verificar la identidad de cada una, como el blockchain de Bitcoin, una cadena de bloques pública es más adecuada. Muchas de estas instancias involucran la venta o distribución al público. Las criptomonedas generalmente implican implementaciones de blockchains públicos.

Blog de WordPress.com.

Subir ↑