Blockchain. Algunos quizás hayáis oído hablar de ella, otros quizás no. En algunos círculos Blockchain es un concepto que está empezando a sonar con fuerza, aunque muchos todavía no comprendan exactamente de qué va. Cualquiera de nosotros podemos preguntarnos: ¿Qué es una blockchain?
Leamos una definición sacada de cualquier rincón de Internet, “una block chain es una cadena de bloques que contienen lotes de transacciones válidas. Cada bloque incluye el hash del bloque anterior de la blockchain, uniendo los dos. Los bloques unidos forman una cadena, permitiendo que solo ese bloque (sucesor) se encadene a ese otro bloque (predecesor), dándole a esta base de datos su nombre”.
Así, podemos decir que una blockchain es una cadena de bloques de datos que contiene transacciones. Bueno, no parece nada prometedor, ¿no?
Resaltemos un pequeño detalle: una blockchain es un historial de transacciones que no puede ser ni manipulado, ni falsificado. ¿Se os ocurre qué se puede hacer con esto?
Esta primera definición habla de la piedra básica de esta tecnología, sin embargo, los bloques son solo el principio. En este “historial de transacciones” que es una blockchain, estos bloques que contienen la información sobre las transacciones son distribuidos por Internet a todos los nodos que componen la red. Estos nodos procesan la información y llegan a un consenso, aprueban la transacción y añaden el bloque a la cadena, dejando un registro indeleble y público de la misma.
En la siguiente imagen tenemos una explicación más gráfica de cómo funciona blockchain utilizando el caso más común hasta ahora: transacciones monetarias.
La primera pregunta que surge, muy válida, es: ¿y quiénes son estos nodos?
Un nodo puede ser cualquiera. Todo el código de una blockchain es Open Source y puede ejecutarse en cualquier ordenador. El truco del éxito está en la motivación para ser un nodo. El anónimo creador de blockchain, Satoshi Nakamoto, muy inteligentemente integró un sistema de recompensas para los nodos en el proceso de validación de las transacciones.
Para la validación, esta red de nodos debe de llegar a un consenso mediante un mecanismo conocido. El más utilizado y conocido es “proof of work”, aunque existen otros. Este mecanismo se basa en las propiedades de ciertos algoritmos, como por ejemplo encontrar un hash, para los que resulta difícil (en tiempo y recursos computacionales) resolver cierto problema arbitrariamente definido pero es muy fácil comprobar si la solución es correcta.
Para añadir un bloque a la cadena, los nodos deben de seleccionar una cierta cantidad de transacciones de la cola, comprobar que son válidas, retransmitirlas, y calcular la “prueba de trabajo” sobre todo el bloque de transacciones, cuya solución requiere cumplir ciertos requisitos. Encontrar la prueba de trabajo es un proceso aleatorio con una probabilidad directamente proporcional a la capacidad de cómputo utilizada, de forma que se requiere mucha prueba y error de media hasta encontrar la solución.
El primer nodo que encuentre la solución es recompensado. En cierta forma, los nodos “compiten” por encontrar la solución. En el caso de Bitcoin, la recompensa se compone de una cantidad fija de Bitcoins, más una cuota que los creadores de las transacciones pueden incluir para motivar a que los nodos incluyan su transacción en el bloque lo más pronto posible.
Cuando un nodo fabrica un bloque válido, lo retransmite al resto de la red, que comprueba la validez del bloque y de las transacciones que contiene, basándose en los bloques (transacciones pasadas) que ya están inscritos en la blockchain.
Puesto que las transacciones son validadas para cada bloque, la única forma de realizar un ataque de “gasto doble”, gastar la misma moneda en dos sitios distintos, requiere reescribir todos los bloques desde la transacción que quiere ser manipulada hasta el bloque actual.
Es por esto que una transacción se considera más segura cuantos más bloques hayan sido escritos posteriormente. Para transacciones importantes en Bitcoin, por ejemplo, una profundidad de 6 bloques (alrededor de una hora de espera) se considera absolutamente imposible de manipular.
Aunque a primera vista puede parecer un proceso de juguete, la complejidad del mecanismo de seguridad inherente de esta tecnología es impresionante, atrayendo a una increíble comunidad de desarrolladores y expertos en criptografía que han estado trabajando desde que Satoshi Nakamoto, allá por 2009, publicara su genial Whitepaper.
¿Os parece algo revolucionario?
Pues la verdad es que sí. Este mecanismo de consenso tiene grandes implicaciones. Al no existir una copia “oficial” y ningún nodo en particular goza de mayor confianza que otro, estamos hablando de un sistema de confianza descentralizada.
Y aquí es donde tenemos el plato fuerte.
La primera aplicación de blockchain es bastante más conocida que la tecnología en sí: Bitcoin. Y durante años ha sido la única existente. Sin embargo, a partir de 2014, empezó a surgir lo que se conocen como tecnologías blockchain 2.0. Estas son una nueva ola de aplicaciones basadas en la blockchain, puesto que la cadena puede registrar datos que no sean necesariamente transacciones.
Estos datos pueden ser cualquier cosa. Desde certificados legales de nacimiento, bodas, registros del catastro o identidades digitales, pasando por derechos de autor (con prueba de primera creación) o patentes hasta contratos o votos.
Tradicionalmente, se ha necesitado de una autoridad central en la que se confía para que certifique que cierta información (un documento) es válida y veraz. Esta es el área de trabajo de muchas entidades: Notarías, bancos, muchas administraciones y registros públicos, sistemas de resolución de disputas,… Y, en efecto, las principales instituciones económicas mundiales ya están investigando su utilidad y uso, así como empezando los primeros pilotos.
Sin embargo, en un sistema de confianza descentralizado, estas entidades centrales no son necesarias.
La comunidad inicial de Bitcoin y blockchain ha proclamado desde el principio que esta tecnología va a ser disruptiva, cambiando muchos aspectos de la sociedad. Estos cambios vendrán dados por las nuevas modalidades de ofrecer servicios comerciales (y no comerciales también) que la blockchain posibilitará, igual que Internet hizo en su día, y que son mantequilla suficiente como para escribir varios post.
Para finalizar, voy a dejaros una cita del responsable de blockchain de IBM, Jerry Cuomo:
“We applaud judicious caution, but, at the same time, we believe that organizations and institutions that don’t quickly assess the potential of blockchain and begin experimenting with it risk falling behind as the world undergoes what we see as a tectonic shift.”
Os dejo a la espera de un segundo post, donde hablaré de las aplicaciones en ciberseguridad que la blockchain ya está haciendo posibles.
Referencias:
Very clever. …
Esperando la segunda parte que será, como esta, muy interesante. Una pregunta… en las aplicaciones de esta “cadena de confianza distribuida” a la ciberseguridad (no voy a spoilear), ¿cuál será la recompensa?
La razón de ser de la recompensa es asegurar que hay alguien que ejecuta todo lo necesario, con el subsecuente gasto económico que eso conlleva. Es por eso que la recompensa suele ser económica, para compensar los gastos y un poquito extra para el beneficio de ese tercero que no conoces, en el caso de que la blockchain, incluso en aplicaciones de seguridad, sea pública.
En el caso de las aplicaciones de ciberseguridad en las que la blockchain corra sobre hardware privado, o de un consorcio de socios, no tendría porqué existir recompensa si ya hay algún gestor que se ocupe de los gastos de los nodos. Sin embargo, el caso de las blockchains privadas pierde un poco de gracia por varios motivos.