Blockchain
La definición más sencilla del concepto Blockchain (o Cadena de Bloques en español), atendiendo a su principal funcionalidad y a su principal característica, es la de base de datos distribuida y segura.
Entendemos, por tanto, que la Blockchain es un sistema de registro de transacciones, ya sean de valor o de datos o ambas, entre dos usuarios que se almacena en múltiples lugares o nodos de una red distribuida y cifrados criptográficamente, protegiendo así la seguridad y la privacidad de los registros.
Toda la secuencia de registros se organiza en unidades o bloques, que son objeto de validación o confirmación por parte de los nodos que conforman la red. Una vez validado un bloque se vincula criptográficamente al bloque anterior de la cadena, consiguiendo de esta manera otra de las cualidades de la blockchain: la inmutabilidad de sus registros.
Esta primera validación de un bloque es un proceso que está recompensado para el nodo que la realiza. De esta manera se incentiva a los nodos a participar en el consenso de la red. Una vez producida la creación del bloque la información se propaga a los demás nodos donde igualmente se produce esa confirmación. De esta manera se guarda una copia de la cadena en cada nodo, imposibilitando que se introduzca o se altere información falsa en la cadena al no coincidir con los registros almacenados en cada uno de ellos.
Con todo este proceso conseguimos un sistema de verificación de transacciones entre pares sin la intervención de ningún intermediario, con un almacenamiento seguro por su distribución y por utilizar sistemas de registro encriptados, lo que proporciona la inmutabilidad de la información. Al operarse desde direcciones que identifican una billetera y no al usuario se preserva también la privacidad de los mismos.
Estos procesos de la Blockchain como sistema permiten la primera, eficiente, eficaz y económica solución para el problema de redes conocido como el problema de los Generales Bizantinos, que implica la capacidad de mandar información sin necesidad de confiar en los pares de la red.
Estructura
Protocolo
Las reglas que regulan la comunicación entre dos nodos de una cadena de bloques es el protocolo.
El protocolo de una cadena de bloques es un conjunto de reglas que aplica a todos sus participantes; gobierna la manera en la que se comunican datos en la red, cómo deben constituirse los bloques y transacciones, y cómo se ve recompensado cada usuario por su participación. Al mismo tiempo, establece los incentivos para que los participantes actúen con honradez, pues las conductas honradas resultan la estrategia más redituable.
Se le llama teoría de juegos (game theory) al estudio de modelos matemáticos de interacción estratégica entre las entidades racionales encargadas de tomar decisiones (rational decision-makers), es decir, mineros, nodos y los usuarios de criptomonedas. Cada usuario busca sacarle el máximo provecho a la red. Cuando Satoshi Nakamoto publicó el libro banco de Bitcoin, introdujo un sistema en el que cada participante posee un incentivo económico para apegarse a las reglas del protocolo. Es decir, es más provechoso seguir las reglas que contravenirlas.
La inmutabilidad de la Blockchain reside, por tanto, en que el coste de modificar un registro es mayor a los beneficios. Por el contrario, una actitud honesta genera beneficio al procesar las transacciones y validando nuevos bloques de las mismas.
Mecanismo de consenso
Es lo que permite a los distintos nodos que conforman la red llegar a un acuerdo para determinar qué transacción ocurrió antes en el tiempo y, por tanto, es la que se recogerá en el registro de la cadena. De este mecanismo de consenso emana la confianza de los participantes en la veracidad de lo ocurrido.
Adicionalmente incluye los mecanismos de creación, validación, distribución y verificación por pares del siguiente bloque de la blockchain. Estos mecanismos incluyen los correspondientes algoritmos de hash, encriptación y firma digital que se utilice en la blockchain.
Ejemplos de estos son:
- Prueba de Trabajo (PoW - Proof of Work)
- Prueba de Participación (PoS - Proof of Stake)
- Prueba de Autoridad (PoA - Proof of Authority)
- Tolerancia Práctica a la Falla Bizantina (PBFT - Practica Bizantine Fault Tolerance)
- Acuerdo Bizantino Federado (FBA- Federated Bizantine Agreement)
Estructura de datos (la cadena de bloques)
Las funciones hash son funciones matemáticas que toman una entrada de cualquier extensión y producen una salida con una extensión predefinida.
La cadena de bloques se crea usando la función criptográfica hash de los datos del bloque anterior sirviendo de enlace permanente a dicho bloque. Después tendremos todo el paquete de transacciones que constituyen el bloque. Finalmente tendremos un segundo código alfanumérico que enlazará con el bloque siguiente.
Con esta característica de "huella dactilar" del bloque, cualquier modificación en un bloque puede ser contrastada con las copias distribuidas en la red. Este mecanismo de consenso permite definir la veracidad.
Historia De La Blockchain
Precedentes de la tecnología Blockchain
La primera descripción del uso de una estructura de datos de bloques encadenados por medios criptográficos se atribuye a Stuart Haber y W. Scott Stornetta que publicaron en el año 1991 una solución práctica de estampado digital de documentos de manera que no pudieran ser modificados una vez "encadenados". La estructura haría las veces de notario validador de la veracidad de cada documento registrado. En 1992 se incluyó el uso de árboles de Merkle que mejoraban la eficiencia, permitiendo recopilar más datos en un sólo bloque y mejorar el mecanismo de verificación de los hashes. En ese mismo año, surge la idea de requerir la realización de una computación moderadamente difícil, por Cynthia Dwork y Moni Naor en su ensayo "Precios a través del procesamiento o la lucha contra el correo no deseado". Esta idea sería la base del futuro mecanismo de consenso de Prueba de Trabajo (PoW).
En 1998 Nick Szabo diseñó un mecanismo para una moneda digital descentralizada a la que llamó "Bit Gold".
En 2004 Hal Finney crea la Prueba de Trabajo Reutilizable (RPoW), dicha prueba es considerada una pieza de software sofisticada y precursora de Bitcoin.
Satoshi Nakamoto es acreditado como el cerebro detrás de la tecnología Blockchain. Se desconoce si Satoshi es una sola persona o un grupo de personas que trabajaron en el desarrollo de la primera aplicación de registro descentralizado digital: Bitcoin.
Fue conceptualizado en 2008 por Satoshi Nakamoto con el ensayo "Bitcoin: A peer to peer electronic cash system" (Bitcoin: Un sistema de moneda electrónica de igual a igual). Desde esta primera entrega conceptual la tecnología del registro digital ha evolucionado de manera incesante. Podemos distinguir tres fases o generaciones en esta evolución:
Primera generación
Esta primera fase evolutiva comienza con el nacimiento de Bitcoin en 2008. Desde el lanzamiento del bloque génesis por Satoshi Nakamoto se ha originado una cadena de bloques que acumula información que al año 2022 ya ocupa un tamaño de 100 GB.
En esta primera generación la información acumulada sólo hace referencia al valor de la transacción entre los usuarios. En ella se persigue (en su concepto) la creación de una forma de dinero digital sin la necesidad de contar con la confianza de terceros.
Aparte de Bitcoin tenemos otras criptomonedas como ejemplos de primera generación: Litecoin, Namecoin, Dogecoin, Monero, etc.
Las criptomonedas de primera generación pueden caracterizarse por ser menos experimentales o cambiantes como las de generaciones posteriores, lo que les puede conferir un valor más estable. Además, gracias a las side-chains (cadenas laterales) se podrán implementar en estas criptomonedas cualidades pertenecientes a las de última generación.
Segunda generación
La segunda generación de criptomonedas llega en 2013 con Ethereum, (white paper de Vitalik Buterin en 2013 y yellow paper de Gavin Woods en 2014), y fue finalmente implementada en su primera red principal (MainNet) en 2015. La idea de esta segunda generación es introducir la capacidad de ejecutar instrucciones o programas que respondan a determinadas condiciones para que las transacciones de valor se lleven a cabo. Todo ello permitirá el desarrollo de una blockchain programable con contratos inteligentes y aplicaciones descentralizadas en la propia Blockchain. Con ello se posibilita la creación de finanzas descentralizadas (DeFi) y la participación en distintas formas de rentabilidad sin la necesidad de un intermediario.
Tercera Generación
La tercera generación de criptomonedas busca mejorar la escalabilidad y el coste del uso de la red, que han sido problemas que ha presentado Ethereum. Estas blockchains están caracterizadas por el uso de un nuevo sistema de consenso llamado Proof of Stake, o prueba de participación (PoS). Ejemplos de esta generación son Polkadot, Solana, Cardano e incluso el propio Ethereum 2.0. En general, al igual que Ethereum, su visión es crear los fundamentos de la web 3.0 con aplicaciones descentralizadas y contratos inteligentes, pero aportando menores latencias y costes que repercutirán en una mejor experiencia de usuario. Igualmente se optimiza el coste energético que necesita el consenso de PoW frente a PoS.
Además, se incluye el paradigma de la interoperabilidad, haciendo posible que activos de unas cadenas puedan participar en desarrollos de otras cadenas, mediante puentes o bridges entre ellas. Con ello se pretende diseñar una red de cadenas interoperables entre sí. Cardano presenta esta cuestión como uno de los pilares de su desarrollo.
Hyper Ledger
Es el mayor exponente de soluciones que utilizan la tecnología blockchain para entornos controlados o centralizados. Nace como una colaboración de código abierto, propuesta en 2016, implementada en 2017 y gestionada por la Fundación Linux (The Linux Foundation), que incluye nombres como Accenture, ANZ Bank, Cisco, CLS, Credits, Deutsche Börse, Digital Asset Holdings, DTCC, Fujitsu Limited, IC3, IBM, Intel, JP Morgan, London Stock Exchange Group, Mitsubishi UFJ Financial Group (MUFG), R3, State Street, SWIFT, VMware y Wells Fargo. Se presenta con el objetivo de mejorar la tecnología blockchain y hacerla más accesible. De allí nace Hyper Ledger Fabric, indudablemente uno de los proyectos blockchain para empresas en mayor uso. La mayoría de las variantes de Hyper Ledger usan protocolos de consenso menos descentralizados que PoW, y son la base de gran parte de los proyectos blockchain con autorización de un tercero o grupo (permisionados).
Características de una Blockchain
Operaciones automáticas
Salvo ciertas excepciones las operaciones de un blockchain suceden automáticamente, 24 horas al día, 365 días al año, siempre y cuando la infraestructura de los nodos este siendo gestionada apropiadamente.
Basada en consenso
Las acciones de la blockchain son regidas por el mecanismo de consenso entre pares, y los procesos relacionados con este mecanismo forman parte de las operaciones automáticas anteriormente mencionadas.
Globalmente accesible
Mientras exista acceso a la red, existirá acceso a la blockchain. Esto convierte a redes publicas en redes realmente de carácter global, pues donde haya internet, puede haber un nodo. Como el célebre caso del nodo de bitcoin que fue ejecutado en una estación espacial internacional.
Distribuida
La naturaleza de la red convierte a la blockchain en un sistema distribuido, adiciona la descentralización, y se elimina el riesgo del "punto único de fallo".
Seguridad, Integridad y Verificación
Por medio de la encriptación asincrónica, la blockchain da acceso a la información de valor solo a quien tiene la correspondiente llave privada (de allí la frase "Si no son tus llaves no son tus criptomonedas"). El uso de los hash de cada registro de información, de cada bloque y la cadena de bloques en sí, aseguran la integridad de los datos registrados, estos no pueden ser adulterados sin que los nodos lo noten. Adicionalmente, las transacciones son firmadas digitalmente, lo que implica, además de la seguridad, el "no repudio", que quiere decir que quien haga una transacción, no puede negar que la hizo. Si Alicia le paga a José 10 bitcoin, Alicia tendrá 10 bitcoin menos en su cuenta y no puede negar que fue desde su cuenta que se realizó el pago.
Formas de clasificar las Blockchain
Privadas o Publicas
Si los datos en los bloques son de libre acceso al público, se dice que es una blockchain pública, de lo contrario, es una blockchain privada. Ejemplos de las mismas serian Cardano y Monero respectivamente.
Centralizadas o Descentralizadas
Dependiendo del mecanismo de consenso, este puede ser más o menos descentralizado, o centralizado vs descentralizado, como en el caso de los consensos por consorcio, listas de nodos conocidos, o prueba de participación delegada. En contraste con las pruebas de trabajo y prueba de participación, que pueden maximizar la descentralización a medida que permiten una mayor variedad y distribución de los nodos. La centralización está generalmente asociada con las blockchains de implementaciones por entidades centralizadas.
Permisionadas o No Permisionadas
Si la participación como un nodo requiere de autorización de algún tipo, o identificación de algún tipo, que puede ser de una entidad centralizada o de todos los nodos existentes de manera descentralizada, se dice que es una red permisionada. Si, por el contrario, no hay restricciones para convertirse en nodo de la red, excepto correr el software del nodo correspondiente, se dice que es no permisionada. Como nota curiosa, se puede ser pública y permisionada (como VeChain) o privada y no permisionada (como Monero).
Programables o No Programables
Encabezado por Ethereum, una generación de blockchains fue creada con la capacidad de ejecutar programas que pueden condicionar las transacciones de manera automatizada, en algunos casos creando una verdadera computadora de acceso global. Esta es comparada con Bitcoin y similares que tenían niveles limitados de instrucciones para validar condiciones para realizar las transacciones.
Referencias
Bitcoin Nodes Summary. https://coin.dance/nodes
Historia De La Tecnología Blockchain: Guía Definitiva. Nelson Rodriguez. Diciembre 2018. https://101blockchains.com/es/historia-de-la-blockchain/
¿Qué es una blockchain de primera generación? José Castillo. Julio 2021. https://blog.bitnovo.com/que-es-una-blockchain-de-primera-generacion/
¿CÓMO FUNCIONA UNA CADENA DE BLOQUES? Horizen Academy 2019. https://academy.horizen.io/es/technology/advanced/how-does-a-blockchain-work/
https://nakamotoinstitute.org/static/docs/bitcoin.pdf
https://en.wikipedia.org/wiki/Hal_Finney_(computer_scientist)
https://en.wikipedia.org/wiki/Nick_Szabo
https://medium.com/coinmonks/12-blockchain-consensus-mechanisms-demystified-73179d35b59f
https://golden.com/wiki/Federated_Byzantine_Agreement_(FBA)
https://www.coinhouse.com/learn/what-is-proof-of-authority/
https://docs.vechain.org/thor/learn/proof-of-authority.html
nakamotoinstitute.org/static/docs/bitcoin.pdf
v1.0 - Escrito por RcerrudPTY, revisado por C₳rlos9 y Amaru - 01-05-2022