Protocolo de Bitcoin

« Back to Glossary Index

Reglas de protocolo de Bitcoin

Las reglas del protocolo Bitcoin son las reglas que definen con precisión el sistema Bitcoin.

Hay diferentes clases de reglas en el sistema Bitcoin que incluyen:

  • Reglas inmutables
  • Reglas mutables
    • Políticas locales
    • Políticas estándar
  • Reglas de comunicación

Reglas inmutables

Las reglas inmutables están codificadas en clientes de nodo de Bitcoin y deben cumplirse estrictamente para implementar la especificación de Bitcoin en el software [1]. Son un conjunto de reglas que definen el formato y las restricciones que deben seguir las transacciones y los bloques. Los cambios a estas reglas requieren una bifurcación dura de la red que puede resultar en una duplicación del libro mayor en los casos en que los mineros intentan imponer cambios que cambian la naturaleza de Bitcoin. Como Bitcoin se define por estas reglas, una cadena bifurcada que las altera podría compartir la historia del libro mayor, pero no puede considerarse Bitcoin, sino que es una nueva cadena de bloques.

Éstos incluyen:

  • La suma del valor de las entradas de una transacción debe ser mayor o igual que la suma de los valores de las salidas.
  • El subsidio de bloque se reducirá a la mitad a una tasa programada de cada 210,000 bloques, comenzando con un subsidio de 5,000,000,000 de satoshis por bloque del bloque de génesis
  • La red ajustará el objetivo para la dificultad de la Prueba de trabajo necesaria para que un bloque válido mantenga una tasa de descubrimiento de bloque de aproximadamente 10 minutos
  • Solo los bloques que se suman a la cadena de bloques formada al construir sobre el bloque Genesis son válidos
  • La estructura de la base de datos de Bitcoin como un servidor de marca de tiempo que valida cadenas de salidas de transacciones
  • Formato de datos de transacciones, incluidos los tamaños de ciertos campos y su esquema de codificación
  • Estructura de bloque e información de encabezado, incluidos los tamaños de ciertos campos y su esquema de codificación
  • El lenguaje de scripts de Bitcoin y sus especificaciones incluyen:
    • Listas de códigos de operación que se pueden usar en script y el resultado exacto de su ejecución

Los cambios forzados a estas reglas de protocolo en el pasado han dado como resultado duplicaciones hostiles de la base de datos de Bitcoin, creando BTC que eliminó el requisito de que Bitcoin sea una cadena de firmas digitales, y BCH que modificó el aspecto de marca de tiempo del sistema y modificó lenguaje de script para agregar códigos de operación que no forman parte del diseño original.

La filosofía de Bitcoin SV es que cuando los aspectos de estas reglas se han cambiado en el pasado, deben devolverse para que estén lo más cerca posible de las reglas originales y luego «establecerse en piedra», con solo cambios necesarios para proteger la seguridad de la red como la migración a una nueva función hash en caso de que SHA256 se rompa, se permita, y esta regla se aplicará a través del Consenso de Nakamoto .

Reglas mutables

Las reglas mutables son reglas de consenso que implementan los clientes de minería pero que no están codificadas en el cliente del nodo BitcoinSV. Los mineros pueden cambiarlos en cualquier momento siempre que haya suficiente acuerdo entre los mineros para hacerlo bajo el Consenso de Nakamoto . Los mineros que no mantienen esta configuración en línea con el resto de la red corren el riesgo de invalidar sus bloques. Ejemplos de estos incluyen:

  • La regla de uso máximo de memoria de script que gobierna la cantidad de memoria que una transacción puede consumir durante la ejecución de su script
  • La regla de tamaño máximo de bloque
  • Reglas de script de transacción, como la regla que impide el uso de códigos de operación distintos de pushdata en ScriptSig

Es importante tener en cuenta que los mineros pueden violar estas reglas en casos especiales a través de un proceso de negociación que termina con una transacción o bloqueo que viola estas reglas siendo aceptadas y desarrolladas. Esto solo se puede lograr a través del consenso de Nakamoto. Aún no se han encontrado ejemplos de este hecho.

Al modificar estas reglas, los mineros tienden a actuar como un colectivo, cambiando una regla particular de una vez (por ejemplo, límites máximos de memoria de transacciones y tamaño máximo de bloque). Desde la actualización de Genesis , estos cambios ya no requieren tenedores duros o actualizaciones de red programadas, y la configuración que rige estos cambios está disponible para los mineros a través de las herramientas de configuración del cliente de nodo. Todo lo que se requiere es un acuerdo flexible entre los mineros para cambiar la configuración en toda la red en una fecha y hora en particular.

Esto significa que los mineros deben ser conscientes de las acciones que está tomando el resto de la red para que no se encuentren rechazando transacciones o bloqueos que la mayoría de la red está aceptando y queden atrapados en una punta de cadena no productiva mientras que el resto de la red red de avanzar.

Reglas locales

Estas reglas son «locales» por definición. Se aplican a la instancia de software que se está ejecutando, no se aplican a la validación de bloques o las transacciones dentro de un bloque. Un bloque aceptado por otro minero puede contener transacciones que no se ajustan a las reglas locales. Las reglas locales incluyen:

  • La regla de «tarifa mínima», que especifica que el nodo solo aceptará y / o retransmitirá transacciones no confirmadas que paguen por encima de una tarifa determinada
  • Reglas de polvo que especifican el valor de salida más pequeño que puede contener una transacción que el nodo aceptará y / o retransmitirá
  • Reglas relacionadas con las conexiones entrantes y salientes en la red, como respuestas RPC, direcciones IP específicas para conectarse y más.

Políticas estándar

Las políticas estándar son reglas locales que son utilizadas por una proporción significativa de nodos de red. Se definen como un «Estándar» para facilitar la aplicación común en implementaciones de software independientes, pero es importante tener en cuenta que no es necesario que el software implemente o cumpla con estas políticas.

Los usuarios de Bitcoin que realizan transacciones dentro de las pautas de la política estándar enfrentarán los menores problemas con sus transacciones en la red. Algunos mineros pueden promulgar reglas locales fuera de las políticas estándar, sin embargo, esto puede causar problemas para el minero, que puede estar tratando de extraer bloques que llevan grandes cantidades de transacciones que otros mineros han rechazado. Esto puede conducir a bloques huérfanos debido a la lenta propagación.

Reglas de comunicación

Las reglas de comunicación rigen cómo se propagan los datos de transacciones y bloques a través de la red de Bitcoin. Comúnmente conocido como el Protocolo Bitcoin Peer-to-Peer (P2P) , esta versión actual es un método bien definido y utilizado por la mayoría de los nodos de Bitcoin en la red para comunicarse. El protocolo P2P se puede cambiar y hay planes entre los mineros para modificar la implementación en el futuro. Es concebible que en cierto punto, varios protocolos de comunicaciones entre nodos diferentes puedan estar en uso para propagar información de bloque y transacción entre mineros, y la optimización de este aspecto de la red está fuertemente incentivada por la economía de la minería de Bitcoin. Se ha realizado una gran cantidad de la innovación que escala Bitcoin SV, y se hará en el futuro mejorando el protocolo P2P.

Ver también

Referencias

[1] – https://github.com/bitcoin-sv-specs/protocol/blob/master/updates/genesis-spec.md

https://wiki.bitcoinsv.io/index.php/Protocol

« Back to Glossary Index