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:

  1. 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.
  2. 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.
  3. 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