Consenso distribuido
El desafío
Imagina que diez mil ordenadores repartidos por el mundo necesitan ponerse de acuerdo sobre una lista de transacciones, sin poder confiar los unos en los otros y sabiendo que algunos podrían intentar hacer trampa. Este es el problema del consenso en sistemas distribuidos, una variante del clásico "problema de los generales bizantinos".
La solución de Bitcoin
Bitcoin usa prueba de trabajo como mecanismo de consenso. Los mineros compiten por resolver un problema criptográfico costoso. El primero en resolverlo propone el siguiente bloque. Los nodos verifican que el bloque cumple las reglas y, si es válido, lo añaden a su copia de la cadena.
La regla general es simple: si hay varias cadenas válidas en conflicto, se sigue la que tenga más trabajo acumulado (la "cadena más larga"). Esto crea un incentivo para que todos los participantes cooperen con la verdad, porque intentar engañar al sistema es enormemente más costoso que colaborar con él.
¿Por qué importa?
El consenso distribuido es lo que permite que Bitcoin exista sin autoridad central. Es el pegamento que une la red. Sin él, no habría forma de saber cuál es el estado verdadero de la blockchain ni quién tiene cuántos bitcoins.
Errores habituales
- Confundir consenso con "votación" (en Bitcoin no se vota, se verifica)
- Creer que los mineros deciden las reglas (los nodos las imponen)
- Pensar que consenso significa unanimidad (significa que las reglas se aplican uniformemente)
Conceptos relacionados
Fuentes primarias
- Whitepaper de Bitcoin, Secciones 4-5
- Lamport, Shostak, Pease (1982), The Byzantine Generals Problem