Ich habe gerade die folgende Frage gelesen. Beeinflusst die Blockgröße die Hashing-Geschwindigkeit des Miners?
und es scheint, dass die Antwort nein ist - da Miner nur die Merkle-Wurzel hashen müssen.
Das Aktualisieren der Merkle-Root wird jedoch viel CPU-Leistung in Anspruch nehmen, wenn/wenn Bitcoin-Transaktionen eine Rate von 4000 tps erreichen.
Was ist der Anreiz für Bergleute/Pools, Anstrengungen zu unternehmen, um die Merkle-Wurzel in diesem Tempo aufrechtzuerhalten? Wenn sie diese Anstrengungen nicht unternehmen, wird das Ergebnis natürlich ein ständig wachsender Rückstand an nicht verifizierten Transaktionen sein.
Die Merkle-Root stellt sicher, dass Transaktionen Teil des gefundenen Blocks waren. Es verknüpft den Blockheader mit dem Transaktionssatz im Block.
Wenn Sie also den Merkle-Stamm nicht aktualisieren, bestätigen Sie die Transaktionen nicht wirklich, und Sie können die Transaktionsgebühr nicht einziehen. Der Anreiz, die Merkle-Root zu aktualisieren, ist also derselbe wie beim Einfügen von Transaktionen in einen Block: Sie erhalten dafür Transaktionsgebühren.
Nun, wenn Sie den gesamten 32-Bit-Nonce-Wert durchlaufen und den Hash mit dem erforderlichen Schwierigkeitsgrad nicht erhalten können, können Sie auch zusätzliche Transaktionen einbeziehen, die den Merkle-Root-Wert indirekt ändern, und hoffentlich wird ein neuer Satz von Nonce-Werten Miner dazu befähigen Holen Sie sich den Hash-Wert, der dem Schwierigkeitsgrad entspricht. Es ist nur eine ihrer Strategien.
Es gibt zwei Gründe für die Aktualisierung des Stammverzeichnisses. Normalerweise ist nur der zweite der Grund für die Aktualisierung.
Das Empfangen von mehr Transaktionen geschieht in der Regel viel mehr als das Ausschöpfen der gesamten 32-Bit-Nonce und wird durchgeführt, um so viele Transaktionen wie möglich einzubeziehen, um die höchste Gebührenprämie zu erhalten.
Alex Zeffert
Eyal
Decker