Tecnología Blockchain
Blockchain

Tecnología Blockchain

Blockchain

El pasado martes estaba reunido con un cliente estudiando alternativas para lanzar el proyecto que me había encargado cuando hice referencia a la aplicación de la tecnología de blockchain en su sector. Un silencio acompañó mi propuesta. Detecté que había topado con el desconocimiento de esta tecnología y que sería difícil continuar. Antes de preguntarle si conocía a que me refería, ya me había preguntado qué era y para que servía. Me comentó que había oído hablar mucho de ella últimamente pero que no acababa de comprenderla.

Tenía ante mi la oportunidad de explicar blockchain de una manera sencilla y comprensible.

¿Qué es Blockchain?

Blockchain es un sistema de almacenaje de información diferente a los convencionalmente usados desde el inicio de la informática.

Pero es mucho más que una simple base de datos.

El significado del término blockchain significa cadena de bloques, que es lo que es. Una cadena de bloques en la que cada bloque está encadenado con el anterior y el posterior.

Blockchain (cadena de bloques)
Tecnología Blockchain

¿Bloques?

En los bloques se escribe la información que desean proteger los usuarios.

La primera utilidad de la tecnología fue el uso de la criptomoneda bitcoin. Pero cada bloque puede contener diferente tipo de información y ésta no ha de ser necesariamente bitcoins.

¿Bitcoins?

Me di cuenta que estaba entrando en un jardín cada vez más espeso, así que antes de que me preguntase le comenté que en otra reunión le explicaría el funcionamiento de las criptomonedas, sus ventajas e inconvenientes. (Dedicaré un post, o varios a ello).

Volviendo a la tecnología blockchain, no es una novedad, fue desarrollada a principios de los 90 aunque no fue considerada hasta la creación del bitcoin.

La tecnología blockchain ofrece muchas más aplicaciones para gestionar y verificar datos.

Podemos decir que nos ofrece el mayor sistema de computación existente y, hasta el momento, el más seguro.

 

Bitcoin
Bitcoin y tecnología Blockchain

¿Qué aplicaciones podemos encontrar?

Todas aquellas en las que la seguridad de los datos y el evitar costes de intermediarios sea el objetivo.
Así, a parte de aplicarla para el uso de criptomonedas, se utiliza blockchain para comercializar productos, servicios, para certificar la autoría de obras – dediqué un post recientemente -, para firmar contratos, almacenar registros médicos, …

Pero, ¿cuál es la ventaja principal de usar esta tecnología?

Garantizar la procedencia de los datos y la imposibilidad de su manipulación.
Conocer el origen de los productos suprime el riesgo de falsificaciones y garantiza conocer qué adquirimos, a quién, su precio y cuando lo hemos adquirido.

Este alto nivel de seguridad que ofrece la tecnología Blockchain se basa en dos pilares:

     – en la existencia de muchos vigilantes de la información. Tantos como nodos hay en la red.
     – en la importancia del código hash y la dificultad de obtenerlo.

Garantizar la seguridad debido a la presencia de muchos usuarios vigilantes es una de las grandes ventajas y diferencia de blockchain respecto a los sistemas centralizados.
Todos los usuarios disponen del mismo grado de autoridad por lo que las decisiones no dependen de empresas, instituciones, bancos, … sino del consenso de todos los usuarios por igual.

Ningún nodo es árbitro.

La decisión depende de un complicado cálculo animado por un atractivo incentivo económico.

¿Qué contiene cada bloque?

En la cabecera de cada bloque se registra un código, conocido por hash, que es un número de identificación único e irrepetible que se ha asignado al bloque anterior. Su obtención es muy costosa. El hash es la principal característica de la integridad de blockchain.

A continuación aparece registrado el premio que ha recibido el minero que ha obtenido el hash del bloque. Sí, has oído bien, minero. Explicaré su función en este post.

Seguidamente aparece la información a proteger: los datos.

Finalmente contiene la incógnita (hash) que ha encontrado el minero afortunado en descifrar la función hash. Esta incógnita se registrará en la cabecera del bloque posterior cuando se tenga que crear.

¿Qué pasa si se intenta modificar un bloque?

El intento de modificación de un bloque supone la modificación del hash, por lo que ya no coincide con la información del bloque posterior. Se rompe la cadena y se suprime la información existente en el nodo que ha sido atacado. El resto de nodos distribuidos por todo el mundo seguirán poseyendo la información de la cadena de bloques inalterados, manteniendo la integridad del sistema.

Como he explicado cada bloque está constituido por un conjunto de registros que contiene información: hash del bloque anterior, premio al minero más rápido, datos y hash obtenido por el minero más rápido.

¿Cómo se conectan los bloques?

Se van encadenando cronológicamente. El bloque posterior se une al anterior, como si de piezas de puzzle se tratase, donde la cabecera contiene el hash obtenido por un minero en el bloque anterior.
La modificación de cualquier dato supondrá que los hash no coincidan y consecuentemente se anule la información del nodo. Pero lo interesante de blockchain es que si se cae un nodo, la red sigue funcionando.

Mediante la función hash, la cadena de bloques usa la encriptografía para asegurar que cada bloque no puede ser falsificado o modificado y cambiado por otro bloque.

¿Cómo evita este sistema los ataques informáticos?

Lo innovador es que se autoprotege con su propia estructura. Blockchain es un sistema totalmente descentralizado y distribuido que únicamente permite una versión de los datos registrados y en el que nadie posee el sistema pero todos pueden usarlo.
Si se modifica algo de la cadena anterior, el hash del bloque modificado sería otro, por lo que existiría una discontinuidad en la cadena al no coincidir con el hash de la cabecera del siguiente bloque y también afectaría a todos los bloques siguientes, ya que sus hash serían diferentes.
Se rompería la cadena.

Para una mayor seguridad también se dispone de toda la información replicada en todos los nodos, por los que la cadena de bloques está escrita en tantos lugares como nodos existen en la red. Romper la cadena en un nodo implica que el resto de nodos lo detecten.

Además las transacciones que no sean posibles no se realizan, no son aceptadas ya que se pueden reconstruir las operaciones simplemente observando la cadena.
El orden de los bloques es importante para saber si la transacción es viable o no.

¿Quien escribe en los bloques?

Los usuarios especiales de la red llamados mineros. Cada minero está en uno de los nodos de la red y todos los nodos están conectados entre sí. No hay un nodo central que controle la escritura.
Dos nodos no pueden escribir al mismo tiempo.

Mineros
Los usuarios especiales de la red llamados mineros

¿Cómo es el proceso?

Toda la red de mineros vigilan las transacciones que realizan los usuarios. Se limita el número de transacciones por bloque. En el momento que se produce una transacción, todos los mineros comienzan a buscar el código hash del bloque a crear.

El proceso es:

1.- Del bloque anterior cogen el hash que está registrado al final, resultado de la operación criptográfica que posibilitó crear el bloque anterior. Inscriben ese hash en la cabecera del nuevo bloque a crear.

La cabecera de cada bloque contiene el hash obtenido en el bloque anterior.

De esta manera también se consigue respetar el orden de los bloques. Los hashes son siempre en una dirección, es decir, no se puede reconstruir el bloque desde un hash. El sentido de la información es único, no bilateral.

2.- A continuación se escriben las transacciones.

3.- Lo último que se escribe en el bloque es el resultado que se requiere para que la función Hash del nuevo bloque de cómo resultado un código de 256 bits que comience por una secuencia determinada. Además se fija el tiempo en obtener la respuesta.

La carrera es global y a tiempo determinado. En bitcoins se fija en 10 minutos, para hallar la respuesta. El tiempo que se establece corresponde al tiempo existente entre bloques. Obtener el resultado requiere una gran potencia de computación
Podemos pensar que el cálculo se puede realizar matemáticamente: pues no. Esta es la base de la seguridad de esta tecnología y gran novedad de la manera de establecer la seguridad.

No existe una fórmula para hallar esta respuesta

La única manera es ir probando. Por lo que todos los mineros comienzan la carrera en la búsqueda de la respuesta. Aquel que disponga de mayores recursos dispondrá de mayor posibilidad pero no necesariamente será el que obtenga la respuesta.

La solución es una cuestión de azar

Los mineros invierten mucho en equipamiento para conseguir obtener la incógnita. La única ventaja la puede conferir realizar el máximo de cálculos por segundos y esto depende de la capacidad de cada uno de ellos.

¿Qué incentivo tienen los mineros?

Para participar en esta carrera se requiere invertir en el sistema informático y en el consumo de energía.

El incentivo es económico

Los mineros realizan un trabajo de fuerza bruta y uno de ellos encontrará el resultado antes que nadie. Y, es muy improbable que dos nodos hallen la incógnita a la vez.

4.- Cuando un minero obtiene el resultado, escribe el código en el bloque.
También escribe en el mismo bloque la transacción correspondiente a su recompensa, al inicio del bloque, siendo la primera transacción de cada bloque.

5.- Comunica al resto de nodos que ha encontrado la incógnita y todos los nodos inician la verificación. Los mineros comprueban que es el hash buscado, que no existen transacciones ilegales y que la cabecera es el hash del bloque anterior.
Si todo es correcto, se crea el nuevo bloque y se añade a la cadena.
La información queda consolidada y se realiza la operación registrada en el bloque (contrato, transferencia, autoría, ….). Y el minero que ha resuelto la incógnita cobra la recompensa.

En otro post explicaré cuánto cobra el minero afortunado y quién le paga así como la protección de las transacciones dentro de los bloques para que sean totalmente privadas y seguras.

Espero haberte sido de ayuda explicando el funcionamiento de la tecnología Blockchain.

Photos from Pixabay and Pexels

Si te ha gustado este post, puedes compartirlo en tus redes sociales.

Ingeniero Superior de Telecomunicaciones (UPC) y Graduado en Derecho (UOC)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Don`t copy text!