Stratum es la capa de comunicación que conecta un ASIC con un pool de minería. Transporta notificaciones de tareas, ajustes de dificultad y envíos de shares, pero no altera la forma en que un ASIC procesa (hashea) las entradas SHA-256. Cuando los operadores comparan Stratum V1 y Stratum V2, las preguntas relevantes giran en torno a la conectividad, la seguridad y quién controla la construcción de la plantilla de bloque (block-template), no en torno al rendimiento bruto de hashing. Este artículo separa lo que define la especificación de Stratum V2 de lo que realmente ha implementado cada pool en particular, incluido ViaBTC.\n\n## Qué transporta Stratum\n\nEn una sesión convencional de minería en pool, el servidor del pool envía al ASIC una tarea (job): una plantilla de encabezado de bloque, una dificultad objetivo e instrucciones para construir la transacción coinbase. El ASIC busca un nonce que satisfaga el objetivo de share asignado y devuelve shares válidos al pool, que los acredita hacia el pago del minero según el método que utilice el pool (PPS+, PPLNS u otro modelo documentado).\n\nStratum no determina la economía de los pagos, las comisiones del pool ni los tiempos de liquidación; esas son políticas del pool que se superponen al protocolo. Lo que sí gobierna Stratum es el formato de la conexión, cómo se entregan las tareas, cómo ocurre la autenticación y, en implementaciones más avanzadas, si la parte que envía los shares también controla qué transacciones se incluyen en la plantilla del bloque.\n\n## Comparación entre V1 y V2\n\nStratum V1 se implementa típicamente como un protocolo basado en JSON, delimitado por líneas, sobre un socket TCP sin cifrar. En su origen no definía un cifrado de transporte integrado; el cifrado de transporte y la autenticación del servidor dependen de protecciones adicionales proporcionadas por la implementación o la configuración de red.\n\nStratum V2 es un protocolo binario con un formato de mensajes (framing) fijo, publicado como una especificación abierta. Para los operadores de ASIC, las principales diferencias son:\n\n| Aspecto | Stratum V1 | Stratum V2 |\n| --- | --- | --- |\n| Formato de mensaje | Normalmente JSON delimitado por líneas | Mensajes binarios con framing fijo |\n| Protección de transporte | Sin cifrado de transporte integrado en el diseño original; las protecciones adicionales dependen de la implementación | Cifrado autenticado para conexiones remotas ascendentes (upstream); los enlaces locales pueden tratarse de forma diferente |\n| Selección de transacciones | El pool normalmente construye la plantilla del bloque | El soporte del Basic Mining Protocol puede seguir utilizando tareas emitidas por el pool; las plantillas seleccionadas por el minero requieren infraestructura opcional de Job Declaration y soporte del pool |\n| Compatibilidad de dispositivos | Requiere firmware compatible con V1 y un endpoint | Requiere firmware nativo compatible o un proxy de traducción V1 a V2 que se conecte a un endpoint V2 compatible |\n\nDos distinciones merecen un análisis más detallado:\n\n- Seguridad de transporte. La especificación de Stratum V2 utiliza cifrado autenticado para las conexiones remotas ascendentes (upstream), lo que significa que el tráfico entre un dispositivo de minería (o proxy) y un endpoint de pool remoto está cifrado y el servidor queda autenticado como parte del establecimiento de la conexión. Los enlaces locales entre el dispositivo y un proxy local pueden tratarse de forma distinta según la especificación (Stratum V2 Protocol Security).\n- Separación de las funciones de minería y de plantilla. La especificación V2 define roles y subprotocolos diferenciados: el Mining Protocol (entrega de tareas y envío de shares, funcionalmente similar a V1) y el Job Declaration Protocol opcional (coordinación de plantillas seleccionadas por el minero). Estos son arquitectónicamente independientes, y un pool puede admitir el Mining Protocol sin admitir Job Declaration (Stratum V2 protocol overview).\n\nCambiar de protocolo por sí solo no garantiza un mayor hashrate a nivel de chip ni una mejor eficiencia energética, medida en J/TH. Esas características de hardware dependen del ASIC y de sus ajustes de funcionamiento. La entrega de tareas y el comportamiento de la conexión deben evaluarse por separado: las diferencias de protocolo e implementación pueden afectar la eficacia con la que el trabajo de minería llega a los dispositivos y los shares llegan al pool, sin cambiar la capacidad de hashing subyacente del chip (Stratum V2 Mining Protocol).\n\n## Seguridad y selección de tareas\n\nUna investigación publicada sobre Stratum V1 demostró que, en implementaciones sin protecciones de transporte adicionales, el tráfico Stratum sin cifrar podía exponer información útil para inferir el hashrate de un minero y podía ser susceptible de interferencia por parte de un adversario posicionado en la red (Recabarren y Carbunar, Hardening Stratum, the Bitcoin Pool Mining Protocol, 2017) (arxiv.org/abs/1703.06545). Esto describe una limitación estructural del diseño original de V1 en ausencia de protecciones adicionales; no significa que toda conexión V1 en producción hoy en día esté desprotegida, ya que las implementaciones y los endpoints individuales pueden añadir su propia seguridad de transporte.\n\nEl cifrado autenticado de Stratum V2 protege el contenido y la integridad de los mensajes, mientras que la autenticación del servidor ayuda a los clientes a verificar el servidor ascendente (upstream). Estas protecciones reducen la exposición a la interceptación del contenido de los mensajes y a su manipulación. No deben interpretarse como una garantía frente a todo tipo de análisis de tráfico: la investigación citada también examina la inferencia de ganancias a partir de las marcas de tiempo de los paquetes, por lo que cifrar únicamente el contenido de los mensajes no implica que se impida toda inferencia basada en metadatos.\n\nUn tema aparte, y que con frecuencia se confunde, es la selección de tareas o transacciones. Bajo el modelo estándar de minería en pool, el servidor del pool construye la plantilla del bloque y el ASIC simplemente busca un nonce válido para ella. El Job Declaration Protocol de Stratum V2 define una vía opcional en la que una operación de minería —no el ASIC en sí— obtiene una plantilla candidata de un Template Provider y utiliza un Job Declarator Client para coordinar trabajo personalizado con un pool que lo admita (Stratum V2 Job Declaration Protocol).</parameter> </invoke>
La especificación actual describe dos modos. En el modo Full-Template (plantilla completa), el cliente declara los identificadores de transacción (TXID) de la plantilla, y el pool puede solicitar los datos de transacción faltantes. En el modo Coinbase-only (solo coinbase), el conjunto de transacciones no se revela al pool mediante este proceso, y el mensaje DeclareMiningJob no se utiliza. Ambos modos describen minería optimista: el trabajo puede enviarse a los dispositivos antes del acuse de recibo del pool, y los shares se almacenan en caché a la espera de dicho acuse de recibo. Los operadores deben verificar cómo gestiona su implementación elegida los acuses de recibo y los shares almacenados en caché.\n\nPara los operadores, habilitar Stratum V2 en un ASIC, por sí solo, no otorga capacidad de selección de transacciones. Job Declaration (declaración de trabajo) requiere infraestructura adicional por parte de la operación de minería, y requiere que el pool admita ese subprotocolo específico, no solo el protocolo base V2 Mining Protocol. Una operación que esté considerando Job Declaration debe esperar ejecutar o coordinar un nodo de Bitcoin y software compatible de construcción de plantillas, además de la configuración de ASIC o proxy que ya gestiona.\n\n## Compatibilidad de dispositivos y proxies\n\nUn ASIC configurado contra un endpoint V1 no obtiene automáticamente capacidad V2. El soporte nativo de V2 depende de que el firmware del dispositivo implemente el protocolo binario y su protocolo de enlace de cifrado (handshake). Cuando el firmware no admite V2 directamente, un proxy de traducción V1-a-V2 compatible puede puentear las conexiones de ASIC V1 hacia un endpoint de pool V2 compatible, evitando un cambio de firmware en cada unidad. Un proxy V2 genérico no es suficiente a menos que implemente esa traducción. En esta configuración, el enlace ASIC-a-proxy permanece en V1, mientras que el enlace proxy-a-pool utiliza V2; el cifrado V2 en el enlace ascendente no protege automáticamente el enlace V1 local (ejemplo de proxy de traducción de SRI).\n\nPara los operadores que evalúan una migración, se aplican algunos puntos prácticos de compatibilidad:\n\n- Confirmar si el firmware actual expone una opción de conexión V2, o si se requiere un proxy de traducción V1-a-V2 compatible.\n- Cuando el respaldo (fallback) a V1 esté disponible durante una transición, probar un subconjunto de mineros antes de convertir toda la flota reduce el riesgo de un problema de conectividad a nivel de toda la flota.\n- El monitoreo debe distinguir las lecturas locales del dispositivo de los shares reportados por el pool y el estado de los workers, ya que un cambio de protocolo puede afectar la estabilidad de la conexión independientemente del rendimiento de hash subyacente.\n- La infraestructura de Job Declaration (nodo, Template Provider, Job Declarator Client) es una decisión de implementación separada de la conectividad V2 básica y conlleva sus propios requisitos de mantenimiento.\n\nActualmente, la configuración documentada de minería de BTC de ViaBTC utiliza endpoints estándar stratum+tcp (por ejemplo, stratum+tcp://btc.viabtc.io:3333 y stratum+tcp://btc.viabtc.io:443) con el formato convencional de worker userID.workerID y se recomiendan varios puertos para garantizar la continuidad de la conexión (guía de minería BTC de ViaBTC). Esta documentación describe el método de conexión actualmente publicado; no debe interpretarse como una declaración sobre la disponibilidad de Stratum V2 o Job Declaration, confirmada o no, y los operadores deben consultar directamente la documentación oficial actual de ViaBTC para conocer las últimas opciones de conexión admitidas.\n\n## Preguntas que hacer a tu pool\n\nDado que "soporta Stratum V2" puede describir capacidades significativamente diferentes, los operadores que evalúan un pool deben hacer preguntas específicas en lugar de aceptar la etiqueta tal cual:\n\n1. ¿El pool soporta el V2 Mining Protocol para los trabajos estándar emitidos por el pool, el Job Declaration Protocol, o ambos?\n2. Si se soporta Job Declaration, ¿opera en un modo en el que el pool sigue recibiendo datos de transacción para validación, o en uno en el que no ve el contenido de las transacciones directamente?\n3. ¿Existe documentación de configuración publicada que cubra los requisitos de firmware, los proxies soportados, los puertos y la autenticación para una conexión V2?\n4. ¿Sigue estando disponible V1 como respaldo durante un periodo de migración, y cómo gestiona el pool una flota mixta que ejecuta ambas versiones del protocolo simultáneamente?\n5. Independientemente de la versión del protocolo, ¿qué método de pago, comisión, tiempo de liquidación y condiciones de retiro se aplican, y esas condiciones están documentadas de la misma manera sin importar si un worker se conecta mediante V1 o V2?\n\nTratar la capacidad del protocolo y las condiciones de pago como criterios de evaluación separados evita el error común de asumir que las mejoras en la capa de transporte de un pool también mejoran su economía: son aspectos independientes de la selección de pool.\n\n## Preguntas frecuentes\n\n### ¿Cambiar a Stratum V2 aumenta el hashrate de mi ASIC?\n\nNo por sí solo. Stratum V2 cambia las comunicaciones de minería, no el diseño del chip del ASIC. Cambiar de protocolo por sí solo no garantiza un mayor hashrate a nivel de chip ni un mejor J/TH. Evalúa la entrega de trabajos, la estabilidad de la conexión y los shares aceptados por el pool por separado del hashrate local del dispositivo.\n\n### ¿Se requiere Stratum V2 para usar un pool de minería hoy en día?\n\nNo. El protocolo requerido depende del endpoint que utilices. Un minero compatible con V1 puede usar un endpoint V1 compatible; confirma el protocolo soportado y los requisitos de configuración para tu firmware específico y tu conexión de pool.\n\n### ¿Habilitar Stratum V2 me permite elegir mis propias transacciones?\n\nNo por sí solo. El soporte básico del V2 Mining Protocol sigue dependiendo de que el pool emita los trabajos. La selección de transacciones requiere el Job Declaration Protocol, separado y opcional, el cual necesita infraestructura adicional por parte de la operación de minería y soporte explícito del pool para esa función.\n\n### ¿Puedo ejecutar ASICs con Stratum V2 y ASICs con V1 en la misma cuenta de pool?\n\nEsto depende de la implementación específica del pool. Los operadores deben confirmar con el pool si se admiten flotas de protocolo mixto antes de migrar un subconjunto de dispositivos.\n\n### ¿Es inseguro usar Stratum V1?
La investigación de seguridad independiente identificó debilidades estructurales en las implementaciones V1 no cifradas, como la exposición de datos relacionados con el hashrate a un observador posicionado en la red. Esta es una limitación conocida del diseño base, y no evidencia de que todas las implementaciones de V1 en producción carezcan de cualquier protección, ya que los pools individuales o las configuraciones de red pueden añadir sus propias salvaguardas de transporte.
Referencias
- Visión general del protocolo Stratum V2
- Protocolo de minería Stratum V2
- Seguridad del protocolo Stratum V2
- Protocolo de declaración de trabajos Stratum V2
- Recabarren, R., y Carbunar, B. (2017). Hardening Stratum, the Bitcoin Pool Mining Protocol. arXiv:1703.06545.
- Soporte de ViaBTC. Minería de BTC.
- Stratum V2. Nueva actualización de SRI con Job Negotiator: permite a los mineros seleccionar transacciones. 14 de abril de 2023.


