Seguro que habéis oído hablar sobre Blockchain

Se trata de una palabra que casi siempre aparece asociada a Bitcoin, una criptomoneda.

Blokchain es mucho más que Bitcoin, es una tecnología, un protocolo informático que tiene infinidad de matemáticas detrás.

¿En que consiste Blockchain?

Para explicar en qué consiste Blockchain, vamos a ir paso a paso poniendo ejemplos de como funciona esta tecnología con Bitcoin, y os comento desde ya que Blockchain puede utilizarse para muchas cosas.

En pocas palabras, se trata de un sistemas de almacenamiento de información, seguro, anónimo, descentralizado y libre de falsificaciones.

¿Qué significa Blockchain?

Lo que significa es cadena de bloques, los bloques son ficheros, normalmente ficheros de texto que contiene la información que queremos guardar.

Forman una cadena porque cada bloque tiene algo de información sobre el bloque anterior, este a su vez sobre el bloque anterior y así sucesivamente hasta llegar al primer bloque de la cadena.

A la información que cada bloque tiene del anterior se denomina HASH, y esto es una especie de número de serie que tiene gran relevancia.

El segundo ingrediente de Blockchain es una red de ordenador.

Todos los ordenadores de la red guardan una copia de la cadena de bloques.

No existe un único ordenador que disponga en solitario de esta información y el resto de ordenadores la busquen ahí como ocurre con  los servidores y las bases de datos.

Aquí todo el mundo tiene su copia de la información, y de esta manera resulta mas complicado que se pierda.

Es lo que hace que blockchain sea descentralizado y esto es lo que determina su éxito.

Por ejemplo, el blockchain de bitcoin es una red de ordenadores, tablets, smartphones etc que tienen el software instalado de bitcoin que se trata de un software libre de código abierto (lo que significa que cualquiera puede acceder a el)

Y la cadena de ficheros de bitcoin contiene la lista de todos y cada una de las transacciones de bitcoin de la historia, así que leyendo esa cadena  de bloques, sabemos cuantos bitcoins tiene cada usuario y de donde proceden.

Cada bloque o cada fichero de la cadena de bitcoin contiene:

1 – El Hash de su bloque anterior, su número de serie y están encadenados.

2 – La lista de transacciones de bitcoins.

3 – Una información rara que llamamos prueba de trabajo que vamos a llamar X.

Y con esto ya tenemos la base blockchain en una cadena de ficheros que contiene información relevante que se encuentra almacenada, replicada en un montón de ordenadores, cuales forman una red, y no solo eso, la información de los bloques está encriptada y únicamente quién la creó puede leer.

Para esto como os podéis imaginar están las matemáticas, en concreto la criptografia de clave pública y clave privada, 

Como consecuencia esto es lo que hace que la información sea segura además de anónima.

ahora nos encontramos con dos cosas importantes y que están muy relacionadas entre sí.

¿Cómo se añade un bloque? y ¿cómo hacemos para que todos los nodos de la red tengan una copia exacta de la cadena de bloques?

La clave está en la X de los bloques y en unos nodos especiales de la red que se llaman los mineros.

Cuando un nuevo bloque se encuentra listo para añadirse a la cadena.

Los mineros reciben un aviso, para añadir un bloque a la red solamente es necesario que alguien calcule la X y la añada al bloque.

El primero en conseguirlo avisa, se comprueba que todo está bien y se lleva un premio.

Como os podéis imaginar hallar la X no es algo que resulte especialmente sencillo, así es que en cuanto salta el aviso de nuevo bloque los mineros se ponen a competir.

La X tiene que ver con el hash de cada bloque (ese número de serie del que hablábamos anteriormente).

Y aquí viene el lío y las matemáticas.

La función de hacer hashes se trata de una función matemática convertida en algoritmo que recibe un fichero de texto y se le asigna un números de tal forma que:

1º – El número depende del texto (si cambiaras un nº, una coma, un espacio, lo que sea, el resultado ya no sería lo mismo).

2º – El modo de asignarlo tiene que ser de forma compleja, en otras palabras, que si te dan el número final resultante, es imposible saber el texto del que viene y esto es lo que hacen en blockchain de bitcoin los mineros, es decir buscar la X.

Funciona de la siguiente forma:

Surge un bloque nuevo para incluir en la cadena, por ejemplo nuevas transacciones para bitecoins que añadir al historial, hay que buscar una X  para unirla a la información del bloque y que además en el hash salga un número que empiece por 30 ceros usando el algoritmo de generación de hosh llamado SHA256,

Y esto creedlo es imposible incluso conociendo el algoritmo, la única forma seria probando el arar, hasta que salga lo que queremos y exactamente eso es a lo que se dedican los mineros de bitecoins.

Es lo que se llama minar un bloque de bitecoins, lo de los 30 ceros se denomina dificultad de prueba de trabajo, en consecuencia, el protocolo de bitecoins va ajustándolo para que cada bloque se tarde en minar más o menos 10 minutos.

El algoritmo SHA256

El algoritmo de SAH256 es muy seguro y se usa desde la verificación de paquetes Linux a los protocolos de seguridad en internet o incluso en tribunales internacionales.

A quién consigue minar ese bloque le dan 12 bitecoins y medio, esta recompensa se reduce a la mitad por cada 200.000 bloques que se minan en la red.

Así es que ya sabemos cómo nacen y se consiguen bitecoins minando.

Cómo minar

Cómo minar consiste en probar millones de combinaciones al azar.

Quién tenga más capacidad de computo en su máquina podrá realizar más intentos y obtendrá más posibilidades de conseguir el premio y tener más capacidad es algo similar a tener mas boletos para una rifa.

Por este motivo existen tantas máquinas especializadas en minar bitecoins y granjas de minado en países como China o Islandia.

Algoritmo SHA256

La existencia de algoritmos de hash como SHA256 que son imposibles de revertir, el añadido de la dificultad ( lo de los 30 ceros) y el hecho de tener un premio por minar, son todo capas de seguridad para blockchain que hacen que nadie pueda falsificar un bloque porque todos los mineros tienen el mismo bloque para añadir a la cadena y cuando alguien consigue la X todos la comprueban y la mayoría tienen que estar de acuerdo porque de lo contrario no se añade.

Las aplicaciones de blockchain son inimaginables, se trata de una tecnología muy potente, bitcoin lo ha implementado con un éxito enorme pero también Ethereum con sus smart contrats, es decir contratos validados por una blockchain.

Ya se están probando aplicaciones de esta idea en sanidad, el internet de las cosas, en open data para verificar la velocidad de los datos, en trazabilidad de productos.