Explicando cómo funciona la Negociación de Trabajos en Stratum V2 y cómo mejora la descentralización de la minería de Bitcoin.
Con la reciente noticia de que Square Crypto está buscando apoyar el desarrollo de Stratum V2 con una subvención, pensamos que era el momento de explicar más sobre cómo funciona la Negociación del Trabajo y los beneficios que proporciona.
Comenzaremos con una explicación técnica del proceso de minería agrupada con Stratum V1 y V2, ya que esto no se ha explicado explícitamente en la documentación de stratumprotocol.org y es realmente importante si queremos entender las mejoras reales de V2. A continuación, abordaremos dos de las preocupaciones más comunes que hemos escuchado de los mineros sobre la viabilidad de permitir a los mineros elegir su propio trabajo en Stratum V2. A partir de ahí, recorreremos uno de los mayores ataques teóricos que preocupan a muchos Bitcoiners, el "ataque de estado". Y finalmente, describiremos cómo todo esto encaja en la industria minera moderna desde una perspectiva de negocio a corto y largo plazo.
En primer lugar, vamos a repasar el orden de las operaciones para que todo el mundo esté en la misma página.
Si aún no está familiarizado con el funcionamiento de los pools de minería, le recomendamos que lea las secciones pertinentes de Dominio de Bitcoin.
En la actualidad, este es un resumen de cómo se trabaja normalmente en la minería agrupada:
Los pools y los mineros en solitario son las únicas entidades que construyen plantillas de bloques. Los mineros normales no pueden porque no tienen los conjuntos de transacciones para construir los bloques.
Este es un resumen simplificado de cómo funcionará el pool de minería en el futuro para los mineros que decidan construir sus propios bloques:
Dado que la propagación de los bloques no depende necesariamente del nodo del pool, se produce con la misma rapidez que si el minero estuviera simplemente minando en solitario.
Una pregunta importante que surge es cómo se gestionan los pagos cuando los mineros pueden estar trabajando en diferentes bloques mientras forman parte del mismo pool de minería. La respuesta es que cada minero recibe un pago basado en el valor de las acciones que envía, no en el valor del bloque que se mina.
Por ejemplo, supongamos que los mineros de un mismo pool trabajan con dos plantillas de bloques:
Los mineros que trabajen en el bloque de 8,0 BTC cobrarán proporcionalmente más por sus acciones válidas que los que trabajen en el bloque de 7,5 BTC. Esto significa que los mineros con nodos completos bien conectados pueden trabajar en bloques más valiosos que los distribuidos por los propios pools, aumentando así sus pagos en relación con los mineros que no proponen sus propias plantillas de bloques. Y lo que es más importante, significa que los mineros que proponen bloques con conjuntos de transacciones de menor valor recibirán pagos proporcionalmente más bajos, pero no afectarán a los pagos de los mineros del resto del pool.
Otro punto que vale la pena discutir es lo que ocurre en los momentos inmediatamente posteriores a la búsqueda y propagación de un nuevo bloque. El proceso de negociación del trabajo puede durar varios segundos, y cada segundo cuenta cuando se buscan nonces. Esta zona gris puede abordarse con un inicio asíncrono, lo que significa que los mineros pueden empezar a trabajar en sus propios bloques inmediatamente mientras el pool todavía los está validando. Una vez que el pool valida una plantilla de bloque propuesta, el trabajo ya realizado por el minero o mineros se paga en consecuencia. En el caso de que un minero proponga una plantilla de bloque no válida, las acciones de esos segundos de trabajo son rechazadas y no obtienen pagos.
Un modelo de bloque propuesto puede ser rechazado por dos razones:
Además, se avisa al minero de que debe volver a conectarse a otro pool o minar en solitario si se recibe un error pero el bloque que propuso era válido. Por lo tanto, la negociación de trabajos no da a los mineros la capacidad de trabajar en cualquier plantilla de bloque aleatoria que quieran, pero sirve como un sistema de alerta temprana que avisa a los mineros de posibles problemas con los operadores del pool mucho antes que si el minero no estuviera ejecutando un nodo completo y proponiendo su propio trabajo.
Con esta visión general de cómo funciona la negociación laboral, ahora podemos pensar en cómo podría entrar en juego en el mundo real.
Supongamos que 4 pools con una mayoría combinada del hashrate total de la red son requisados simultáneamente por una parte maliciosa (por ejemplo, el gobierno de su nación). A pesar de que los operadores de los pools no quieren manchar su reputación ni dañar la red en la que tienen una gran participación, la parte maliciosa no les da otra opción que participar en un ataque del 51% y en una reorganización profunda.
En el escenario de Stratum V1 solamente, los mineros que suministran el hashrate real a esos pools podrían no darse cuenta de que están participando involuntariamente en un ataque hasta que sea demasiado tarde.
En un hipotético escenario futuro en el que algunos de esos mineros estén eligiendo su propio trabajo, sabrían que algo está mal tan pronto como sus plantillas de bloques válidas fueran rechazadas. Si los mineros que controlan una parte suficientemente grande del hashrate de esos 4 pools propusieran su propio trabajo, podrían evitar de forma efectiva un ataque sostenido del 51% cambiando de pool en cuanto sus pools originales empezaran a censurarlos. Esto no significa que todos los mineros de esos pools tengan que proponer sus propios bloques, sólo un porcentaje lo suficientemente grande como para que el hashrate acumulado de los pools atacantes esté por debajo del 50% si esos mineros con nodos completos cambian.
Se utiliza una cantidad de 4 pools para este ejemplo porque es el mínimo que se necesitaría con la distribución actual del hashrate, pero podría funcionar igualmente con un pool que tuviera la mayoría del hashrate en el futuro. Es importante que algunos pools permanezcan honestos y sin compromisos en este escenario, ya que la minería en solitario no es económicamente viable para la mayoría de los mineros.
Dado que los pools son custodios temporales de los pagos de la minería, se puede argumentar que los pools podrían simplemente no enviar BTC a un minero que, por ejemplo, incluya una transacción en su bloque que el pool no quiera que se incluya. En otras palabras, el pool puede censurar a sus mineros poniendo condiciones a los pagos, lo que anula el propósito de la selección descentralizada del trabajo.
Para este argumento, hay que tener en cuenta dos puntos clave:
Como ocurre con muchos aspectos del ecosistema Bitcoin, existe un compromiso entre la experiencia del usuario y la seguridad. Los grandes grupos de mineros con miles de usuarios no son completamente desconfiados, pero el hecho de ofrecer pagos frecuentes y tener una participación adecuada en el juego minimiza el riesgo, al igual que la facilidad de cambiar de grupo en cualquier momento si la confianza se ve dañada.
Aunque sabemos cómo se puede implementar en la práctica la Negociación de Trabajos de Stratum V2, sigue siendo válida la pregunta de si los mineros actuales se preocupan por construir sus propias plantillas de bloques.
La mejora de la descentralización de Bitcoin en Stratum V2 depende de que la Negociación de Trabajos alcance una adopción significativa, y eso puede no suceder. Podemos imaginar algunos casos de uso emergentes para la Negociación de Trabajos que incentiven su adopción, incluyendo el que hemos descrito anteriormente en el que los mineros que tienen nodos bien conectados son capaces de aumentar sus ingresos trabajando en bloques de mayor valor.
En última instancia, creemos que esto es una parte natural de la evolución de la industria minera. Los mineros a gran escala invierten millones de dólares en la construcción y el mantenimiento de operaciones eficientes, y se necesita mucho tiempo para equilibrar esas inversiones. Al ejecutar sus propios nodos completos y trabajar en sus propias plantillas de bloques, los mineros pueden añadir redundancia (seguridad) a la red y fortalecer los fundamentos de Bitcoin con un mínimo coste añadido. Esto es en el propio interés de cada minero que quiere proteger y maximizar su retorno de la inversión a largo plazo.
Desvincular la construcción y propagación de bloques de los pagos de recompensas del pool no es una solución perfecta, pero proporciona un sistema de detección temprana de comportamientos maliciosos por parte de los operadores del pool. También añade a la red más nodos llenos de minería e incluso los incentiva a estar bien conectados para que puedan minar bloques más valiosos con tasas de transacción acumuladas más altas.
La adopción no se producirá de la noche a la mañana, y de hecho puede llevar muchos años. No obstante, nosotros, como operadores de pool, estamos comprometidos a construir una implementación completa de Stratum V2, ofreciendo la Negociación de Trabajos a nuestros mineros, y educando a la comunidad sobre este importante y a menudo incomprendido sector del ecosistema Bitcoin. Esperamos que otros operadores de pool se unan a nosotros en esta valiosa iniciativa.
Para más información sobre los exploits del pool de minería que aborda Stratum V2, recomendamos encarecidamente este artículo de StopandDecrypt escrito sobre el predecesor de Job Negotiation, BetterHash.
Conferencia | Web | X | Dónde | En | Confirmado |
---|---|---|---|---|---|
Celda | Celda | Celda | Celda | ||
Celda | Celda | Celda | Celda | ||
Celda | Celda | Celda | Celda | ||
Celda | Celda | Celda | Celda | ||
Celda | Celda | Celda | Celda | ||
Celda | Celda | Celda | Celda | ||
Celda | Celda | Celda | Celda |
Empresa de software de minería Bitcoin: Braiins Pool, Braiins OS & Stratum V2.
Por mineros, para mineros.
Aumente el hashrate de sus ASICs de Bitcoin, mejore la eficiencia hasta un 25%, y mine en cualquier pool o obtenga 0% de tarifas de pool en Braiins Pool.
Reduzca la transmisión de datos entre su granja y el pool en un 95%. Configure el uso paralelo de múltiples pools. Configure un pool de respaldo para toda la granja.
Se centra en hacer más eficientes las transferencias de datos, reducir los requisitos de infraestructura física para las operaciones mineras y aumentar la seguridad
Líderes de la industria en transparencia e innovación, con más de 1.25 millones de BTC minados desde 2010
Publicado en
29.6.2020
Explicando cómo funciona la Negociación de Trabajos en Stratum V2 y cómo mejora la descentralización de la minería de Bitcoin.
Índice de contenidos
Con la reciente noticia de que Square Crypto está buscando apoyar el desarrollo de Stratum V2 con una subvención, pensamos que era el momento de explicar más sobre cómo funciona la Negociación del Trabajo y los beneficios que proporciona.
Comenzaremos con una explicación técnica del proceso de minería agrupada con Stratum V1 y V2, ya que esto no se ha explicado explícitamente en la documentación de stratumprotocol.org y es realmente importante si queremos entender las mejoras reales de V2. A continuación, abordaremos dos de las preocupaciones más comunes que hemos escuchado de los mineros sobre la viabilidad de permitir a los mineros elegir su propio trabajo en Stratum V2. A partir de ahí, recorreremos uno de los mayores ataques teóricos que preocupan a muchos Bitcoiners, el "ataque de estado". Y finalmente, describiremos cómo todo esto encaja en la industria minera moderna desde una perspectiva de negocio a corto y largo plazo.
En primer lugar, vamos a repasar el orden de las operaciones para que todo el mundo esté en la misma página.
Si aún no está familiarizado con el funcionamiento de los pools de minería, le recomendamos que lea las secciones pertinentes de Dominio de Bitcoin.
En la actualidad, este es un resumen de cómo se trabaja normalmente en la minería agrupada:
Los pools y los mineros en solitario son las únicas entidades que construyen plantillas de bloques. Los mineros normales no pueden porque no tienen los conjuntos de transacciones para construir los bloques.
Este es un resumen simplificado de cómo funcionará el pool de minería en el futuro para los mineros que decidan construir sus propios bloques:
Dado que la propagación de los bloques no depende necesariamente del nodo del pool, se produce con la misma rapidez que si el minero estuviera simplemente minando en solitario.
Una pregunta importante que surge es cómo se gestionan los pagos cuando los mineros pueden estar trabajando en diferentes bloques mientras forman parte del mismo pool de minería. La respuesta es que cada minero recibe un pago basado en el valor de las acciones que envía, no en el valor del bloque que se mina.
Por ejemplo, supongamos que los mineros de un mismo pool trabajan con dos plantillas de bloques:
Los mineros que trabajen en el bloque de 8,0 BTC cobrarán proporcionalmente más por sus acciones válidas que los que trabajen en el bloque de 7,5 BTC. Esto significa que los mineros con nodos completos bien conectados pueden trabajar en bloques más valiosos que los distribuidos por los propios pools, aumentando así sus pagos en relación con los mineros que no proponen sus propias plantillas de bloques. Y lo que es más importante, significa que los mineros que proponen bloques con conjuntos de transacciones de menor valor recibirán pagos proporcionalmente más bajos, pero no afectarán a los pagos de los mineros del resto del pool.
Otro punto que vale la pena discutir es lo que ocurre en los momentos inmediatamente posteriores a la búsqueda y propagación de un nuevo bloque. El proceso de negociación del trabajo puede durar varios segundos, y cada segundo cuenta cuando se buscan nonces. Esta zona gris puede abordarse con un inicio asíncrono, lo que significa que los mineros pueden empezar a trabajar en sus propios bloques inmediatamente mientras el pool todavía los está validando. Una vez que el pool valida una plantilla de bloque propuesta, el trabajo ya realizado por el minero o mineros se paga en consecuencia. En el caso de que un minero proponga una plantilla de bloque no válida, las acciones de esos segundos de trabajo son rechazadas y no obtienen pagos.
Un modelo de bloque propuesto puede ser rechazado por dos razones:
Además, se avisa al minero de que debe volver a conectarse a otro pool o minar en solitario si se recibe un error pero el bloque que propuso era válido. Por lo tanto, la negociación de trabajos no da a los mineros la capacidad de trabajar en cualquier plantilla de bloque aleatoria que quieran, pero sirve como un sistema de alerta temprana que avisa a los mineros de posibles problemas con los operadores del pool mucho antes que si el minero no estuviera ejecutando un nodo completo y proponiendo su propio trabajo.
Con esta visión general de cómo funciona la negociación laboral, ahora podemos pensar en cómo podría entrar en juego en el mundo real.
Supongamos que 4 pools con una mayoría combinada del hashrate total de la red son requisados simultáneamente por una parte maliciosa (por ejemplo, el gobierno de su nación). A pesar de que los operadores de los pools no quieren manchar su reputación ni dañar la red en la que tienen una gran participación, la parte maliciosa no les da otra opción que participar en un ataque del 51% y en una reorganización profunda.
En el escenario de Stratum V1 solamente, los mineros que suministran el hashrate real a esos pools podrían no darse cuenta de que están participando involuntariamente en un ataque hasta que sea demasiado tarde.
En un hipotético escenario futuro en el que algunos de esos mineros estén eligiendo su propio trabajo, sabrían que algo está mal tan pronto como sus plantillas de bloques válidas fueran rechazadas. Si los mineros que controlan una parte suficientemente grande del hashrate de esos 4 pools propusieran su propio trabajo, podrían evitar de forma efectiva un ataque sostenido del 51% cambiando de pool en cuanto sus pools originales empezaran a censurarlos. Esto no significa que todos los mineros de esos pools tengan que proponer sus propios bloques, sólo un porcentaje lo suficientemente grande como para que el hashrate acumulado de los pools atacantes esté por debajo del 50% si esos mineros con nodos completos cambian.
Se utiliza una cantidad de 4 pools para este ejemplo porque es el mínimo que se necesitaría con la distribución actual del hashrate, pero podría funcionar igualmente con un pool que tuviera la mayoría del hashrate en el futuro. Es importante que algunos pools permanezcan honestos y sin compromisos en este escenario, ya que la minería en solitario no es económicamente viable para la mayoría de los mineros.
Dado que los pools son custodios temporales de los pagos de la minería, se puede argumentar que los pools podrían simplemente no enviar BTC a un minero que, por ejemplo, incluya una transacción en su bloque que el pool no quiera que se incluya. En otras palabras, el pool puede censurar a sus mineros poniendo condiciones a los pagos, lo que anula el propósito de la selección descentralizada del trabajo.
Para este argumento, hay que tener en cuenta dos puntos clave:
Como ocurre con muchos aspectos del ecosistema Bitcoin, existe un compromiso entre la experiencia del usuario y la seguridad. Los grandes grupos de mineros con miles de usuarios no son completamente desconfiados, pero el hecho de ofrecer pagos frecuentes y tener una participación adecuada en el juego minimiza el riesgo, al igual que la facilidad de cambiar de grupo en cualquier momento si la confianza se ve dañada.
Aunque sabemos cómo se puede implementar en la práctica la Negociación de Trabajos de Stratum V2, sigue siendo válida la pregunta de si los mineros actuales se preocupan por construir sus propias plantillas de bloques.
La mejora de la descentralización de Bitcoin en Stratum V2 depende de que la Negociación de Trabajos alcance una adopción significativa, y eso puede no suceder. Podemos imaginar algunos casos de uso emergentes para la Negociación de Trabajos que incentiven su adopción, incluyendo el que hemos descrito anteriormente en el que los mineros que tienen nodos bien conectados son capaces de aumentar sus ingresos trabajando en bloques de mayor valor.
En última instancia, creemos que esto es una parte natural de la evolución de la industria minera. Los mineros a gran escala invierten millones de dólares en la construcción y el mantenimiento de operaciones eficientes, y se necesita mucho tiempo para equilibrar esas inversiones. Al ejecutar sus propios nodos completos y trabajar en sus propias plantillas de bloques, los mineros pueden añadir redundancia (seguridad) a la red y fortalecer los fundamentos de Bitcoin con un mínimo coste añadido. Esto es en el propio interés de cada minero que quiere proteger y maximizar su retorno de la inversión a largo plazo.
Desvincular la construcción y propagación de bloques de los pagos de recompensas del pool no es una solución perfecta, pero proporciona un sistema de detección temprana de comportamientos maliciosos por parte de los operadores del pool. También añade a la red más nodos llenos de minería e incluso los incentiva a estar bien conectados para que puedan minar bloques más valiosos con tasas de transacción acumuladas más altas.
La adopción no se producirá de la noche a la mañana, y de hecho puede llevar muchos años. No obstante, nosotros, como operadores de pool, estamos comprometidos a construir una implementación completa de Stratum V2, ofreciendo la Negociación de Trabajos a nuestros mineros, y educando a la comunidad sobre este importante y a menudo incomprendido sector del ecosistema Bitcoin. Esperamos que otros operadores de pool se unan a nosotros en esta valiosa iniciativa.
Para más información sobre los exploits del pool de minería que aborda Stratum V2, recomendamos encarecidamente este artículo de StopandDecrypt escrito sobre el predecesor de Job Negotiation, BetterHash.
Lea la Política de privacidad.