¿Qué es el Consenso de Nakamoto?
El Consenso de Nakamoto, es el nombre del primer sistema de consenso generado para criptomonedas, cuyo nombre deriva de su creador, Satoshi Nakamoto, quien también desarrolló Bitcoin.
Este sistema es el que hace posible el funcionamiento de Bitcoin y, como sistema de consenso, agrupa una serie de funciones fundamentales para hacer posible el despliegue y funcionamiento de esta criptomoneda.
Qué es el Consenso de Nakamoto
El Consenso de Nakamoto, es en realidad la unión de diversos algoritmos que, aplicados en su conjunto, permiten que Bitcoin funcione como una red descentralizada impulsada por un protocolo de comunicaciones P2P, un sistema de minería para la generación de criptomonedas, validación de operaciones y la generación de un historial de operaciones dentro de la red.
Así básicamente el Consenso de Nakamoto comprende:
- El algoritmo de Proof of Work (PoW), considerado como el primero algoritmo de consenso basado en una prueba de trabajo con un coste computacional asociado.
- Un sistema de comunicaciones P2P. Inicialmente, Bitcoin usaba un sistema basado en el protocolo Kademlia, pero en la actualidad ha evolucionado y uso un sistema derivado del Protocolo Gossip.
- Un conjunto de reglas centradas en la validación del trabajo realizado por los mineros que forman parte de la red P2P. Estas reglas son las que los mineros deben cumplir para que su labor sea aceptada por la red de nodos. Los nodos tienen la obligación de validar dicho trabajo, cualquier bloque que esté fuera de estas reglas es desechado. La idea es que todos los nodos manejen las mismas reglas y las hagan cumplir, creando un consenso sobre el historial y permitiendo generar una red con resistencia a ataques bizantinos (BFT).
De esta forma, el Consenso de Nakamoto es el responsable de brindar a Bitcoin las funciones y capacidades necesarias para que pueda funcionar de forma descentralizada y segura.
Cómo funciona el Consenso de Nakamoto
Ahora bien, analicemos un poco cómo funciona el Consenso de Nakamoto, partiendo desde su punto más básico: el inicio de generación de un bloque para la red.
Cuando Bitcoin se prepara para generar un nuevo bloque, la red comunica dicho evento por medio de un mensaje que indica a los mineros que deben iniciar la generación de un nuevo bloque, teniendo en cuenta el nivel de dificultad de la red y el target.
En este punto, los nodos y mineros saben que la dificultad y el target son elementos que forman parte de las reglas de validación de bloques dentro del Consenso de Nakamoto. De hecho, estos valores deben ser tomados en cuenta a la hora de generar un nuevo bloque para la red.
En este punto, los mineros ya tienen los elementos necesarios para iniciar su trabajo usando el algoritmo PoW. Durante su trabajo, irán organizando las transacciones a validar dentro del bloque y, en paralelo, irán generando los hash SHA256, los cuales deben cumplir con el target dado por la red.
Al finalizar su trabajo, los mineros crean el bloque cumpliendo las reglas de generación y lo entregan a la red para que los nodos lo verifiquen.
Solo una vez que se verifica el bloque, este es agregado a la copia de la blockchain del nodo y se envía un mensaje al resto de la red indicando que se ha agregado un nuevo bloque, junto con una serie de metadatos que ayudan al resto de la red verificar que los datos de generación de ese bloque están disponibles y así poder recrear y validar dicho bloque de forma individual.
El proceso de selección de bloques
Ahora bien, la selección de bloque es posible gracias al cumplimiento de una serie de reglas.
La primera regla para seleccionar un bloque válido es básicamente una carrera. Del conjunto de mineros dentro de la red, solo aquel que complete un bloque que cumpla con el target dado por la red será el ganador de la carrera. ¿El premio? Emitir el bloque con el fin de que se agregue a la blockchain y con ello reclamar las comisiones y la coinbase de dicho bloque.
Sin embargo, este resultado solo se mantendrá si se cumple la segunda regla: el bloque solo será agregado si este se cumple dentro de la cadena más larga. Cada vez que se emite un bloque y es validado, este es agregado a la blockchain haciendo que la red aumente.
Por ejemplo, si la red Bitcoin tiene una altura de 663.700 bloques, y resulta que un nuevo bloque es generado y validado, la red pasará a tener una altura de 663.701 bloques.
Pero hay un problema. La red es descentralizada, hay miles de nodos y mineros, todos ellos trabajando en paralelo, así que hay momentos en los que una parte de la red puede tener una altura (663.699 bloques) y la otra puede ser diferente (663.700 bloques). En este punto, las reglas del Consenso de Nakamoto son muy claras: la red más larga gana, por lo que el minero que ha dado su trabajo en la red con altura 663.700 bloques, es quien podrá realmente agregar su bloque a la red y reclamar la recompensa.
Esta regla de “la cadena más larga”, no solo aplica a los mineros y su trabajo, sino también a los nodos y su sincronización para generar consenso. Si los nodos detectan un hard fork de la red, donde hay dos redes con alturas e historiales distintos, los nodos de la red se decidirán por mantener la que tenga mayor altura y por tanto un historial más confirmado y mayor potencial computacional. De esta forma, la red mantiene un consenso sobre qué historial seguir y proteger.
Por otro lado, las reglas de validación se aseguran de que los bloques propuestos hayan cumplido con todo lo necesario del algoritmo PoW. Es decir, el bloque debe tener los datos y un hash válido, o de lo contrario es rechazado.
Con estas simples reglas, el Consenso de Nakamoto no solo protege el historial de la red, sino que también se encarga de eliminar aquellos historiales que pueden estar manipulados o que no cumplen con los estándares necesarios para el buen funcionamiento de Bitcoin.
Incentivos y Escasez
Además, el Consenso de Nakamoto se apoya en dos conceptos claves: los incentivos y la escasez.
El primero de ellos, mantiene la actividad minera en la red, ya que los incentivos son lo que impulsa el trabajo de los mineros mediante las comisiones y las recompensas de bloques.
Sobre estos incentivos pesa el segundo concepto: la escasez. Bitcoin es deflacionario, con una emisión máxima de 21 millones de monedas. Esto lleva a que los incentivos y la emisión monetaria sea limitada, lo que hace que tales recursos sean más apreciados. Como resultado, los mineros buscan acumular la mayor cantidad de poder computacional posible con el fin de asegurarse la mayor obtención de recompensas de la red, y en consecuencia blindar la misma.
En todo esto, Bitcoin aplica un sistema deflacionario que reduce las recompensas de bloque cada 4 años aproximadamente, en lo que conocemos como halving. Así, durante sus primeros 4 años, la recompensa de bloque de Bitcoin pasó de 50 BTC a 25 y, actualmente dicha recompensa se encuentra en 6,25 BTC.
La reducción de emisión y el enorme poder computacional acumulado, se encarga de hacer que el Consenso de Nakamoto sea más robusto y la seguridad de la red sea más fuerte que nunca.
Consenso de Nakamoto más allá de Bitcoin
El Consenso de Nakamoto es considerado como el primer algoritmo de consenso capaz de ofrecer una completa tolerancia a fallos bizantinos aplicado a una moneda digital descentralizada. Tal logro no pasó desapercibido, no solo dentro del mundo de la informática, sino también en la generación de nuevos proyectos de criptomonedas.
Así, el Consenso de Nakamoto se replicó en otros proyectos, por ejemplo, Litecoin e incluso el mismo Ethereum, la cual usó el Consenso de Nakamoto en su implementación PoW, y actualmente usa una versión modificada en su implementación Proof of Stake.