En las últimas semanas, he estado investigando sobre blockchain y la revolución que implica en… bueno, en todos los ámbitos. Blockchain no solo es la tecnología base que soporta las criptomonedas. Puede significar un antes y un después en el almacenamiento y acceso de la información. Pero vayamos por partes ¿qué es realmente blockchain?

Como su propio nombre indica, blockchain es una cadena de bloques. Cada bloque tiene una firma que lo identifica e indica que es válido, pues cumple ciertas características. Además esta firma viene definida por los datos que contiene el bloque, por lo que no se puede modificar sin alterar su firma. Sin embargo, como la firma viene definida por los datos del bloque y sus metadatos, podríamos jugar con ellos hasta conseguir una firma válida y que el bloque vuelva a ser válido; peeeeeero, los metadatos de un bloque siempre apuntan al bloque anterior mediante su firma, por lo que si modificamos un bloque (y con él su firma) los bloques posteriores perderían su referencia y, por tanto, ese bloque y los posteriores no serían válidos. Podemos apreciarlo mejor en la imagen:

Ahora bien, supongamos que mediante una serie de operaciones muy complejas conseguimos modificar un bloque y éste es el último.  En principio no habría ningún problema puesto que su firma es válida y ningún bloque ha perdido su referencia (no había ninguno posterior). Pues sorprendentemente la respuesta real sería que sí habría problema. Los bloques de blockchain se almacenan de manera distribuida, es decir, existe una copia de ese bloque en otros ordenadores. Cuando estos vean que la firma es distinta (la mayor parte tendrán el bloque inalterado) descartarán el bloque modificado. La explicación es un tanto enrevesada en teoría pero en este vídeo se puede apreciar mucho mejor cómo funciona blockchain.


Hasta este punto, hemos visto qué es blockchain; una cadena de bloques que almacenan cualquier tipo de información en la que se no podría alterar un bloque ya escrito. Pero ¿y si un nodo que creemos válido añade un bloque con información errónea?

Pues bien, añadir un bloque a blockchain no es nada fácil. Se dice que un ordenador “normal” tardaría 1 año en solucionar el algoritmo necesario para añadir un bloque con información, al menos en bitcoin, la criptomoneda más importante en la actualidad (aunque el ether lleva un crecimiento que a ver cuanto se mantiene…). Además esta información tiene que ser coherente con toda la información anterior. Esa información, necesaria para calcular el hash (la firma) de ese bloque es además otra variable del algoritmo. Por tanto, a más información, más difícil será añadir un bloque. Una vez se ha resuelto el problema y el bloque puede ser añadido, se expande por la red de blockchain para que el resto de nodos lo validen y tengan constancia de él. Así, dos bloques pueden ser añadidos a la red al mismo tiempo y competir por ver cuál es el bloque aceptado. Para aceptar un bloque la red de blockchain se usa una regla muy simple: la cadena más larga. Esto es que en el caso de que dos bloques compitan será el siguiente bloque el que “elija” cual de ellos es el válido.

Con esta metodología es realmente complicado añadir un bloque falso a la red. Blockchain no es solo seguro en cuanto a modificaciones se refiere, sino a introducción de nuevos datos malintencionados.

Como vemos, estamos ante una tecnología robusta y segura, que permite el almacenamiento de la información de manera distribuida e inalterable. Haciendo uso de blockchain podemos revolucionar los distintos aspectos de la vida consiguiendo que la validez de la información no se encuentre centralizada; sino que las distintas partes interesadas serán las encargadas de mantener la información veraz e inalterada con ayuda de blockchain. Sin duda una tecnología que ha venido para quedarse.

Enlaces:

Se puede encontrar más información sobre el funcionamiento de blockchain en los siguientes enlaces:

https://bitsonblocks.net/2015/09/09/a-gentle-introduction-to-blockchain-technology/

https://medium.com/@micheledaliessi/how-does-the-blockchain-work-98c8cd01d2ae