¿Qué es la Blockchain?

Mariano Coppoletta Pace pone sobre la mesa todo lo que hay que saber sobre Blockchain. Propone: "Se podría construir una base de datos en la que el gobierno registrara todos sus movimientos; y así podríamos ver en qué está gastando y a donde está destinando el dinero de los impuestos, entre otras cosas".

Mariano Coppoletta Pace

En los últimos años, las criptomonedas han ganado una popularidad formidable por todo el mundo, y cada vez son más los inversores que las incluyen en sus portafolios, en gran medida, gracias a la implementación de la tecnología blockchain en su funcionamiento. Cuando nos referimos a blockchain, muchas veces se asocia este término con el de bitcoin u otras criptomonedas, sin embargo, se trata de conceptos totalmente distintos. En efecto, blockchain, es la tecnología sobre la cual fueron construidos bitcoin y todos los cripto activos que surgieron posteriormente, y también es la responsable de que los mismos presenten virtudes como seguridad, descentralización y transparencia.

Se trata de una red descentralizada en la que los datos son administrados y procesados por los nodos participantes de la misma. Del mismo modo, el poder de decisión y de autoridad se distribuyen entre éstos, logrando que todos colaboren de igual a igual; surgiendo de allí el concepto de "peer to peer". La traducción al español sería "red de pares", haciendo referencia a un mecanismo en el que todos sus miembros se comportan como iguales entre sí, y permite el intercambio de información sin intermediarios. De este modo, la red consigue autogestionarse, y al prescindir de un servidor central, puede seguir funcionando perfectamente aun cuando uno o varios nodos caigan.

Red Monetaria

Cuando hablamos de Bitcoin, nos referimos a un software distribuido que permite a sus usuarios operar una red de pago entre pares, la cual tiene su propia moneda. En este caso, lo que se va a distribuír son las transacciones de dinero entre usuarios, las cuales quedan registradas en lo que ha dado en llamarse un "libro mayor abierto". Todas las transacciones registradas se comparten con los miembros de la red para que estos mantengan su contabilidad actualizada.

El primer desafío que se presenta consiste en asegurar a todos los partícipes el acceso indistinto a un registro global único con sus respectivas transacciones ordenadas cronológicamente. Este asunto es complejo, considerando una red tan grande como la de bitcoin -cuenta con más de veinticinco millones de usuarios y creciendo-, ya que se realizan miles de movimientos en temporalidades distintas. Es entonces cuando se introduce el concepto de "bloque", que consiste en agrupar una cantidad limitada de transacciones que ocurren dentro del mismo lapso.

Ahora, los mineros proceden a verificar la legitimidad de las mismas. Esto se puede hacer gracias a que siendo el registro público, se pueden rastrear la existencia, el origen y el destino de los fondos. El procedimiento que se describe es el que en el sistema financiero tradicional, tendría que hacer un banco. Una vez que el bloque ha sido verificado, se comparte con el resto de miembros de la red, y así todos podrán tener el mismo registro de transacciones.

El problema es que habrán muchos mineros que querrán divulgar su registro. Por este motivo, se introduce un mecanismo de consenso; un protocolo que le permite a los nodos de la red decidir qué transacciones aceptar, y cuál será el bloque que se agregue a la cadena. Para evitar que un ordenador se haga pasar por varios de ellos y vote más de una vez, se añadirá un elevado costo computacional.

Prueba de Trabajo (Proof of Work)

En la red de bitcoin, para votar hay que resolver un puzzle criptográfico. De este modo, si alguna persona intenta hacerse pasar por otra u otras, tendrá que resolver uno de estos por cada falsa identidad que quiera crear, requiriendo esto una gran inversión en hardware y en energía eléctrica.ñ Estos mecanismos de defensa que obligan al partícipe del sistema a ganar su propia participación en un proceso electoral a partir de invertir parte de sus recursos es lo que se conoce como una prueba de trabajo.

Algoritmo SHA-256

Para entenderlo tenemos que movernos a la rama de la criptografía y conocer qué es un algoritmo de hash seguro (SHA-256). Son funciones que nos van a permitir codificar cualquier entrada de datos en una secuencia de números, en concreto, una cadena de 256 bits, si estamos operando con este algoritmo. En otras palabras, un hash consiste en tomar datos, y generar en base a ellos un identificador hexadecimal único y de tamaño fijo. Los hashes generados para cada bloque válido, tendrán que empezar por una determinada cantidad de ceros.

La entrada que le vamos a pasar a esta función de hash va a ser nuestro bloque, con todos los datos de las transacciones que están contenidos en él y además un valor numérico que se podrá ir modificando, a este último se llama nonce. El puzzle, en este caso, consiste en ir modificando el nonce hasta que el hash comience con una cantidad determinada de ceros. La complejidad del algoritmo es muy elevada, la única manera de encontrar la solución es probando y probando números, gastando poder computacional, hasta encontrar la combinación correcta, por eso se llama prueba de trabajo. Aquel que consiga encontrar primero el número que codifica su bloque con un hash que comienza con esta secuencia de ceros, habrá ganado el derecho de agregar dicho bloque al registro general y compartirlo con los miembros de la red. Es entonces cuando decimos que se ha "minado un bloque".

Bloque

Aproximadamente cada diez minutos se crea un nuevo bloque. Teniendo en cuenta que caben aproximadamente 2200 transacciones por bloque, se verifican 2200 transacciones cada diez minutos aproximadamente, o sea, 3 4 transacciones por segundo.

Cada uno de ellos contiene el hash del bloque anterior, la fecha y hora de creación, la transacción de recompensa para el minero, todas las transacciones que quepan, y la cantidad de ceros con la que tiene que comenzar cada hash. Este último número está predefinido y es modificado cada 2016 bloques. A esta cantidad de ceros se la conoce como la dificultad, y está fijado para que estadísticamente se tarde unos diez minutos en encontrar un resultado válido para añadir el bloque a la cadena. La dificultad se sube o se baja según el poder computacional que tengan los mineros, si están minando muchos bloques rápida y fácilmente se sube la dificultad y viceversa.

Como mencionamos anteriormente, esta información va a un registro público a la vista de todos. Podemos comprobarlo buscando cualquier explorador de blockchain en google por ejemplo.

Doble gasto

En el supuesto caso de que dos personas consiguieran minar un bloque al mismo tiempo, existirían dos registros validados, pero cada uno de ellos con transacciones distintas, y si alguna/s de ellas estuviera en ambos bloques, esta quedaría registrada dos veces. A este fenómeno se lo conoce como doble gasto.

La solución a esto es que los miembros de la red mantendrán las dos versiones del registro y se empezará a trabajar en la validación del siguiente bloque hasta que, si no ocurre la misma casualidad de antes, una de las dos posibles cadenas añada un nuevo bloque más. Ahora sí, se elige aquella cadena que tenga más bloques verificados, la cadena más larga.

Recompensa para los mineros

En la cadena de bitcoin, cada bloque que se agrega trae aparejado un incentivo por contribuir a la red. El minero tendrá el derecho de incluir en su bloque una transacción especial, cuyo destinatario es él mismo, como forma de pago por su trabajo. La misma consta de una determinada cantidad de bitcoins que este gana a través del proceso de minado. Además, este es el modo a través del cual se "acuñan" las monedas, es decir, los bitcoins en circulación son aquellos que los mineros reciben a cambio de su trabajo.

¿Por qué es tan seguro?

Como se mencionó anteriormente, en una función hash, cualquier tipo de modificación en su entrada alterará el resultado final, por lo tanto, si alguien intenta manipular la información de los bloques, su hash cambiará por completo. Además, al contener cada uno de ellos el hash del bloque anterior, se van encadenando, constituyendo así la blockchain. De este modo la cadena logra ser inmutable ya que, si algún ente malicioso quisiera manipular la información de alguno de ellos, tendría que alterar su hash, y el de los bloques subsecuentes, pues se da por buena la cadena más larga. Mientras el atacante está intentando manipular un bloque, el resto de los mineros está trabajando en la cadena original, alargandola. Entonces el ritmo al que el atacante tendrá que trabajar es superior al del resto de los participantes de la red en conjunto, es decir, para que la cadena del atacante sea la más larga, tendrá que tener más potencia que toda la potencia acumulada por el resto de miembros de la red, lo cual es prácticamente imposible.

En síntesis, la blockchain es un registro común distribuido e inmutable, sobre el que cualquiera puede escribir y ver. En este artículo se utilizó bitcoin como ejemplo para explicar el funcionamiento de la misma, pero la entrada de datos que se le pasa a los bloques podría ser cualquiera, como por ejemplo un "contrato inteligente", que solo se ejecuta si sucede una determinada condición, la escritura de una casa o la historia clínica de un paciente. 

Pensando a gran escala, incluso se podría construir una base de datos en la que el gobierno registrara todos sus movimientos; y así podríamos ver en qué está gastando y a donde está destinando el dinero de los impuestos, entre otras cosas. Esta tecnología abre las puertas a terminar con la burocracia, la corrupción de los políticos y las masivas concentraciones de poder, devolviendo derechos a los individuos a ser dueños de su información y de crear valor.


Esta nota habla de: