¿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

¿Qué es Blockchain? La tecnología revolucionaria que ya está obsoleta | Parte 1 ¿Qué es una DLT?

Ya se que el título no tiene mucho sentido, pero es que esta entrada la tendría que haber titulado: “¿Qué son las DLT? La tecnología revolucionaria que cambiará nuestras vidas“, y la realidad es que salvo los frikis tecnológicos, nadie sabe lo que es una DLT.

Pues DLT son las siglas en inglés de Tecnologías de Registro Distribuido (Distributed Ledger Technologies), que dicho así, seguro que no te saca de dudas si no lo conocías.

Blockchain, Bitcoin o Criptomonedas en cambio son mucho más conocidos, aunque dentro de las tecnologías disruptivas, son de las más difíciles de entender, tanto en lo que consiste la tecnología en si, como las implicaciones que tendrán en nuestro día a día.

La disrupción de las DLT

Como el tema no parece sencillo, vamos a empezar por el final, indicando tres cosas que van a cambiar en nuestro día a día con el uso generalizado de las DLT:

  • Pagar o enviar dinero a cualquier parte del mundo como cuando le das un billete a alguien, es decir, inmediato, sin comisiones, y sin intermediarios. VISA, MoneyGram, PayPal… Pierden su negocio.
  • Dejar de depender de las eléctricas: Si instalas paneles solares+baterías en tu vivienda o comunidad, tus vecinos te comprarán a ti la electricidad, realizando el control de la energía suministrada y el pago de forma inmediata y automática usando una DLT. Es lo que se llama Enernet.
  • Dejar de pagar un seguro anual del coche y pagar solo cuando lo uses y cómo lo uses. Tu coche tendrá un gemelo digital (digital twin) que crea un registro inalterable de los datos de uso del vehículo, que será analizado por un sistema de Inteligencia Artificial y para darte una cotización inmediata en función de tu perfil de riesgo. Lo encontrarás como Insurtech

Hay muchísimas otras aplicaciones con las implicaciones que tienen en prácticamente todos los sectores. Ya las iremos viendo en detalle en futuros artículos.

Para entender el enorme alcance que esta tecnología va a tener en nuestras vidas (y porqué no será blockchain quien nos las traiga), es necesario que entiendas la tecnología en sí, que es lo que espero conseguir en este artículo.

Criptomonedas, Bitcoin, Blockchain, DLT… Menudo lío

A ver si esto lo aclara un poco:

  • DLT son las siglas en inglés de Tecnologías de Registro Distribuido (Distributed Ledger Technology)
  • Blockchain es un tipo de DLT
  • Bitcoin es una criptomoneda basada en blockchain

¿Qué son las DLT – Tecnologías de Registro Distribuido?

La verdad es que el nombrecito se las trae: “Tecnologías de Registro Distribuido”, pero verás que no es para tanto. Vamos a ello.

¿Qué es un Libro Registro o Registro?

La definición más básica es que un Libro Registro o Registro (es lo mismo) es un listado de transacciones ordenadas por fecha. Ejemplo:

Yo tengo una cuenta bancaria en Bankinter desde hace 20 años. Cuando entro en la web, veo una fila por cada movimiento que he hecho en mi cuenta: los recibos de la luz, etc. Los movimientos de mi cuenta están guardados en un Registro.

Libro Registro movimientos Bankinter

Bankinter no tiene miles de Registros, uno por cada cliente, sino que tiene solo un Registro único donde guarda los movimientos de las cuentas de todos sus clientes. Lógicamente, cuando yo entro en la web, consulta ese Registro único y lo filtra para mostrarme solo mis movimientos.

Ese Registro contiene todos de los movimientos que he hecho en mi cuenta desde que la abrí hace 20 años, de forma que calcular el dinero que yo tengo en mi cuenta, es tan sencillo como sumar los importes de todos mis movimientos, desde el primero al último.

El problema de la confianza

Por tanto, solo hay una copia del Registro de Bankinter y es Bankinter el único que puede hacer cambios sobre él. Teniendo ese poder sobre el Registro, un empleado de Bankinter o un delincuente que piratee su sistema, podría hacer cambios sobre mis movimientos y hacer que los 1.000€ que tengo de saldo en mi cuenta, pasarán a la suya.

Lógicamente, los sistemas informáticos de Bankinter cumpliendo la normativa bancaria evitan que esto pase (o por lo menos parece que no pasa), pero no deja de ser inquietante que mi dinero dependa de la buena gestión y de los sistemas de seguridad de un tercero.

En Europa no nos planteamos esto y confiamos la custodia de nuestro dinero a los bancos sin problemas. Pero hay muchos otros países donde no es así. Que mi dinero pase a depender de un Registro que puede ser gestionado a su antojo por una entidad de la que no me fío, como que no.

Para solucionar este problema de confianza es donde entra en juego el Registro Distribuido.

¿Qué es un Registro Distribuido?

Un Registro Distribuido es un Registro del que existen múltiples copias y cualquiera puede mantener una.

En el caso de Bankinter, su Registro dejaría de ser único y gestionado por Bankinter y pasaría a haber múltiples copias gestionadas por particulares o empresas. Como tampoco tendría sentido que tuvieras que gestionar por separado los Registros de Bankinter, del Banco Santander o del Bank of America; lo lógico sería que hubiera un Registro Distribuido único que incorporara todos los movimientos de todos los bancos del mundo.

Vale, ya no tenemos que confiar en un tercero, pero al pasar de un solo Registro a muchos, ahora hay otros problemas que resolver:

  • ¿Cómo me aseguro que cuando me ingresan 1.000€, todas las copias del Registro reconozcan que tengo 1.000€ más en mi cuenta?  Sincronización de las copias del Registro.
  • Ahora que cualquiera puede tener una copia del Registro, ¿cómo evitamos que manipulen el histórico y desparezcan mis 1.000€? Integridad de la información.
  • Más aún, ¿cómo evitamos que añada un movimiento falso y me quite mis 1.000€? Aprobación de nuevas transacciones.
  • Otro más avanzado. Como hay muchas copias del Registro que dicen que tengo 1.000€ en mi cuenta, si soy espabilado puedo hacer 2 compras muy seguidas:  la primera la hago contra la copia A del Registro y la segunda contra la copia B. Para cuando se den cuenta que he gastado 2.000€ y solo tenía 1.000€, que me busquen. Control del doble gasto.

DLT: La solución técnica

Las DLT lo que aportan son precisamente soluciones técnicas a los problemas creados al pasar de Registro único a Registro Distribuido.

Una DLT genera un Registro inmutable, indestructible, no manipulable, auditable y autogestionado, que no necesita de un tercero de confianza que lo mantenga.

Solucionando estos problemas y habiendo solucionado el problema de la confianza (ya no tenemos que confiar en un banco). Los datos y el proceso están protegidos de forma que no hace falta que te fíes de nadie; porque nadie, ni siquiera los propios creadores de la DLT pueden alterar el Registro.

Ya sé lo que es DLT ¿y que hay de Blockchain, Bitcoin y Criptomonedas?

Blockchain es una DLT, es decir, es una de las formas que hay de implementar un Registro Distribuido como el que hemos comentado antes. Fue la primera que se desarrolló (2008), es la más extendida y, hasta hace poco, la única. La primera implementación práctica de blockchain fue la criptomoneda Bitcoin. Por recopilar:

  • Blockchain es la tecnología que mantiene un Registro Distribuido. ¿Es la única? No. Hay otras, por ejemplo, Hashgraph y sobre todo, el Tangle de IOTA.
  • Bitcoin es uno de los múltiples “productos” basados en ella. Hay productos ya funcionando para multitud de sectores: seguros, entretenimiento…
  • Criptomoneda es una categoría de productos y es un medio digital de intercambio (como los euros, pero sin moneda física). Hay +1.000 criptomonedas, siendo Bitcoin y Ethereum las de mayor capitalización. Las criptomonedas son la parte más conocida de las DLT y la práctica totalidad están basadas en blockchain. De las pocas criptomonedas no-blockchain, destaca IOTA.

En próximos artículos de esta serie entraré en detalle en cómo funciona Blockchain, con lo que entenderás perfectamente porqué no vas a usar productos basados en esta tecnología, y te presentaré la siguiente generación de DLT que será la que cumple los requisitos para un uso masivo de esta tecnología.

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