Descripción General
El consenso en Bitcoin se refiere al acuerdo entre todos los nodos participantes sobre qué transacciones y bloques son válidos y cuál versión de la blockchain es la canónica. Este acuerdo se logra sin ningún coordinador central mediante una combinación de reglas deterministas (reglas de consenso) y un mecanismo de incentivo económico (prueba de trabajo).
Reglas de Consenso
Cada nodo completo valida de forma independiente cada bloque y transacción frente a un conjunto completo de reglas:
Reglas a nivel de transacción:
├── Las entradas hacen referencia a salidas existentes y no gastadas
├── Las firmas son válidas
├── Los valores de entrada ≥ valores de salida
├── Los scripts se ejecutan correctamente
└── La transacción no es un duplicado
Reglas a nivel de bloque:
├── El hash del encabezado del bloque cumple el objetivo de dificultad
├── El peso del bloque ≤ 4,000,000 unidades de peso
├── La marca de tiempo está dentro del rango aceptable
├── La recompensa del bloque no excede el subsidio permitido + comisiones
├── La raíz de Merkle coincide con las transacciones incluidas
└── Todas las transacciones incluidas son válidas
Consenso de Nakamoto
El mecanismo de consenso específico de Bitcoin, conocido como Consenso de Nakamoto, combina tres elementos:
- Prueba de trabajo: Los mineros expenden recursos computacionales para proponer nuevos bloques
- Regla de la cadena más larga: Los nodos siguen la cadena con mayor prueba de trabajo acumulada
- Ajuste de dificultad: La dificultad de minería se adapta para mantener tiempos de bloque de aproximadamente 10 minutos
Cambiar las Reglas de Consenso
Modificar las reglas de consenso requiere coordinación en toda la red descentralizada:
- Soft fork: Un ajuste de reglas compatible con versiones anteriores. Los nodos antiguos aún aceptan los bloques producidos bajo las nuevas reglas.
- Hard fork: Un cambio de reglas incompatible con versiones anteriores. Los nodos antiguos rechazarían los bloques producidos bajo las nuevas reglas, potencialmente causando una división de la cadena.
Por Qué Importa el Consenso
El consenso es lo que hace que Bitcoin sea sin confianza. Los usuarios no necesitan confiar en ningún minero, desarrollador o institución en particular. Solo necesitan ejecutar un nodo completo que verifique de forma independiente cada transacción y bloque. Si un minero produce un bloque inválido, todos los nodos honestos lo rechazarán independientemente de cuánto poder de hash controle el minero. Esta propiedad es el fundamento de la seguridad y la resistencia a la censura de Bitcoin.