Was wird ein Miner tun, wenn eine Transaktion mit hohen Gebühren kommt, er aber seinen Block aufgebaut hat und das Rätsel löst?

Soweit ich weiß, ist der Mining-Prozess wie folgt:

Schritt 1: Sammeln Sie eine Reihe von Transaktionen und konstruieren Sie einen Block, indem Sie die erforderlichen Informationen wie den Hash des vorherigen Blocks und die Wurzel des Merkle-Baums usw.

Schritt 2: Lösen eines Rätsels durch ständiges Ändern des 'Nonce'-Feldes des Blocks, um den Hash des Block-Headers kleiner als ein Ziel zu machen.

Wenn ein Miner einen Block gebaut hat (Schritt 1) ​​und versucht, das Rätsel zu lösen (Schritt 2), kommt eine sehr attraktive Transaktion mit hoher Gebühr, wird der Miner die Arbeit, die er getan hat, aufgeben, den Block rekonstruieren und das Lösen neu starten Puzzle?

Welche Arbeit würde er genau aufgeben?
Die Arbeit, um die "Nonce" des aktuellen Blocks zu ändern

Antworten (3)

Ein modernes Mining-System wird beides leisten.

Heutzutage verfügen Miner und Mining-Pools über mehr Hashpower als erforderlich, um alle Iterationen einer Nonce und ExtraNonce auf eine einzelne Blockvorlage zu prüfen. Sie umgehen dies, indem sie nacheinander an mehreren Blockvorlagen arbeiten, die normalerweise den Blockzeitstempel, die Daten in der Coinbase-Transaktion und die Liste der ausgewählten Transaktionen variieren.

Diese aktualisierten Blockvorlagen werden ständig parallel zu den eigentlichen Hashing-Operationen generiert – wenn attraktivere Transaktionen entdeckt werden, wird der nächste Satz von generierten Blockvorlagen aktualisiert, um diese Transaktionen zu enthalten. Sobald die Mining-Hardware mit ihrem aktuellen Block-Template fertig ist, holt sie sich ein neues, wahrscheinlich optimales Template aus dem Pool.

Wenn ein einzelner Worker einen gültigen Block mit einem suboptimalen Template entdeckt, werden Miner diesen Block übertragen – es macht wenig Sinn, einen Block über eine relativ geringe Gebührenerhöhung hinaus zu verwerfen und auf die gesamte Blockbelohnung zu verzichten.

Vielleicht ist es wichtig, dass die Übertragungskosten für eine Lösung im Wesentlichen Null sind.

Die Blockvorlage wird (vielleicht) alle paar Sekunden mit neuen Transaktionen aktualisiert.

Wird der Bergmann die Arbeit, die er getan hat, aufgeben?

Jeder Block mit einem Hash, der das Ziel erfüllt, wird weitergegeben. Aber wenn kein Block erstellt wurde, denken Sie daran, dass Mining ein Poisson-Prozess ist, dessen wichtigste Eigenschaft die Gedächtnislosigkeit ist . Wenn das Mining eines Blocks durchschnittlich 10 Minuten dauert und nach 5 Minuten Mining das Ändern der Blockvorlage die erwartete Zeit bis zum nächsten Block nicht verkürzen würde (daher ist "aufgeben" nicht das beste Wort).

den Block rekonstruieren und das Rätsel erneut lösen?

Ja.

Betrachten wir diese Situation: Bevor die Transaktion mit hohen Gebühren kommt, hat ein Miner seinen Block nicht aktualisiert und ständig die „Nonce“ desselben Blocks geändert, der Platz der nutzlosen Ergebnisse, die er erhalten hat, ist S. Jetzt die Transaktion mit hohen Gebühren kommt, der Miner den Block rekonstruiert und das Rätsel erneut löst, was ist, wenn die Ergebnisse, die er erhält, wieder in S fallen? Bedeutet das nicht, dass die Arbeit, die er geleistet hat, verschwendet ist?
SHA256 hat wie andere gute kryptografische Hash-Funktionen einen Lawineneffekt, was bedeutet, dass selbst ein Bit, das in der Eingabe geändert wird, dazu führt, dass die Ausgabe völlig anders ist. Die gefundenen neuen Hashes werden völlig anders sein, da der Merkle-Hash der Transaktionen (oder der Hash aller TXIDs im Block) auch als Nonce zum Ändern des Ausgabe-Hashs dienen kann. @Besser
Das Berechnen eines einzelnen Hashs dauert in der Größenordnung von Nanosekunden, und jeder Versuch ist unabhängig. Es liegt nicht daran, dass Sie bereits eine Milliarde fehlgeschlagener Hashes ausprobiert haben, dass Sie der Lösung in irgendeiner Weise "näher" sind. Mit anderen Worten: PoW ist fortschrittsfrei, abgesehen von der Zeit, die benötigt wird, um einen einzelnen Hash zu berechnen, die im Vergleich zu der Zeitskala, in der Transaktionen stattfinden, so kurz ist.

Wenn ein Miner einen Block gebaut hat (Schritt 1) ​​und versucht, das Rätsel zu lösen (Schritt 2), kommt eine sehr attraktive Transaktion mit hoher Gebühr, wird der Miner die Arbeit, die er getan hat, aufgeben, den Block rekonstruieren und das Lösen neu starten Puzzle?

Entweder erzeugte diese Arbeit eine Blockade oder nicht. Wenn es einen Block erzeugt hat, wird er diesen Block definitiv übertragen. Wenn es keinen Block erzeugt hat, verliert er nichts, wenn er es aufgibt. Es gibt also keine „erledigte Arbeit“, die er „aufgeben“ könnte.

Die Arbeit der Miner erzeugt entweder einen Block oder nicht. Es gibt keine Möglichkeit, einen Teil des Weges zur Produktion eines Blocks zu gehen, nur um von vorne zu beginnen.