Selección de nonce

En el sistema PoW, debe probar diferentes nonce hasta que encuentre un hash que sea compatible con la dificultad actual y el conjunto de datos actual.

Hay muchos mineros que prueban muchos nonce al mismo tiempo.

Mis preguntas:

  1. hay riesgo de trabajo duplicado? ¿Y por qué? (¿Dos mineros diferentes pueden eventualmente probar el mismo nonce?)
  2. ¿Cómo se seleccionan los nonce en el software minero más popular (por ejemplo, el de genoil)?

Respuestas (2)

Si miras el código fuente de Genoil

    random_device engine;
    uint64_t start_nonce;
    if (_ethStratum) start_nonce = _startN;
    else start_nonce = uniform_int_distribution<uint64_t>()(engine);

En el modo de estrato (es decir, cuando se conecta a un grupo), el grupo dicta el nonce; de ​​lo contrario, se genera aleatoriamente.

Dado que la dirección del minero se incluye en el encabezado del bloque como parte de la prueba de trabajo. Hay muy pocas posibilidades de que diferentes mineros elijan el mismo nonce.

Solo un comentario de que, incluso si dos mineros prueban el mismo nonce, en realidad no importa porque la solución no tiene ningún valor. En ese sentido, todos los cálculos que realizan los mineros para resolver el rompecabezas de la Prueba de trabajo son solo una pérdida de tiempo, dinero y recursos. El propósito es solo presentar una barrera para el proceso de creación de bloques y prevenir ataques de Sybil.
@AjoyBhatia No entiendo cuál es tu punto. En un sistema PoW, es un proceso estocástico, la mayoría de los nonces no generarán un bloque válido. La parte importante es que toda la red tiene que funcionar para proteger la cadena de bloques, por lo que un actor malicioso no puede alterarla por la fuerza bruta sin una gran inversión en recursos.
Y no entiendo como tu comentario va en contra de lo que dije. Estoy de acuerdo con todo lo que dices, pero aún puedo mantener que no importa si dos o más mineros prueban el mismo nonce.
Después de pensar un poco más, acepto que incluir la dirección del minero en el encabezado del bloque evitará que diferentes mineros elijan el mismo nonce. Pero, incluso si no fuera así, y un minero controlara muchas direcciones diferentes y enviara la misma solución desde todas las direcciones, solo el envío de un bloque de direcciones ganaría la recompensa del bloque y tendría el bloque incluido en la cadena. Esta es una discusión hipotética ahora, y no está relacionada con la pregunta. Podríamos continuar en el chat.
Lo siento, pero todavía no entiendo cuál es su punto, y cómo es relevante para la pregunta formulada, sobre qué sucede cuando dos mineros eligen el mismo nonce y cómo el software minero selecciona un nonce.

la base de la moneda (dirección del receptor de la moneda en el hash exitoso) es parte de un encabezado en el que trabajará el minero, por lo que:

si se trata de minería en solitario, si cada uno de los mineros del recorrido se conecta directamente al nodo y pasa su propia dirección de base de moneda: 0 posibilidades. si cada uno de los mineros usa directamente el nodo y deja que el nodo establezca su base de monedas, las posibilidades son muy, muy escasas (rango de 2^64) de que llegue al mismo nonce que negibour en el mismo nodo (aunque esto depende del nodo y los mineros, el nodo podría actuar como un grupo y proporcionar un nonce diferente para cada minero si aceptan). si se extrae en un grupo, el coinbaise siempre es un grupo, por lo que cada grupo se asegura de que el nonce no colisione para cada minero (ah, y alguien mencionó que no importa que los mineros en el grupo golpeen el mismo nonce, creo que es lo contrario, porque está haciendo un pow de menor dificultad para el grupo pero aún está trabajando en el hash de bloque real y, por lo tanto, los que producen el hash de bloque de dificultad total real, por lo que es muy importante no duplicar el trabajo en un grupo).

cuando dos mineros envían una solución al mismo tiempo, nunca es la misma solución (por supuesto, si es para el mismo grupo en el mismo momento que todos los grupos querrán evitar) es quien encuentra una solución más rápido, o simplemente me he convencido. )