Aspectos técnicos sobre Blockchain

1 December, 2020 |

En el artículo anterior: “Introducción a Blockchain Empresarial”, conocimos esta tecnología, sus principales características y bondades, junto a su clasificación y algunos casos de uso consolidados. En esta ocasión, aprenderemos sobre los aspectos técnicos que la conforman y presentaremos brevemente cinco de las principales plataformas disponibles para la implementación de un Blockchain empresarial.

Cadena de bloques
El nombre Blockchain deriva de la estructura de datos, donde un grupo de transacciones son agrupadas en bloques, encadenados de manera secuencial. Sin entrar en los detalles de una implementación particular, cada bloque suele estar compuesto por un índice (1, 2, 3, n), una marca de tiempo (fecha y hora de creación), los datos (transacciones o pequeños programas denominados contratos inteligentes), un campo denominado nonce (number only used once) obtenido a través de consenso, y dos hashes (representación alfanumérica de ancho fijo, que se obtiene de aplicar una función criptográfica), el del bloque anterior y el propio.

El cálculo de un hash es una operación matemática sencilla, que entrega un resultado irrepetible, a partir del cual es imposible reconstruir la información de origen. Gracias a la inclusión del hash previo en el bloque actual, cualquier modificación o eliminación de un bloque, invalida automáticamente a todos los siguientes, de aquí que solo pueden ser agregados.

Red entre pares y consenso
Las redes blockchain son siempre distribuidas, del tipo peer-to-peer (P2P, o entre pares). En las mismas, en lugar de confiar en un servidor central, los equipos están directamente conectados unos con otros. Cada integrante contribuye al poder de cómputo (consumido para generar consenso) y al almacenamiento. Se consideran más seguras que una red centralizada, dado que no hay un punto de ataque único, y además ofrecen tiempo de actividad del 100% (la red permanece funcionando mientras haya miembros conectados).

Las información que se envía para ser agregada a la cadena, está criptográficamente firmada por una clave privada, y va acompañada de la correspondiente clave pública, para que los integrantes de la red puedan verificar su origen. Para consolidarse como un nuevo bloque, las partes deben acordar empleando un protocolo de consenso, el cual asegura que la cadena es la misma en cada nodo y que no hay actores maliciosos manipulando los datos.

Los protocolos de consenso, son mecanismos empleados para que los miembros de una red blockchain se pongan de acuerdo. En redes públicas y abiertas, como Bitcoin y Ethereum, se usan protocolos computacionalmente complejos, siendo uno de los más conocidos Proof-of-work (PoW). Básicamente, se busca que además de ser extremadamente difícil de modificar (hace falta entender al detalle cómo funciona y contar con el control de al menos el 51% de la red), sea totalmente inviable intentarlo (precisa equipamiento especializado, basado en dispositivos tales como GPUs o FPGAs, más el consumo de energía para nada despreciable, requerido para volver a calcular el hash de los bloques).

Contratos Inteligentes
Los Smart Contract, son programas del estilo if…then, que se guardan y son ejecutados por el blockchain. Derivan su nombre de principios legales, y la idea es que de manera segura, evitando un posible actor malicioso humano, a partir de cumplirse ciertas condiciones se ejecuten transacciones automáticas.

Existen algunos lenguajes específicos, como Solidity y Vyper, y otros más generales, como Golang, Node y Java. El soporte varía de plataforma en plataforma, habiendo algunas, por lo general destinadas a criptomoneda, que no los soportan.

Principales plataformas empresariales
La implementación de una blockchain a nivel programa informático, lleva al extremo consideraciones respecto a seguridad, rendimiento y escalabilidad del sistema. Es muy poco probable, y nada recomendable si no es el objetivo crear una nueva alternativa, realizar una codificación desde cero. En su lugar, disponemos de cientos de plataformas libres, una característica destacable dada la seguridad y transparencia que deben brindar, listas para ser implementadas. Si bien muchas están destinadas a criptomonedas, las hay también para su uso empresarial. A continuación daremos una breve descripción de cinco de las plataformas más conocidas con dicha finalidad.

Ethereum: presentada a finales de 2013, y desplegada para su uso entre 2015 y 2016, es una de las alternativas más maduras. Fue de las primeras en separar el concepto blockchain del caso particular de criptomonedas, y quien introdujo el concepto de Contratos Inteligentes. Posee moneda propia, el ETH, y es ideal para la realización de aplicaciones descentralizadas sobre redes públicas, pero también, pese a su falta de permisos, es ampliamente utilizada en ámbitos empresariales. Es respaldada por la Ethereum Enterprise Alliance (EEA, creada en 2017), una organización sin fines de lucro, que cuenta con más de 200 miembros, entre los que se incluyen empresas de las 500 más grandes del mundo, instituciones académicas, start-ups y proveedores de soluciones basadas en Ethereum.

Hyperledger Fabric: Hyperledger es un proyecto de la Linux Foundation lanzado a fines de 2015, que nuclea desarrollos de blockchain empresarial. Su integrante más conocido es Hyperledger Fabric, inicialmente desarrollado, y luego donado, por IBM. Es fuertemente permisionada y privada, al extremo de permitir comunicaciones entre dos integrantes de la red. Por su enfoque empresarial, utiliza protocolos de consenso más ligeros, permitiendo mayor cantidad de operaciones por segundo. Su primera versión para producción, la 1.0, es de mediados de 2017, habiéndose lanzado la 2.0 a principios de 2020.

Ripple: posee su raíces en un proyecto previo a Bitcoin, con lo cual presenta algunas características técnicas distintivas. Surge como plataforma en 2012, principalmente para usos financieros, teniendo a los principales bancos entre sus usuarios. Se basa en el uso de una criptomoneda, el XRP, y a diferencias de las principales plataformas modernas, no cuenta con soporte para Contratos Inteligentes (están siendo agregados a fines del 2020).

Corda: lanzada en 2016 por el consorcio R3, formado principalmente por instituciones financieras. Es permisionada y no posee moneda asociada. Su primer versión estable es de 2017, donde estaba fuertemente enfocada en la banca, aunque con el tiempo fueron surgiendo otros usos.

Quorum: un desarrollo de J.P. Morgan, anunciado en 2016. Básicamente, es una variante de Ethereum enfocada en el mundo empresarial, donde se reemplazó el mecanismo de consenso por uno más veloz y se agregaron permisos. Promediando el 2020 pasó a manos de ConsenSys, un proveedor de soluciones tecnológicas empresariales basadas en Ethereum.

Conclusiones
La estructura de datos, el tipo de red distribuida, el tratamiento criptográfico y la utilización de consenso, confieren a la tecnología las características de inmutabilidad, trazabilidad y seguridad. En cuanto al desarrollo de Contratos Inteligentes, precisa conocimientos específicos sobre la plataforma donde se ejecutará, saber interactuar con su API y acostumbrarse a un nuevo paradigma de programación.

Más allá de las diversas plataformas disponibles, el mundo empresarial parece principalmente distribuido entre Ethereum e Hyperledger Fabric, con la primera más volcado a B2C (Business to Consumer) y la segunda a B2B (Business to Business). Sus principales diferencias radican en si la red es pública y sin permisos, o privada y permisionada. Para decidir sobre una u otra, debe tenerse en cuenta la posible necesidad de consumo de monedas en el primer caso, y que en el segundo caso, basado en el conocimiento acerca de los miembros que pasan a ser entes registrados e identificados en la red, pueden utilizarse protocolos de consenso más ligeros, lo que incrementa la posible cantidad de operaciones por segundo.