Saltar al contenido
buybitcoinsmart

Glosario / Minería y consenso

Reglas de consenso

¿Qué son las reglas de consenso?
Las reglas de consenso son las comprobaciones de validez que todo nodo completo aplica a un bloque, e incumplir aunque sea una sola de ellas hace inválido ese bloque, por mucho trabajo que lleve.

El conjunto de reglas abunda en detalles concretos: ningún doble gasto, ninguna salida que valga más que sus entradas, scripts válidos y una transacción coinbase que no reclame más que el subsidio más las comisiones. Bitcoin Core deja las cifras escritas en el código: 4.000.000 unidades de peso por bloque, 80.000 operaciones de firma y una espera de 100 bloques antes de que las monedas minadas puedan gastarse. Estas reglas son la razón por la que ningún exchange puede acreditarle una moneda que la red nunca creó.

Cómo funciona

Las reglas de consenso se dividen en cuatro grupos, y casi todas son deliberadamente aburridas.

El primer grupo rige el dinero. La recompensa de un bloque se reduce a la mitad cada 210.000 bloques, y la salida coinbase no puede reclamar ni un satoshi más que ese subsidio más las comisiones de las transacciones realmente incluidas. Las monedas que crea un bloque no pueden gastarse durante otros 100 bloques. Cualquier otra transacción debe gastar salidas que existan, que no se hayan gastado ya y que satisfagan el script que las bloqueó, sin que el total que sale supere nunca el total que entra.

El segundo grupo rige los recursos, porque la verificación tiene que seguir siendo lo bastante barata para una máquina corriente. Un bloque no puede superar 4.000.000 unidades de peso ni 80.000 unidades de operaciones de firma. El tercer grupo rige la estructura: la transacción coinbase va primero y una sola vez, la raíz de Merkle del encabezado debe coincidir con las transacciones presentes y el hash del encabezado debe ser igual o inferior al objetivo que exigen las reglas de dificultad. El cuarto grupo rige el tiempo. La marca de tiempo de un bloque debe ser posterior a la mediana de las once anteriores y no adelantarse más de dos horas al reloj del propio nodo, y desde el BIP113 los locktimes se miden con respecto a ese mismo tiempo mediano.

Dónde están escritas estas reglas es la parte incómoda. No existe una especificación independiente: las reglas son lo que acepte el código desplegado, lo que para la inmensa mayoría de la red significa la lógica de validación de Bitcoin Core, con sus peculiaridades y accidentes incluidos. Por eso una reescritura en otro lenguaje se considera un peligro y no una mejora, y por eso Bitcoin Knots, la variante más conocida, conserva byte a byte el comportamiento de consenso de Core y solo se diferencia en la política de retransmisión y de minería.

La lista se cambia en uno de dos sentidos. Una bifurcación blanda (soft fork) elimina posibilidades, de modo que los bloques creados con las nuevas reglas siguen pareciendo válidos al software antiguo: la codificación DER estricta de las firmas pasó a ser obligatoria en el bloque 363.725 y el opcode (código de operación) OP_CHECKLOCKTIMEVERIFY en el bloque 388.381, y ninguno de los dos dividió la red. Una bifurcación dura (hard fork) añade posibilidades, lo que hace que los bloques nuevos parezcan inválidos a quien no se haya actualizado, y produce dos cadenas salvo que la adopción sea universal.

Por qué importa cuando compra bitcoin

Las reglas de consenso son la única parte de poseer bitcoin que nadie puede renegociar con usted después.

Ponen un piso firme bajo un pequeño número de riesgos. Nadie puede imprimir monedas fuera del calendario, gastar una salida sin su clave ni borrar un pago enterrado bajo trabajo real. Ese piso es estrecho, y conviene precisar qué queda fuera de él, porque es ahí donde la gente pierde dinero de verdad: un exchange que cae en insolvencia, un sitio de phishing que recopila una frase semilla, un agente de soporte que congela una cuenta, un pago de impuestos que llega sin haberse presupuestado. Nada de eso implica que se incumpla una regla. Todos implican confiar en algo que las reglas nunca abarcaron.

La distinción le permite comprobar las afirmaciones publicitarias. Si un servicio puede revertir un pago confirmado, no revirtió una transacción de bitcoin; ajustó su propio libro contable, y usted nunca estuvo on-chain. Si un producto anuncia una liquidación más rápida de lo que permiten los bloques, le está concediendo crédito y asumiendo el riesgo por su cuenta, lo que puede ser un servicio perfectamente válido siempre que usted sepa que eso es lo que compró. Si una moneda afirma tener la seguridad de bitcoin con miles de transacciones por segundo, los límites de recursos descritos arriba son la razón por la que bitcoin no lo hace.

Lo que las reglas de consenso no son en absoluto es ley. La red aplica las mismas comprobaciones a todos los usuarios del planeta, mientras que el marco legal cambia en cada frontera, y por eso las guías de país de este sitio existen aparte de todo lo que dice esta página. La validez la deciden los nodos. La legalidad, las obligaciones de declaración y si un exchange llegará siquiera a aceptarlo a usted los decide su jurisdicción, y ambos nunca, ni una sola vez, han acordado consultarse entre sí.

Los 184 mil millones de bitcoin que duraron cinco horas

El 15 de agosto de 2010, una transacción del bloque 74.638 creó dos salidas de más de 92 mil millones de bitcoin cada una.

El error era aritmético. El código comprobaba que cada salida tuviera un monto razonable, pero las sumaba en un valor que se desbordaba, de modo que un total mayor que todo el calendario de suministro se leía como un número positivo pequeño y pasaba la comprobación. Satoshi Nakamoto publicó la versión 0.3.10 con una corrección en cuestión de horas, los nodos cambiaron a ella y una cadena corregida superó a la defectuosa 53 bloques después. El incidente está catalogado como CVE-2010-5139 y sigue siendo la única vez que el suministro de bitcoin ha superado su calendario.

Sobreviven dos lecciones. El límite de 21 millones no es una ley de la física, es una línea de código, y el código puede estar equivocado. Y la reparación funcionó precisamente porque nadie estaba a cargo de ella: miles de operadores independientes decidieron, cada uno por su cuenta, ejecutar el software corregido, que es el único mecanismo que ha tenido nunca una regla de consenso.

Reglas de consenso frente a política de retransmisión

Las reglas de consenso deciden qué es válido; la política de retransmisión decide qué retransmitirá un nodo. La política es más laxa, local y ajustable en cada nodo: una comisión mínima de retransmisión predeterminada de 1 sat/vB, un límite de polvo de 546 satoshis en una salida heredada (legacy), límites a las salidas portadoras de datos y una lista de tipos de script que se consideran estándar. Si incumple la política, puede que su transacción simplemente no se propague. Si incumple una regla de consenso, ningún bloque que contenga esa transacción podrá existir jamás. Los mineros incluyen con regularidad transacciones que algunos nodos no habrían retransmitido, y los bloques resultantes son completamente válidos; por eso "mi billetera dice no estándar" es un problema de enrutamiento con soluciones alternativas, mientras que "inválida" no tiene vuelta atrás.

No confundir con

Preguntas frecuentes

¿Se puede cambiar el límite de 21 millones?

Solo si prácticamente todos los que ejecutan un nodo decidieran ejecutar un software que lo permitiera, lo que supondría una bifurcación dura que se apartaría de bitcoin tal como existe. Los tenedores, los exchanges y los mineros salen todos perdiendo si se infla el suministro, así que nunca ha habido un apoyo significativo a esa idea.

¿Es inválida una transacción que mi nodo se niega a retransmitir?

No. La retransmisión es política y puede variar de un nodo a otro, mientras que la validez es consenso y es idéntica en todas partes. Una transacción que no cumple la política de su nodo puede aun así acabar minada en un bloque perfectamente válido.

¿Dónde están escritas las reglas de consenso de bitcoin?

En el código y no en una especificación. La lógica de validación de Bitcoin Core es el conjunto de reglas de facto, con los cambios individuales descritos en los BIP, y por eso las implementaciones alternativas intentan copiar su comportamiento con exactitud en lugar de reinterpretarlo.

Para seguir leyendo

Términos relacionados

Más en la sección Minería y consenso

Leer esta página en inglés