Saltar al contenido

Capítulo 2: Blockchain

Blockchain

El siguiente concepto imprescindible para adentrarse en este mundo es el de “Blockchain” también conocido como “Cadena de Bloques”

La blockchain se conecta con la rama informática de los sistemas descentralizados, y va a ser sobre esta tecnología sobre la que se va a basar todo lo que veamos en el futuro.

Centralización vs Descentralización.

Para iniciar este apartado podríamos preguntarnos por qué ocurren las caídas en Whatsapp.

Esto se debe a que todos los servicios e información se concentran bajo una serie de nodos y servidores que pertenecen a la compañía, y a partir de aquí, se organizaría y distribuiría toda la información por la red.

Ver las imágenes de origen

El problema surge cuando alguno de estos nodos principales tiene algún error, ya que eso afectaría a toda la red, puesto que de estos nodos principales nace toda la información y todas las conexiones hacia los demás nodos usuarios.

Otro de los inconvenientes que nos surge con las redes centralizadas es que todas las decisiones y el control está acumulado en un único punto y este punto es controlado por la empresa, por lo que puede llegar a tomar decisiones bastante discutibles que no gusten a sus usuarios.

El ejemplo perfecto de ello fue la suspensión permanente de Donald Trump de su cuenta de Twitter.

Frente a ello encontramos las redes descentralizadas que se basan en que en vez de tener un único punto central que lo controle todo, existen miles de nodos participantes que se conectan entre sí, que se organizan para la toma de decisiones, etc., sin necesidad de pasar por un nodo central.

Con esto además se acabarían las caídas de red, ya que, si cae un nodo participante, la red podrá seguir subsistiendo gracias a los miles de nodos participantes restantes.

blockchain

Este funcionamiento es verdad que puede ser muy complejo, ya que los propios usuarios son los que tienen que velar por el buen funcionamiento y organización, intentando evitar además las malas intenciones que pueden algunas personas llegar a tener, para conseguir beneficiarse ellos mismos en detrimento de la sociedad, si bien es cierto que esto será muy difícil como veremos en un rato.

Pero si finalmente se consiguiese, conseguiríamos una red en la que todas las personas participásemos de igual a igual, o como se dice en inglés “Peer to Peer” (P2P), sin estar sujetas a las decisiones de una institución.

Una idea de esta relación sería el funcionamiento de la red de descargas uTorrent, en la cual podías ir descargándote la peli gracias a archivos que tenían almacenados otros usuarios en la red y que los compartían para hacer eficaz dicha aplicación.

¿Qué es el Bitcoin?

El Bitcoin nació en 2008 por Satoshi Nakamoto que creó un Whitepaper en el que se mencionaba un nuevo método de intercambio de dinero entre personas (P2P) sin la sin necesidad de la existencia de una institución central.

Ver las imágenes de origen

Esta era la primera propuesta de crear un sistema económico global descentralizado. ¡Toda una revolución!

Su funcionamiento podemos asimilarlo de manera sencilla al ejemplo del uTorrent comentado anteriormente, pero ahora en vez de partes de películas lo que vamos a distribuir por la red va a ser la información de los intercambios de dinero que se están produciendo entre usuarios.

Verificación de los datos

Imaginemos por ejemplo una transacción por la cual yo pago a Elon Musk un Bitcoin a cambio de un Tesla. Esta operación quedará registrada en una contabilidad general, y la información de la operación realizada, deberá ser propagada por toda la red para que todos tengamos esta contabilidad actualizada.

No obstante, existen una serie de problemas.

Uno de ellos sería que cuando realizas una transacción, esta se manda a la red para que todos los usuarios como ya hemos actualicen la contabilidad, pero esta información no se distribuye entre los usuarios al mismo ritmo, por lo que toda la contabilidad se puede llegar a descoordinar, ya que a unos usuarios les llegarán tres operaciones por ejemplo antes de que a otro le llegue la primera operación.

Y puedes pensar ¿Qué más da que las operaciones estén desordenadas si al final todos vamos a tener las mismas operaciones, aunque en diferente orden si existe un registro con la fecha y hora?

Pues bien, esta respuesta la iremos viendo a lo largo de este capítulo, aunque primero vamos a pasar a ver la solución para evitar la descoordinación.

Una solución podría ser tomar todas las transacciones que ocurren simultáneamente dentro de una ventana de tiempo y agruparlas en algo que podemos llamar en un bloque.

Una vez agrupadas en un bloque, el siguiente paso sería verificar que todas estas transacciones son correctas. ¿Y cómo se hace eso?

Imaginemos, por ejemplo, que Elon Musk me paga a mi 10 Bitcoin, pues el trabajo de un verificador podría ser asegurarse de que Elon Musk efectivamente tiene 10 BTC. Lo cual es fácil de hacer, ya que tenemos públicamente el registro de todas las transacciones realizadas hasta la fecha de Elon Musk. Y, por tanto, solo validaremos la operación cuando podamos afirmar que Elon Musk tiene esa cantidad de monedas para poder transmitirlas.

Este es el trabajo que normalmente hace un banco, pero que en una red descentralizada lo realizan las personas.

Compartir los datos verificados

Cuando un bloque esté totalmente verificado, este se compartirá en la red para que todos puedan tener el mismo registro.

El problema puede surgir cuando otras personas, también hayan realizado dicho proceso de verificación y quieran lanzarlo a la red para compartirlo y ganarse la recompensa.

En esta situación nos planteamos la disyuntiva de ¿qué registro aceptar?

Una solución que podríamos llegar a pensar sería hacer una votación, es decir que cada persona con su IP personal votase el registro que quiere que continue.

Sin embargo, eso puede llevar a que ciertas personas se creasen miles de IP falsas para poder votar más veces la opción que más le convenga, desvirtuando la finalidad de la votación.

Es por ello que la solución que se adopta es la de tener que pagar un pequeño coste computacional a todas aquellas personas que quieran participar en esta votación. Así, por ejemplo, para participar en la votación se tendrá que resolver un pequeño puzle criptográfico.

Con esto conseguimos que, si una persona quiere hacerse miles de IP para votar, tendrá que pagar ese coste computacional miles de veces, lo cual no es factible ni accesible para la gran mayoría de los bolsillos.

Este mecanismo de defensa es lo que se conoce como prueba de trabajo o en inglés “Proof of Work” (PoW)

Proof of Work

Para entender como funciona este puzle criptográfico o PoW, tenemos que adentrarnos un poco más en las bases de la criptografía, pero trataré de hacerlo de la forma más sencilla posible.

Para comenzar, tenemos que conocer que es un algoritmo de hash seguro, que no es más que una función que nos va a permitir codificar cualquier input de datos en una secuencia de números aleatorios, más concretamente una combinación de 256 caracteres (SHA-256).

Así, el input que le vamos a pasar a esta función de hash va a ser nuestro bloque, es decir, todas las transacciones que hemos verificado.

Este puzle, consistirá en modificar ese número con el fin de buscar un código de hash resultante que contenga una cantidad determinada de ceros al inicio. Si se encuentra el valor correcto del input, habrás ganado el puzle.

Realmente, esto de puzle tiene poco, sino que serán las maquinas las que tengan que ir probando números y números hasta dar con la solución, lo cual consume mucha energía y sería muy costoso para un usuario en su casa intentar resolver uno de estos puzles.

Ver las imágenes de origen

Bueno, pues aquella persona que consiga encontrar primero el número correcto que codifica su hash, se habrá ganado el derecho de añadir el bloque al registro general (el que podemos observar todos en esta página por ejemplo). Cuando haya encontrado el resultado, lo compartirá con el resto de miembros de la red.

Cuando todo esto ocurra, diremos que esa persona ha minado un bloque.

Pero, ¿y qué pasa si más de una persona encuentra a la vez la solución y empieza a distribuirla por la red?

Esto hará que puedan existir dos registros totalmente validos pero diferentes, así que ¿cuál elegimos?

La solución a este dilema será que los miembros de la red mantendrán las dos versiones del registro y se empezará a trabajar en la elaboración del siguiente bloque.

Este siguiente bloque volverá a pasar por el mismo procedimiento y finalmente ocurrirá que una de las dos posibles cadenas encuentre la solución al siguiente bloque antes que la otra.

Cuando ocurra esto, habrá una cadena con más bloques verificados que la otra, por lo que ya tendremos una cadena más larga y será la que continuemos utilizando ya todos, descartando y desechando la otra cadena.

Recompensa

Cada bloque que se mina exitosamente tiene una recompensa para el que lo consiga. Esta recompensa será ganar bitcoins. Actualmente, la recompensa por minar un bloque es de 6,25 bitcoin

 Es por ello que hay empresas que utilizan grandes naves llenas de equipamiento para conseguir ser los primeros en verificar los bloques, ya que 6,25 bitcoins equivalen a día de hoy a más de 250 mil dólares.

¿Es segura la red blockchain?

La solución rápida y sencilla a esta pregunta es que sí, es totalmente segura

Esto se debe a que cuando a un hash se le modifica mínimamente un pixel, el código de 256 caracteres que nos saldrá será totalmente diferente y nos daremos cuenta.

Pero no es solo eso, y es que el diseño de esta red y de este registro incluye algo muy especial y es que el contenido del bloque que cada minero construye no solo incluye los datos de la transacción y el numero de verificación, sino que además incluye cual ha sido el hash del ultimo bloque aceptado, es decir estamos encadenando cada bloque con el anterior.

Así es como estaremos creando una cadena de bloques, es decir estamos creando el Blockchain.

Ver las imágenes de origen

Por tanto, el Blockchain es una estructura de datos formado por bloques encadenados unos con otros por su hash y que por su propia forma sabemos que es prácticamente inmutable, ya que, si ahora tu quisieras modificar un bloque, automáticamente te cambiaría el hash y por tanto el del siguiente (al estar conectado con el anterior), y el del siguiente y así sucesivamente.

Todo eso es un trabajo que tú tienes que realizar ahora para que te tomen enserio y mientras, el resto de la gente ajena a tu ataque seguirá validando la cadena de bloques más larga, es decir la cadena principal.

Y como ya hemos dicho antes, la cadena que se validará en toda la red será la más larga, por lo que tu como atacante tendrás que resolver los bloques de manera mucho más rápida de lo que se hace en la cadena principal para que se te tome enserio y poder construir tú solo la cadena más larga, lo cual es prácticamente imposible ya que serías tu contra el mundo, y tu fuerza computacional no va a ser más grande que todas las demás combinadas.

Esto es lo que se conocería como un ataque del 51%. En definitiva, sería más fácil hackear Apple o Microsoft, que Bitcoin.

Conclusión

Para finalizar me gustaría recalcar que Bitcoin y Blockchain no es lo mismo.

Bitcoin es una moneda que utiliza el sistema Blockchain para su funcionamiento, pero Blockchain es un concepto superior y que se va a poder utilizar para muchas otras cosas como por ejemplo los contratos inteligentes o “Smart Contracts” y que analizaremos en el siguiente capítulo, así como para la creación NFTs, entre otras muchas utilidades.

Vídeo explicativo muy recomendable

Enlaces a otros posts relacionados:

Capítulo 0: ¿Qué son las criptomonedas?

Capítulo 1: Web 3.0