Ir al contenido

Protocolo de minería Stratum

De BitcoinWiki
Protocolo de minería Stratum
Protocolo de minería Stratum.

El protocolo de minería Stratum es una familia de protocolos para intercambiar trabajos y resultados de prueba de trabajo entre mineros, proxies e infraestructura de pools. El protocolo original se denomina Stratum V1 (SV1); Stratum V2 (SV2) es un sucesor especificado por separado, con formato de mensajes y modelo de seguridad distintos.[1]

Stratum V1

Stratum V1 se introdujo en 2012 y fue ampliamente implementado por equipos y pools de Bitcoin. Sustituyó las consultas repetidas de getwork por una conexión TCP persistente desde la que el pool envía nuevos trabajos.[1][2] V1 suele usar mensajes de estilo JSON-RPC separados por saltos de línea. La interfaz original no quedó totalmente normalizada y surgieron dialectos y extensiones distintos.[3]

Flujo principal de mensajes

Una sesión típica emplea los siguientes mensajes; los parámetros y comportamientos opcionales varían entre implementaciones.[4]

Dirección Método Finalidad
Minero → servidor mining.subscribe Inicia o reanuda una sesión. La respuesta suele entregar identificadores, extranonce1 y el tamaño de extranonce2.
Minero → servidor mining.authorize Asocia a la conexión el trabajador y, cuando se usa, una contraseña.
Servidor → minero mining.set_difficulty Establece la dificultad objetivo de las participaciones; un trabajo posterior aplica el cambio.
Servidor → minero mining.notify Envía identificador, bloque anterior, partes de coinbase, ramas de Merkle, versión, objetivo, tiempo y la indicación de descartar trabajos antiguos.
Minero → servidor mining.submit Envía trabajador, trabajo, extranonce2, tiempo y nonce para su aceptación o rechazo.

Entre los mensajes opcionales están client.reconnect, client.show_message y mining.set_extranonce. BIP 310 define mining.configure para negociar extensiones de version rolling, dificultad mínima y suscripción a extranonce.[5] Propuestas anteriores como mining.capabilities no forman parte de ese mecanismo y no deben darse por compatibles.

Limitaciones

El protocolo V1 básico transmite el tráfico sin cifrar. Un estudio de 2017 mostró que observadores pasivos podían inferir tasa de hash e ingresos, y que un adversario capaz de interceptar la conexión podía manipular mensajes.[4] Un túnel TLS propio del pool puede cambiar la exposición, pero no pertenece al protocolo básico.

En V1 el pool suele construir los trabajos y elegir transacciones. Pagos, monederos, bases de datos y rotación de registros son funciones del software del pool.

Stratum V2

Stratum V2 usa mensajes binarios definidos con precisión. Especifica canales, version rolling nativo, agregación de conexiones y funciones para dispositivos, proxies, pools, declaradores de trabajos y proveedores de plantillas.[3][6]

La suite contiene tres subprotocolos:[6]

  • el Mining Protocol, obligatorio para distribuir trabajo y enviar participaciones;
  • el Job Declaration Protocol, opcional, para proponer desde el minero una selección de transacciones; y
  • el Template Distribution Protocol, que lleva datos de plantilla desde un nodo Bitcoin.

La declaración de trabajos es opcional. Un pool puede usar V2 con trabajos elegidos por él; con declaración, el lado del minero puede crear una plantilla y pedir al pool que la acepte.[6] Esto cambia la selección de transacciones, pero no define pagos ni elimina la confianza en la contabilidad del pool.

V2 protege conexiones remotas con cifrado autenticado. Usa AEAD y un protocolo de enlace basado en Noise; es obligatorio para conexiones remotas ascendentes y opcional en enlaces locales entre dispositivo y proxy.[7]

Compatibilidad e implementaciones

Un proxy de traducción puede aceptar dispositivos V1 y usar V2 hacia el pool. Actúa como puente, pero no convierte al dispositivo en una implementación V2 nativa. Debe verificarse qué extensiones y subprotocolos admite cada minero, proxy y pool.

Véase también

Enlaces externos

  1. 1,0 1,1 Proyecto Stratum V2, «Open Bitcoin mining standard», consultado el 14 de septiembre de 2026.
  2. Bitcoin Wiki, «Stratum mining protocol», consultado el 14 de septiembre de 2026.
  3. 3,0 3,1 Especificación Stratum V2, «Design Goals», consultado el 14 de septiembre de 2026.
  4. 4,0 4,1 Maria Apostolaki et al., «Hardening Stratum, the Bitcoin Pool Mining Protocol», Proceedings on Privacy Enhancing Technologies, 2017.
  5. BIP 310, «Stratum protocol extensions», consultado el 14 de septiembre de 2026.
  6. 6,0 6,1 6,2 Especificación Stratum V2, «Protocol Overview», consultado el 14 de septiembre de 2026.
  7. Especificación Stratum V2, «Protocol Security», consultado el 14 de septiembre de 2026.