¿Qué es el blockchain?

Tiempo de lectura: 8'

En este post vamos a intentar explicar, de forma sencilla (y no es nada fácil) en qué consiste el blockchain, la tecnología en la que se basa la moneda bitcoin y las restantes monedas digitales (y muchas otras cosas). Vamos con las ideas fundamentales:

1.- Blockchain es un archivo descentralizado y distribuido en nodos

Básicamente, blockchain es una serie de datos que se archivan en multitud de registros denominados ¨nodos¨ (y que pueden ser cualquier cosa con capacidad de procesar información, desde una tablet a una tarjeta gráfica).

Como los datos se archivan en múltiples nodos va a resultar prácticamente imposible falsificar el blockchain ya que, aunque se consiguiese alterar la información en una gran parte de estos nodos (lo que requeriría un ataque muy potente, coordinado, rápido y que no fuese detectado) seguirían habiendo otros nodos que mantendrían la información original, detectándose fácilmente  el ataque.

Esta distribución en múltiples nodos es posible gracias a la existencia de Internet y es una gran ventaja sobre los sistemas centralizados que han existido hasta ahora, controlados por los gobiernos o por grandes instituciones, que dan lugar a la posibilidad de abusos por parte de dichas instituciones y que pueden ser vulnerables ante ataques informáticos.

2.- Blockchain es un archivo cronológico y verificado

La información que se almacena en blockchain es almacenada por bloques y en orden cronológico, formando una cadena de información (de ahí viene el nombre, blockchain o cadena de bloques).

Este orden cronológico permite identificar toda la cadena de transacciones dando legitimidad a las nuevas operaciones. Su funcionamiento viene a ser como el Registro de la Propiedad en España, que va inscribiendo a los propietarios de un inmueble por orden cronológico.

Así, cada vez que se efectúa una nueva operación, la misma es verificada con el archivo cronológico y, si no es conforme con el mismo (por ejemplo, si alguien intenta pagar con un mismo bitcoin a dos personas distintas) la operación que no encaje será rechazada.

Si alguien realiza un ataque informático y consigue cambiar la información en varios nodos (por ejemplo, para permitir pagar con un mismo bitcoin dos operaciones distintas), la información que el sistema considerará como cierta será la que sea conforme con el 51% del poder total de generación de hashes (hashing), que explicamos a continuación.

3.- Blockchain es pública y confidencial a la vez gracias a la encriptación

Puede parecer una contradicción pero toda la cadena de información de blockchain es accesible por cualquier persona. Lo que ocurre es que lo único que es accesible son códigos numéricos (lo que se conoce como public key), no siendo posible identificar a las personas a las que corresponden esos códigos.

Para poder realizar una operación o identificar a una persona necesitas un código, o private key, que es único para cada dirección (un usuario puede tener varias direcciones, como puede tener varias cuentas de correos).

Mediante una combinación matemática del public key y el private key se produce la transmisión de la información que queda encriptada para toda persona que no tenga acceso al private key. Es un sistema parecido a cuando accedes a tu banco online utilizando para ello un token que tiene un código que cambia cada cierto tiempo.

4.- Blockchain es un sistema global, abierto y operativo en todo momento

Por sus características de sistema distribuido en nodos gracias a Internet, blockchain es un sistema global, abierto a cualquier persona que tenga acceso a Internet y que permanece abierto las 24 horas del día. Si realizas una transacción un domingo (por ejemplo), la misma queda registrada en ese mismo momento.

Blockchain

Ejemplo de cómo funciona la blockchain en bitcoin

Bien, pues ya hemos visto las características principales del blockchain. Ahora veamos un ejemplo de cómo funciona el blockchain con una operación de bitcoin.

Toda la cadena de información que existe en un determinado momento es representada por un hash, que se crea en virtud de un determinado algoritmo que, en el caso de bitcoin es el SHA 256  y utiliza una cadena de 64 caracteres representados por números (0 al 9) y por las primeras seis letras del alfabeto (a,b,c,d,e,f).

Los nodos mantienen una copia de toda la información que ha dado lugar al hash vigente y el hash vigente en cuestión. Eso es mucha pero que mucha información. Aquí podéis verificar el tamaño que ocupa en cada momento el blockchain de diversas criptomonedas. A fecha de redacción de este post, el de bitcoin  es de 153,05 GB.

Por curiosidad, si os apetece, podéis crear vuestros propios hashes en la página web Sordum, y cada vez que cambiéis el texto ligeramente, cambiará el hash. Este es el hash que resulta de la frase: ¨Lo único que hay que temer es al miedo en sí mismo¨ con SHA 256:

a01784ae8aa2fa750204d78c2257ca4fcd20a76a1d3cc515be1e0f981ab08caf

Partiendo del hash es muy complicado extraer la información que ha dado lugar a dicho hash.  Pero el proceso contrario, esto es, partirndo de la información que ha dado lugar al hash es muy fácil verificar que el hash es correcto.

Sigamos. Cada vez que se realiza una transacción hay una serie de nodos (no todos, solo los mineros o  miners) que utilizan esa nueva información (denominada raw transaction) para crear un nuevo hash. Luego, cogen todos los hash de todas las transacciones nuevas y los combinan de nuevo en lo que se llama una raiz de merkel (merkel root)  para añadirla al hash vigente y crear un nuevo hash. Sería algo así como:

a01784ae8aa2fa750204d78c2257ca4fcd20a76a1d3cc515be1e0f981ab08caf[nueva info] = cf44915b2c75080bda52aff93160b9582d45717a73cd12cb56fd16aab34c5e95

Y esto sigue y sigue con cada operación creando bloques que se suman a una cadena (cadena de bloques o blockchain). Cada bloque representa todas las operaciones realizadas en un período de tiempo (en el caso de bitcoin 10 minutos).

Mientras ocurre esto, los miners están compitiendo entre sí para ver quién es el que ¨adivina¨ el próximo bloque que se va a añadir a la cadena, en cuyo caso ganarán como premio los próximos bitcoins que se vayan creando. A este proceso se le denomina mining, minería, como si los bitcoins se tuviesen que extraer de una mina (¡como el oro y la plata!).

Pero, un momento. ¿No habíamos dicho antes que con la misma información era muy fácil obtener el mismo hash? Si. Y, entonces, ¿qué hay que adivinar? Pues es que el algoritmo de bitcoin añade un número aleatorio a la información que se utiliza para generar el hash (número que se denomina nonce abreviatura de number you use once). Como no se sabe ni cuál es el número que se añade ni dónde va a ir ubicado, los miners tienen que crear hashes potenciales (lo que requiere una capacidad enorme de tratamiento de la información). Finalmente un miner acierta y ese nuevo hash se añade como nuevo bloque a la cadena.

Pero aún hace falta que otros nodos validen ese nuevo hash para lo que comparan la información que tenían con el nuevo hash generado y el nonce y analizan si encaja. Esto dicho así suena complicado pero es mucho más sencillo que acertar el hash potencial. Si hay discrepancia entre nodos, priman los cálculos que representen el 51% o más del poder de hashing.

Y luego el procedimiento vuelve a empezar de nuevo…

Blockchain

Principales amenazas para la tecnología blockchain

1.- Pérdida de interés de los miners

Para que el sistema funcione hace falta que haya equipos muy potentes (y muy caros y que consumen mucha electricidad) procesando constantemente la información.

Hoy por hoy esto se consigue gracias a que se emiten nuevos bitcoins (o la moneda que sea) cada cierto tiempo y los miners se dedican a procesar la información para ganar dinero.

El interés de los miners desaparecerá si la moneda en cuestión pierde su valor o si se acaba la emisión de moneda. Por ejemplo, está previsto que sólo existirán 21 millones de bitcoins que serán emitidos en un plazo de 130 años. Hacia el año 2140, los miners no tendrán un interés económico en seguir destinando gran cantidad de recursos a tratar la información.

2.- Ataque del 51%

Si alguna empresa o institución quisiese manipular la información que se almacena en el blockchain, podría hacerlo si llegase a controlar el 51% del poder total de hashing. Según coinometrics.com (página 152 del libro Cryptocurrency: How Bitcoin and Digital Money are Challenging the Global Economic Order), en el verano de 2014, el coste necesario para llevar a cabo un ataque que alcanzase ese poder de hashing hubiera sido de 913 millones de dólares. Y desde entonces el poder de hashing no ha parado de crecer.

No obstante, este riesgo ha estado cerca de materializarse ya que los miners se agrupan en comunidades (pools) para combinar poder de hashing y aumentar sus posibilidades de ganar (un poco como las peñas que juegan a la lotería).

En enero de 2014, la comunidad de miners GHash.IO alcanzó un 42% del total de poder de hashing, acercándose peligrosamente al 51%. Poco después de que esta información se hiciese pública, muchos de los miners comenzaron a abandonar esa comunidad y a unirse a otras. GHash.IO incluso hizo una declaración pública al respecto en la que aseguraba que no tenía interés en perjudicar al bitcoin. Sea como fuere, el riesgo existe.

3.- Legislación

Si algún país le empieza a preocupar que se le escape el control del dinero, es posible que declarare ilegales realizar operaciones con una cierta criptomoneda o que sean validadas mediante la tecnología blockchain (argumentando por ejemplo que es necesario el control centralizado para recaudar impuestos).

4.- Fallos del sistema

Por ejemplo, que hayan problemas matemáticos tan complejos que bloqueen el sistema o que lo hagan tan caro que pierda su ventaja con el sistema tradicional. Por ahora no ha pasado pero… quién sabe.

Bueno, y esto es todo. Espero que este post os haya gustado. A pesar de la complejidad, he intentado explicarlo de forma sencilla. Si alguien detecta algún error, que me avise por favor.

Como siempre, si os ha gustado o si creéis que a alguien le puede interesar, por favor, ¡compartirlo que no os cuesta nada!

Ah, y finalmente, comentaros que blockchain es un sistema abierto que cualquiera pueda copiar y reproducir para aplicarlo a otras criptomonedas o a otros campos. Si queréis saber las oportunidades que la tecnología blockchain abre para el futuro, os dejo un vídeo de Néstor Palao en Ted Madrid en la que habla sobre el tema. ¡Que lo disfrutéis!

[embedyt] https://www.youtube.com/watch?v=vDrwgzgAyrk[/embedyt]

¨Solamente cuando las máquinas se equivocan te recuerdan lo poderosas que son¨. Clive James.

Deja un comentario

Tu dirección de correo electrónico no será publicada.