Al hacer clic en "Aceptar", usted acepta que se almacenen cookies en su dispositivo para mejorar la navegación por el sitio, analizar el uso del mismo y ayudar en nuestros esfuerzos de marketing. Consulte nuestra política de privacidad para obtener más información.
Software de minería

Descentralización de Bitcoin con Stratum V2

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.

Publicado el 29 de junio de 2020
COMENZAR A LEER
Publicado el 29 de junio de 2020

Í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.

Por qué se llama "Negociación" laboral

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.

Stratum V1

En la actualidad, este es un resumen de cómo se trabaja normalmente en la minería agrupada:

  1. El minero se conecta al pool
  2. El pool envía las asignaciones de trabajo de los mineros (es decir, plantillas de bloques para trabajar, sin conjuntos completos de transacciones)
  3. El minero trabaja (es decir, introduce valores de nonce buscando hashes por debajo del objetivo de dificultad)
  4. El minero envía la prueba de trabajo (es decir, los nonces que conducen a hashes "suficientemente buenos") de vuelta al pool
  5. El pool valida la prueba y difunde los bloques cuando los encuentra
  6. El minero recibe un pago por su prueba de trabajo presentada (las llamadas "acciones")

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.

Stratum V2

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:

  1. El minero se conecta al pool
  2. El negociador de trabajos (es decir, el software que ejecuta el minero o un tercero entre el minero y el pool) envía una solicitud al nodo del pool anterior para trabajar en una plantilla de bloques
  3. El pool verifica que las transacciones incluidas son válidas*
  4. El pool verifica que los resultados de las transacciones de Coinbase son correctos (es decir, que se pagan a la dirección del pool)
  5. Pool acepta la plantilla de bloques propuesta**
  6. El minero trabaja en su propia plantilla de bloques
  7. Si se encuentra un bloque, el minero puede propagar el bloque por sí mismo y no es posible la censura por parte del pool
  8. El minero recibe el pago por sus acciones presentadas

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.

*Economía de la negociación laboral

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:

  • Valor de la plantilla del bloque 1: 8,0 BTC
  • Valor de la plantilla del bloque 2: 7,5 BTC

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.

**Problemas de latencia

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:

  1. No es válido 
  2. Censura

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.

Ejemplo de negociación laboral en acción

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.

¿Y los pagos?

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:

  • El pool rechaza o acepta plantillas de bloques al principio de las rondas de minería, y el minero puede propagar los bloques encontrados por sí mismo.
  • Los pools envían los pagos con frecuencia (varias veces al día en la mayoría de los casos), por lo que el riesgo financiero para los mineros de no recibir el pago por un trabajo válido es mínimo. Por su parte, los pools que no pagan a sus mineros se arriesgan a sufrir un daño permanente en su reputación y a perder futuros negocios.

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.

Descentralizar por descentralizar

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.

Conclusión

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.

Más información

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.

ConferenciaWebXDóndeEnConfirmado
Celda
CeldaCeldaCelda
Celda
CeldaCeldaCelda
Celda
CeldaCeldaCelda
Celda
CeldaCeldaCelda
Celda
CeldaCeldaCelda
Celda
CeldaCeldaCelda
Celda
CeldaCeldaCelda

Puede ver el registro de cambios también en nuestra documentación.
Ver el registro de cambios completo


No se han encontrado artículos.

Reciba una notificación cuando publiquemos una nueva actualización

Al suscribirse, acepta nuestra política de privacidad
¡Wohoo! Estás suscrito, nos pondremos en contacto pronto.
Algo salió mal. Por favor, inténtelo de nuevo.
Compartir ahora

Acerca de Braiins

Empresa de software de minería Bitcoin: Braiins Pool, Braiins OS & Stratum V2.

Por mineros, para mineros.

Descentralización de Bitcoin con Stratum V2

Software de minería

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.

Por qué se llama "Negociación" laboral

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.

Stratum V1

En la actualidad, este es un resumen de cómo se trabaja normalmente en la minería agrupada:

  1. El minero se conecta al pool
  2. El pool envía las asignaciones de trabajo de los mineros (es decir, plantillas de bloques para trabajar, sin conjuntos completos de transacciones)
  3. El minero trabaja (es decir, introduce valores de nonce buscando hashes por debajo del objetivo de dificultad)
  4. El minero envía la prueba de trabajo (es decir, los nonces que conducen a hashes "suficientemente buenos") de vuelta al pool
  5. El pool valida la prueba y difunde los bloques cuando los encuentra
  6. El minero recibe un pago por su prueba de trabajo presentada (las llamadas "acciones")

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.

Stratum V2

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:

  1. El minero se conecta al pool
  2. El negociador de trabajos (es decir, el software que ejecuta el minero o un tercero entre el minero y el pool) envía una solicitud al nodo del pool anterior para trabajar en una plantilla de bloques
  3. El pool verifica que las transacciones incluidas son válidas*
  4. El pool verifica que los resultados de las transacciones de Coinbase son correctos (es decir, que se pagan a la dirección del pool)
  5. Pool acepta la plantilla de bloques propuesta**
  6. El minero trabaja en su propia plantilla de bloques
  7. Si se encuentra un bloque, el minero puede propagar el bloque por sí mismo y no es posible la censura por parte del pool
  8. El minero recibe el pago por sus acciones presentadas

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.

*Economía de la negociación laboral

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:

  • Valor de la plantilla del bloque 1: 8,0 BTC
  • Valor de la plantilla del bloque 2: 7,5 BTC

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.

**Problemas de latencia

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:

  1. No es válido 
  2. Censura

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.

Ejemplo de negociación laboral en acción

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.

¿Y los pagos?

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:

  • El pool rechaza o acepta plantillas de bloques al principio de las rondas de minería, y el minero puede propagar los bloques encontrados por sí mismo.
  • Los pools envían los pagos con frecuencia (varias veces al día en la mayoría de los casos), por lo que el riesgo financiero para los mineros de no recibir el pago por un trabajo válido es mínimo. Por su parte, los pools que no pagan a sus mineros se arriesgan a sufrir un daño permanente en su reputación y a perder futuros negocios.

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.

Descentralizar por descentralizar

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.

Conclusión

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.

Más información

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.

en las redes sociales

Sea el primero en enterarse

Gracias. Hemos recibido su envío.
¡Uy! Algo salió mal al enviar el formulario.

CONVERTIRSE EN AUTOR

Buscar libros

Compartir artículo

Sea el primero en enterarse

Reciba información sobre nuestros nuevos contenidos mineros, actualizaciones de productos y mucho más.
Gracias. Hemos recibido su envío.

Lea la Política de privacidad.

¡Uy! Algo salió mal al enviar el formulario.
Le pedimos disculpas, pero nuestro blog sólo está disponible en inglés, español y ruso.