Todos estaremos de acuerdo que los momentos que estamos viviendo son sin lugar a dudas históricos. Países cerrados, bolsas con ventas a corto bloqueadas, Bitcoin desplomado... El artículo de hoy viene como anillo al dedo, ya que en momentos de baja confianza lo más importante es entender la raíz de lo que estamos comprando (en este caso Bitcoin) así que esto es de lo que vamos hablar.
El consenso por Proof of Work
Recuperemos la pregunta del millón que dejamos sin contestar en el último post: ¿Cómo nos aseguramos que los mineros son honestos? Si un minero acaba controlando más del 51% puede incluir bloques con transacciones falsas a su nombre y por tanto robar a la red… Para evitar esto, Satoshi Nakamoto utilizó el algoritmo de consenso Proof of Work (PoW) para así acabar de convertir Bitcoin en una red segura, protegida, y prácticamente imposible de destruir. Un algoritmo de consenso es un método informático que permite a una red de ordenadores independientes llegar a un acuerdo y, en el caso de Bitcoin, fijar cuáles son las transacciones correctas.
Proof of Work es un concepto que como muchos otros elementos de Bitcoin no inventó Satoshi. Fue creado por Adam Back proponiendo el algoritmo HashCash como solución a los problemas de SPAM en los correos electrónicos. La idea es la siguiente; para evitar que se envíen cientos de correos SPAM, cada vez que se envíe un correo el ordenador que lo emite tendrá que resolver un problema matemático. Es decir, tendrá que primero esperar para poder enviar otro correo, y tener un gasto económico (electricidad). Esto permite poder estar muy seguro de que los mails enviados no serán por defecto SPAM, ya que sí tienen que gastar fuerza de cómputo y electricidad para enviarlos muy probablemente serán correos legítimos.
Esta idea Satoshi la trasladó a Bitcoin, con algunas variaciones.
Fijemonos en la estructura de un Bloque: (hash / “huella digital” del bloque anterior, un sellado de tiempo, todas las transacciones (combinadas entre ellas y luego hasheadas creando lo que se conoce como Merkle Root) y un número X desconocido llamado “nonce”).
El protocolo de Bitcoin define que el hash resultante de cada Bloque debe empezar por un número concreto de "0". ¿Cuál es el trabajo de los mineros? Utilizar fuerza computacional para encontrar es número X que hace que el hash completo del bloque empiece con ese número determinado de "0". Este número conocido como “nonce” sólo se puede encontrar por fuerza bruta, probando y gastando enormes cantidades de electricidad. Para poner un ejemplo, si tienes un Bloque es muy fácil sacarle su hash (huella dactilar), pero si tienes el hash (huella dactilar) es imposible saber de qué Bloque proviene; la única forma es ir probando. En cambio, una vez encontrado, es muy fácil para el resto comprobar si el resultado es correcto y darlo por bueno.
Cada vez que la red aumenta de valor y por tanto más mineros quieren asegurarla para obtener beneficios, el número de "0" necesarios aumenta. Esto se conoce como harvesting y se autoregula cada 2.100 bloques (aprox. 2 semanas), de forma que el tiempo de cálculo necesario para que los mineros puedan encontrar dicho nonce será siempre de 10 minutos.
La fuerza del protocolo
Esta maravillosa idea tiene enormes beneficios: hace que la red sea exageradamente segura, no sólo porque para que un minero pueda manipular la red debería tener más de la mitad de potencia de cálculo de misma, sino porque además está diseñada para desincentivar el deseo de atacar; a esto se le conoce como “Teoría de Juegos”: sales ganando si haces lo correcto, y eres penalizado si intentas hacer lo contrario. El sistema no espera funcionar correctamente confiando en la buena moral, sino en el propio egoísmo y codicia del ser humano.
Los ataques no son convenientes a nivel económico; primero porque gastas demasiado dinero solo para intentar conseguirlo, no solo por inversión energética sino también por maquinaria (ASIC). Segundo porque en el momento en que se registre una transacción falsa, automáticamente, bitcoin perdería mucho valor, ya que se perdería la confianza y todo el dinero invertido en conseguir el ataque se habría gastado para nada. Y tercero porque no conviene. Si has invertido millones no solo en suministro eléctrico sino también en maquinaria esperas poder sacar un rendimiento de ello, y esto solo es posible actuando de forma correcta y siendo recompensado por la red con bitcoins.
Quizás la única posibilidad de generar bloques falsos sería a través de un gobierno (con grandes cantidades de dinero que poder destinar a fondo perdido) que no busca rentabilidad, sino simplemente eliminar Bitcoin, ya que podría representar una amenaza a su control monetario que tanto adoran. Dando por supuesto que la operación en cubierta de compra de chips y máquinas de minado sería exitosa y que estarían dispuestos a invertir miles de millones de euros tan solo conseguirían poder sobre la red durante 10 minutos antes que los desarrolladores trabajasen para expulsarlos (si hace falta rompiendo la cadena con un Hard-Fork) y aún así, muy probablemente no tendría resultado o acabarían prefiriendo actuar de forma honesta y recibir Bitcoins. Pensemos que en última instancia siempre son los nodos completos de la red los que tienen que aceptar los bloques en su cadena, por lo que si se corre la voz de que los bloques provenientes de cierto minero son corruptos sencillamente los nodos no los aceptarían y tanto esfuerzo y dinero habría quedado en saco roto.
La inmutabilidad de la cadena
Otra característica fundamental de Bitcoin es la inmutabilidad de la cadena, que hace prácticamente imposible cambiar transacciones de bloques antiguos. Un pequeño cambio en la información del bloque alteraría el resultado del hash (huella dactilar del bloque) y por tanto no coincidiría con el hash presente en el siguiente bloque que hace referencia al bloque anterior. Esto hace que todos los bloques estén relacionados matemáticamente haciendo imposible cambiar algo, aunque sea una letra, ya que no coincidiría y la red no lo aceptaría como bueno. La única opción sería hackear y superar en potencia de cálculo todos los miles de miles de ordenadores que soportan la red y volver a encontrar el nonce correcto para cada bloque. Posible solo a nivel teórico.
Un caso de uso claro para este concepto es la trazabilidad segura y confiable de cualquier mercancía, incluso dinero. En otro post veremos que esto se suele hacer en otras blockchains como Ethereum, ya que Bitcoin, a pesar de ser más segura y robusta, no ofrece la posibilidad de ejecutar Smart Contracts de forma nativa, algo que a día de hoy esta cambiando.
Conclusiones
Estos son los dos principales beneficios que hacen de Bitcoin una red exageradamente robusta, segura y confiable. Aunque a mí personalmente lo que más me fascina de este sistema es que permite convertir Bitcoin es una forma de dinero sólida, quizá las más sólida jamás creada. No hay manera de manipular la oferta monetaria de Bitcoin, ya que la dificultad se reajusta para que los nuevos tokens siempre se generen como recompensa a los mineros cada 10 minutos. Aunque la red de hoy para mañana disponga del doble de fuerza computacional, los bloques no se generaran cada 5 minutos, sino que se reajustará la dificultad y seguirá tardando 10minutos.
Algunos creen que la energía que gasta Bitcoin en mantener la red segura es demasiado alta y no justificada. A menudo estos no tienen en cuenta que la mayor parte de los mineros funcionan con energía renovables ya que están incentivados a obtener energía barata; segundo, no contemplan la cantidad de energía que necesita el sistema financiero para funcionar y garantizar una confianza que encima es dudosa (no se basa en matemáticas como BTC), y por último claramente infravaloran el significado de tener una forma de dinero sólida, descentralizada y accesible a todo el mundo. Aquí es donde me voy a centrar a partir de ahora. De todo esto ya sabes que hablamos largo y tendido en el Máster de Barcelona.
Nos vemos en el siguiente post. ;)
Referencias
- Bitcoin Blockchain Explorer
- Bitcoin Blocks Creator
- HashCash
Descubre más artículos en el Criptoblog sobre...