Nonce-Auswahl

Im PoW-System müssen Sie verschiedene Nonce testen, bis Sie einen Hash gefunden haben, der mit der aktuellen Schwierigkeit und dem aktuellen Datensatz kompatibel ist.

Es gibt viele Miner, die viele Nonce gleichzeitig testen.

Meine Fragen:

  1. besteht die Gefahr von Doppelarbeit? Und warum? (Zwei verschiedene Miner können schließlich dieselbe Nonce testen?)
  2. Wie lange werden in der beliebtesten Miner-Software (z. B. Genoil's) ausgewählt?

Antworten (2)

Wenn Sie sich den Genoil -Quellcode ansehen

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

Im Stratum-Modus (dh beim Verbinden mit einem Pool) wird die Nonce vom Pool vorgegeben, ansonsten wird sie zufällig generiert.

Da die Miner-Adresse als Teil des Arbeitsnachweises im Blockheader enthalten ist. Es besteht eine sehr geringe Wahrscheinlichkeit, dass verschiedene Bergleute dieselbe Nonce wählen.

Nur ein Kommentar, dass, selbst wenn zwei Miner dieselbe Nonce testen, es keine Rolle spielt, weil die Lösung keinen Wert hat. In diesem Sinne sind alle Berechnungen, die die Miner durchführen, um das Proof-of-Work-Puzzle zu lösen, nur eine Verschwendung von Zeit, Geld und Ressourcen. Der Zweck besteht lediglich darin, eine Barriere für den Blockerstellungsprozess darzustellen und Sybil-Angriffe zu verhindern.
@AjoyBhatia Ich verstehe nicht, was du meinst. In einem PoW-System ist es ein stochastischer Prozess, die meisten Nonces erzeugen keinen gültigen Block. Der wichtige Teil ist, dass das gesamte Netzwerk funktionieren muss, um die Blockchain zu sichern, sodass ein böswilliger Akteur sie nicht ohne große Investitionen in Ressourcen durch rohe Gewalt verändern kann.
Und ich verstehe nicht, wie Ihr Kommentar gegen das verstößt, was ich gesagt habe. Ich stimme allem zu, was Sie sagen, aber ich kann trotzdem behaupten, dass es keine Rolle spielt, ob zwei oder mehr Miner dieselbe Nonce testen.
Nachdem ich etwas mehr nachgedacht habe, stimme ich zu, dass die Aufnahme der Adresse des Bergmanns in den Block-Header verhindern wird, dass verschiedene Bergleute dieselbe Nonce wählen. Aber selbst wenn dies nicht der Fall wäre und ein Miner viele verschiedene Adressen kontrollierte und die gleiche Lösung von allen Adressen sendete, würde nur eine der Blockübermittlungen der Adressen die Blockbelohnung gewinnen und den Block in die Kette aufnehmen. Dies ist jetzt eine hypothetische Diskussion und hat nichts mit der Frage zu tun. Wir könnten im Chat weitermachen.
Tut mir leid, aber ich verstehe immer noch nicht, worauf Sie hinauswollen und wie es für die gestellte Frage relevant ist, was passiert, wenn zwei Miner dieselbe Nonce auswählen und wie die Miner-Software eine Nonce auswählt.

Die Münzbasis (Adresse des Empfängers der Münze bei erfolgreichem Hash) ist Teil eines Headers, an dem der Miner arbeiten wird, also:

wenn Solo-Mining, wenn jeder der Tour-Miner direkt mit dem Knoten verbunden ist und seine eigene Coin-Basisadresse weitergibt - Chance 0. Wenn jeder der Miner den Knoten direkt verwendet und den Knoten seine Coinbase festlegen lässt, sind die Chancen sehr, sehr gering (2 ^ 64-Bereich), dass Sie dieselbe Nonce wie der Negibour auf demselben Knoten treffen (obwohl dies von dem Knoten und den Minern abhängt, wie der Knoten fungieren könnte einen Pool und stellen jedem Miner unterschiedliche Nonce zur Verfügung, wenn sie dies akzeptieren). Beim Mining in einem Pool ist die Coinbaise immer Pools, und so stellt jeder Pool sicher, dass die Nonce nicht für jeden Miner kollidieren (oh, und jemand hat erwähnt, dass es für Miner im Pool egal ist, dieselbe Nonce zu treffen, ich denke, es ist das Gegenteil, weil Sie machen Pow mit niedrigerem Schwierigkeitsgrad für den Pool, arbeiten aber immer noch am echten Block-Hash, und daher produzieren diejenigen den tatsächlichen Block-Hash mit vollem Schwierigkeitsgrad, also ist es sehr wichtig, die Arbeit an einem Pool nicht zu verdoppeln).

Wenn zwei Bergleute gleichzeitig Lösungen einreichen, ist es nie die gleiche Lösung (natürlich, wenn es für denselben Pool auf derselben Nonce ist, was alle Pools verhindern wollen), wer findet schneller eine Lösung, oder ich habe mich selbst davon überzeugt )