Blockchain y Bitcoins II: Profundizando en la Cadena de bloques.

Bitcoin y Blockchain

Después de dar unas pequeñas pincieladas sobre el Bitcoin y su importancia en los protocolos de red actuales, hicimos una abstracción mental para entender que ocurre de verdad en un Blockchain o Cadena de bloques. Ahora es el momento de profundizar más es esta cadena, sus partes y en cómo funciona realmente.

Un bloque está dividido en cuatro partes. La primera es la cabecera donde se escribe el hash correspondiente al bloque anterior para incorporarlo a la cadena. Este hash es un número de 256 bits o 64 dígitos hexadecimales (SHA-256).

La segunda son las transacciones. Es la parte donde se escriben las transferencias realizadas. Cuando esta parte del bloque se completa pasa al proceso de cierre.

La tercera es un espacio en blanco que se puede modificar aleatoriamente para solucionar el problema matemático que genera el hash adecuado para cada bloque.

La cuarta y última parte son los 256 bits del hash SHA-256 característico del bloque.

Cadena de bloques

Esquema de los bloques de la cadena con el hash de cierre del bloque en la cabecera del siguiente.

Para entender el proceso de cierre de un bloque primero hay que entender que es una función hash. Esta función es un método criptográfico para verificar un contenido. Consiste en un algoritmo matemático que aplica una función a la entrada y devuelve un valor de unas características a la salida. El hash ha de ser determinista. Esto quiere decir que para una entrada dada, una función hash siempre devolverá el mismo valor, pero si se cambia un solo punto de la entrada, la salida será completamente diferente. También ha de ser resistente a colisiones para dificultar que dos entradas tengan el mismo hash de salida.

Por otro lado, si conocemos el algoritmo, siempre podremos obtener el hash de la entrada, pero no podemos predecirla ni predecir como cambiará si modificamos esta o aquella línea. Y nunca, nunca, se podrá obtener la entrada por inversión del proceso.

Por lo tanto, una vez que un bloque de transacciones se llena, se verifica las transacciones siguiendo el histórico de los bloques anteriores. Posteriormente se aplica la función hash conocida por la comunidad y verificable por todos y se añade al final del bloque y se envia una copia del bloque completo al resto de los nodos de la red.

Este es el proceso completo. No es complejo pero tiene un problema. La colisiones. Estas pueden producirse en el tiempo que se tarda en generar el hash, en verificar la información, o en distribuirse por la red.

Para evitarlo, y esto es uno de los puntos más importantes del protocolo, los desarrolladores del decidieron crear unas restricciones al hash planteando el «problema matemático» de la tercera parte del bloque. Por lo tanto, para cerrar un bloque es necesario obtener un hash con, en la actualidad, 15 números 0 el principio del código. Como el valor del hash es aleatorio e impredecible, solo se puede obtener por prueba y error. Coloco la parte aleatoria del bloque como quiera y calculo el hash. Si cumple la condición, cierro el bloque y lo público, si no es así, modifico y vuelvo a calcular. Así cuantas veces sea necesario.

De esta forma los desarrolladores eliminan la posibilidad de que se cierren dos bloques a la vez por probabilidad estadística. Pero calcular un hash de un bloque grande requiere tiempo. Y acertar con el hash necesario unos cuantos intentos. Por eso la comunidad decidió hacer del cierre de los bloques una carrera. Y para compensar el gasto de tiempo y recursos, así como de electricidad, se decidió premiar al ganador con 12,5 BTC. A esta competición es a lo que se llama minar Bitcoins, y a los participantes, mineros.

Con este método se logran varias cosas. Al incentivar la minería, se atraen nuevos usuarios a la red. Esto crear una comunidad estable que usa y prueba la red al generar un número de usuarios de Bitcoin que no han tenido que invertir en ellos, por lo que no pierden nada, y que van a moverlos para sacar rendimiento, lo que hace genera nuevas transacciones que llenan nuevos bloques que generan más dinero. Se crea un círculo beneficioso para el desarrollo y su éxito es el que ha llevado a Bitcoin a las cotas a las que ha llegado.

El problema de la minera ha surgido de la ambición. Al ser una competición, aquel que sea capaz de crear un hash en menos tiempo tendrá más posibilidades de ganar. Y aquí es donde entran las GPUs de las tarjetas gráficas que son capaces de aumentar la velocidad de procesamiento tanto como para hacer rentable la compra masiva de estas y el gasto de electricidad para refrigerarlas. Por otro lado, al haber tanta competencia, algunos mineros han empezado a asociarse y los hackers han encontrado un medio de financiación, por lo que el minado de Bitcoins hoy día no es ni rentable ni bien visto. Las condiciones de hash válidos se modifican para que el tiempo medio en cerrar un bloque sea de unos 10 minutos. Por lo que obtener un hash bueno no es sencillo aunque el azar juega un papel importante, puede que salga con el primer intento aunque tardes más en conseguirlo. Pero es poco probable que usuarios individuales sean capaces de cerrar bloques actualmente.

En la página blockchain.com podemos ver la información de los bloques y encontramos una tabla con información de los últimos cierres.

Una vez que el Blockchain ha demostrado ser un buen método de gestión de transacciones de forma distribuida, otros desarrollos y/o criptomonedas han ido surgiendo. Ripple y Ethereum son otras de las más importantes. Existen muchas páginas donde podemos encontrar información sobre otras criptomonedas y podemos adquirir monederos para invertir.

Por otro lado, Ethereum ha dado un paso más a delante ya que ha introducido otro tipo de información en los bloques, creando los smart contracts. Esto ha abierto las puertas del Blockchain a todo tipo de movimientos economicos para financiación y transacción como los token, los ICO (Initial Coin Offering), etc.

Aunque los Bitcoins posiblemente tengan los días contados, el desarrollo de Blockchain parece que está en un periodo de expansión y busqueda de aplicaciónes. Por lo que sigue siendo un buen candidato para ser la base del sistema monetario del futuro.

Para leer más:

Deja un comentario