¿Qué es Blockchain? La tecnología revolucionaria que ya está obsoleta | Parte 2 ¿Cómo funciona Blockchain?

Este es el segundo artículo de la serie con los conceptos básicos para entender la revolución que van a traer las DLT, tomando como referencia blockchain, que es la DLT más conocida y extendida.

Parte 1 ¿Qué es una DLT?
Parte 2: ¿Cómo funciona blockchain?

¿Qué es una cadena de bloques?

Una cadena como la de la foto de portada está formada por eslabones, cada uno de ellos enlazado con dos eslabones, salvo el primero y el último que solo están enlazados con uno. Si tomamos ese primer eslabón como el origen, los eslabones quedan ordenados: cada eslabón tiene uno anterior y otro posterior.

Comento esto porque, como su traducción indica, blockchain también es una cadena, pero en lugar de eslabones, tiene bloques de transacciones.

Blockchain = Cadena de bloques

Blockchain es una DLT y, por tanto, debe mantener un Registro. El Registro de una blockchain es una cadena de bloques de transacciones colocados uno delante de otro de forma ordenada. Todos los bloques tienen un bloque anterior y otro posterior, salvo el bloque inicial (Génesis) y el último.

Blockchain = Cadena de bloques

¿Cómo funciona blockchain?

Dado que Bitcoin fue la primera blockchain, vamos a usarlo para los ejemplos.

Como cualquier DLT, el histórico de todas las transacciones de Bitcoins que se han hecho quedan guardadas en su Registro (cadena), y el saldo de Bitcoins que tengo, viene dado por la suma de los importes de las transacciones realizadas.

Imagina que compras un café que cuesta 0,10 Bitcoin. Ya, ya sé que es un poco caro, pero como esto nunca lo vas a poder hacer, pues qué más da el precio. El caso es que 0,10 Bitcoin deben salir de tu cartera (wallet) para entrar en la cartera de la cafetería. Como todo esto se controla desde el Registro de Bitcoin, para que todo el mundo sepa que yo tengo 0,10 Bitcoin menos y la cafetería 0,10 Bitcoin más, hay que añadir esta transacción al Registro.

Pero Bitcoin no funciona así. No podemos añadir 1 sola transacción a su Registro: debemos esperar a que haya unas cuantas más para agruparlas en un bloque (block). Cada bloque de Bitcoin contiene unas 1.500 transacciones (no es fijo), con lo que hay que esperar a completar el bloque para que el pago de mi café se complete.

Bueno, pues pasados 10 minutos, se inicia el proceso de añadir el nuevo bloque de transacciones al último bloque de la cadena, y cuando se añada ya nadie lo podrá cambiar. Por tanto, este es un punto delicado, porque recuerda que aquí no tenemos que fiarnos de nadie, con lo que es la propia tecnología la que debe aportar mecanismos para dar por buenas las transacciones sin depender de la buena fe de nadie.

Sin embargo, alguien tiene que hacer ese trabajo de verificación y añadir el nuevo bloque a la cadena. Esta verificación en realidad no la hace solo una entidad, sino que se hace por consenso entre muchas entidades. Pero una vez llegado al consenso de que el bloque es válido (porque las 1.500 transacciones que contiene son válidas), solo habrá una entidad que lo añada a la cadena.

Añadir 1 bloque de 1.500 transacciones genera un problema de confianza, si el que la añade siempre es el mismo, pero tampoco queremos tener a alguien que diga quien debe añadir cada bloque. Tampoco se puede hacer de forma aleatoria, porque podría elegir una entidad no adecuada: equipos lentos o directamente malintencionados. Por tanto, la tecnología nos debe dar un mecanismo que seleccione a quien va a añadir este bloque dentro de un grupo de entidades que tienen interés en hacerlo bien y lo demuestran.

La forma de hacer esto es que cada vez que hay que añadir un bloque, se propone un juego: hay que resolver un puzzle matemático tremendamente complejo y aleatorio y, el que primero lo resuelva, es el que añade el bloque a la cadena. Estos puzzles son tan complejos que para resolverlos hacen falta granjas de servidores trabajando a todo trapo y los que lo hacen se les llama mineros (miners).

Bitcoin mining farm

Qué majos son estos mineros, ¿no?

Hombre, igual son bellísimas personas, pero antes de que te pongas a cantar el Soy minero en solidaridad, debes saber que esto en concreto, no lo hacen por amor al arte, sino que tienen una recompensa económica. De hecho tienen 2 recompensas: Por añadir el bloque a la cadena, se crea 1 Bitcoin de la nada y se lo queda el minero (como si hubiera encontrado un diamante, de ahí su nombre), pero además como el número de transacciones por bloque es limitado, para evitar que alguien se dedique a hacer transacciones a lo loco y sature el sistema, cada transacción que hagas en Bitcoin, tiene una comisión, un fee que pagas al amigo minero.

¿Por qué nadie puede alterar el Registro de una blockchain?

La condición imprescindible que debe cumplir un Registro del que todo el mundo puede tener una copia, es que nadie lo pueda alterar. Blockchain lo consigue de una forma muy simple y efectiva, pero antes hay que saber los que hace una función de Hashing.

¿Qué es una función de Hashing?

En general, una función matemática es algo que dada una entrada, genera una salida.  La función f(x) = 2x, dada una entrada x=2, devuelve una salida f(2) = 4; y si le vuelvo a pasar la misma entrada x=2, me devuelve la misma salida, 4.

Pues una función de Hashing aplicada a blockchain, es lo mismo solo que utiliza como entrada un bloque de transacciones, que no tiene que tener un tamaña fijo y devuelve una cadena de caracteres de tamaño fijo, 64 caracteres en el caso de Bitcoin, como esta:

f(bloque)=889aeb39c8142fdff4a8da75bf83fd4c31d8d1d029f504d80589fcef28d2a101

Estos caracteres son el HASH del bloque y si tocas una coma del bloque, su HASH cambia completamente, siendo además imposible predecir lo que debo cambiar en el bloque para conseguir un HASH determinado.

El Hashing de una blockchain

El truco que hace la blockchain inalterable en realidad es muy sencillo: Si calculáramos el HASH de un bloque f(nuevo-bloque) tendríamos una forma muy sencilla de saber si alguna transacción de ese bloque se ha modificado, pero no tendríamos información para saber si se ha modificado algún otro bloque de la cadena.

En lugar de eso, lo que se hace es, antes de calcular el HASH del bloque a añadir, se le incorpora el HASH del último bloque de la cadena y se calcula el HASH del conjunto: f(nuevo-bloque + HASH-bloque-anterior);, con lo que si alguien modifica uno de los bloques, se modificará su HASH, lo que desata una reacción en cadena que cambiaría los HASH de todos los bloques posteriores y se detecta el fraude de forma inmediata.

Si quieres información más detallada, aquí tienes una gran explicación

El control del doble gasto en blockchain

El último punto a resolver es evitar el doble gasto. Es decir, cómo evita blockchain que, teniendo un saldo de 1 Bitcoin haga 2 compras muy rápidas por 1 Bitcoin cada una: La primera contra la copia A del Registro y la segunda contra la copia B y, cuando toque pagar al 2º, ya no haya Bitcoin que darle.

El hecho de que el Registro de blockchain sea lineal, facilita mucho esta comprobación. La 2ª transacción se encolará siempre detrás de la 1ª, con lo que la comprobación de validez de la transacción fraudulenta en inmediata.

El hecho de que un nodo apruebe una transacción fraudulenta no significa que el resto lo hagan (porque tenga el Registro desactualizado). Y si el resto lo rechazan, esa transacción y el bloque que la contiene es rechazado y nunca se añade a la cadena.

Pues parece que blockchain es una buena solución, ¿no?

Realmente es un trabajo espectacular, un potencial game changer en decenas de industrias y como tal, ha despertado un interés en empresas de todos los sectores y tamaños. A día de hoy existen miles de proyectos basados en blockchain liderados por multinacionales, fundaciones, bancos, y gobiernos de todo el mundo, tratando de desarrollar aplicaciones blockchain que se utilicen en el mundo real.

Se están haciendo avances, pero si en un estadio lleno pidiéramos que levantara la mano el que haya usado alguna aplicación blockchain, la realidad es que la levantaría uno o ninguno.

En el tercer artículo de esta serie explicaré las limitaciones que harán que las manos sigan sin levantarse en los estadios. Pero ojo, que blockchain no vaya a tener nunca un uso generalizado no significa que otras DLT no lo consigan. Ya he hablado de IOTA como el más firme candidato a llevar las DLT a nuestro día a día y hablaremos de ello en siguientes artículos.

¿Qué es Blockchain? La tecnología revolucionaria que ya está obsoleta
Parte 1 ¿Qué es una DLT?
Parte 2: ¿Cómo funciona blockchain?

Foto portada by JJ Ying on Unsplash

Una respuesta a “¿Qué es Blockchain? La tecnología revolucionaria que ya está obsoleta | Parte 2 ¿Cómo funciona Blockchain?”

Deja un comentario

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