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