Grund für Mininig einen Block ohne Transaktion

Ich habe erfahren, dass es Leute gibt, die einen neuen Block ohne Transaktion abbauen. Ich verstehe, dass dies nur dazu dient, die Blockbelohnung zu erhalten.

Referenz https://www.blockchain.com/btc/block/0000000000000000004e9b0f16eccf2462eaea0023e842e9c5f17ea6d404b74c

Frage .

  1. Was ist das Problem, wenn sie die Transaktionen darin enthalten.
  2. Warum erlaubt das Bitcoin-Client-Protokoll leere Blöcke?
Die Frage "warum leere Blöcke erlaubt sind" wurde bereits ausführlich behandelt (siehe die Fragen, die ich im obigen Kommentar verlinkt habe). Es wäre viel nützlicher und interessanter, wenn Sie Ihre Frage so bearbeiten könnten, dass sie sich auf den zweiten Teil konzentriert, z. B. "Warum schürfen Miner leere Blöcke?", "Unter welchen Umständen werden leere Blöcke erstellt?" oder "Welche Gründe gibt es, leere Blöcke abzubauen?".

Antworten (3)

Wenn Sie wissen möchten, warum ein Miner einen leeren Block abgebaut hat, müssen Sie ihn im Allgemeinen fragen. Sie könnten das wirklich aus irgendeinem Grund tun.


Für ein spezifischeres Beispiel eines technischen Beispiels, warum ein Miner einen leeren Block abbauen kann:

Als Miner sollten Sie gebührenpflichtige Transaktionen in Ihre Blöcke aufnehmen, um Ihre Gewinne zu maximieren, wenn ein gültiger Block gefunden wird.

Aber Sie müssen auch sicherstellen, dass Sie immer an gültigen Blöcken arbeiten, denn jede Zeit, die Sie mit dem Schürfen eines möglicherweise ungültigen Blocks verbringen, ist wahrscheinlich nur eine Verschwendung Ihrer Ressourcen.

Überlegen Sie in diesem Sinne, was passiert, wenn Sie von einer neuen Sperre im Netzwerk hören. Sie können den Header des Blocks ziemlich schnell validieren und mit dem Mining beginnen, um keine Ressourcen mit dem Mining auf der Höhe von (chaintip - 1) zu verschwenden. Der Haken ist, dass das Herunterladen und Validieren jeder Transaktion im Block ein wenig Zeit in Anspruch nimmt, und bis diese Validierung abgeschlossen ist, haben Sie kein klares Bild davon, welche Transaktionen enthalten sind und welche nicht. Bis Sie die Validierung des neuen Blocks abgeschlossen haben, ist es am sichersten, mit dem Abbau eines leeren Blocks zu beginnenauf der neuen Kettenspitze. Andernfalls wird Ihr Block ungültig, wenn Sie eine bereits bestätigte Transaktion einbeziehen! Sobald Ihr Node ein klares Bild davon hat, welche Transaktionen in den neuen Block aufgenommen wurden, können Sie das Mining auf einem vollen Block fortsetzen, um die Gewinne zu maximieren.

In Wirklichkeit ist die Zeit zwischen dem Hören eines neuen Blocks und dem entsprechenden Aktualisieren Ihres Mempools ziemlich kurz, aber dennoch wird gelegentlich ein Block während dieser Zeit gefunden.

Ich weiß nicht, ob das mit diesem Block passiert ist, aber es dient als Beispiel für einen technischen Grund, warum ein leerer Block im Netzwerk veröffentlicht werden kann.

Steht das unter Miner-Kontrolle? Der Miner kann die Transaktion auswählen oder das Protokoll wählt die Transaktion aus. Wenn das Protokoll die Transaktion auswählt, warum ist das Protokoll dann so konzipiert, dass es eine 0-Transaktion auswählt und das Erstellen eines leeren Blocks erleichtert? Wenn der Miner die Transaktion auswählt, was motiviert ihn dann, keine Transaktion in den Block aufzunehmen. Angenommen, der Aufwand für das Mining von Block mit Transaktion und Block ohne Transaktion ist gleich.

Die Miner können die einzuschließenden Transaktionen frei wählen. Die meisten möglichen Szenarien waren:

  1. Zu diesem Zeitpunkt gab es keine Transaktionen.
  2. Transaktionen hatten niedrige Gebühren.

Die Transaktionsgebühr wurde entwickelt, um Spam zu verhindern und die Leute zu ermutigen, Mining-Knoten zu betreiben, damit die Blockchain funktioniert. Wenn die Transaktionsgebühr zu niedrig ist, können Miner einfach alle Transaktionen ignorieren und den Block verarbeiten, um die Belohnung zu erhalten, was Zeit und Energie spart.

Was ist das Problem, wenn sie die Transaktionen darin enthalten.

Ein Block, der Transaktionen enthält, braucht länger, um ihn an andere Miner und Nodes zu verteilen. Diese längere Zeit macht es wahrscheinlicher, dass jemand anderes einen Block findet, während sich dieser Block durch das Netzwerk ausbreitet. In diesem Fall erhalten die Miner, die den ersten Block gefunden haben, ihre Mining-Belohnung nicht.

Darüber hinaus muss ein Miner, der Transaktionen enthält, auch einige SHA256-Berechnungen durchführen, um den Merkle-Baum der Transaktionen zu erstellen. Das Erstellen dieses Baums und das Berechnen des Root-Hash ist Zeit, die nicht mit dem Mining verbracht wird.

Wie Chytrik unten erwähnt, sind diese beiden Nachteile recht gering im Vergleich dazu, wie viel Zeit damit verbracht wird, einen gültigen Block-Hash zu finden, dh Mining.

Warum erlaubt das Bitcoin-Client-Protokoll leere Blöcke?

Denn die Forderung, dass Transaktionen in einen Block aufgenommen werden, würde nicht sicherstellen, dass Miner tatsächlich die Transaktionen anderer Leute abbauen, da die Miner die Transaktionen einfach selbst durchführen könnten. Die Forderung, dass Miner Transaktionen einbeziehen, garantiert daher nicht, dass sie tatsächlich produktive Arbeit für das Netzwerk leisten.

Ich stimme dem ersten Teil Ihrer Antwort nicht zu: Die Implementierung des FIBER-Netzwerks hat die blockierten Ausbreitungszeiten auf unglaublich niedrige Zahlen gesenkt ( bitcoinfibre.org/stats_ng.html ). Ich würde vermuten, dass die erhöhten Einnahmen aus der Aufnahme von TXs in einen Block das äußerst geringe Potenzial für das Verwaisen eines vollständigen Blocks bei weitem aufwiegen würden. Wenn das, was Sie geschrieben haben, wahr wäre, sollten wir schließlich erwarten, dass ein rationaler Miner nur leere Blöcke erstellt.
iappmaker fragte nach den Gründen, Transaktionen nicht einzubeziehen. Der Grund für die Einbeziehung der Transaktion ist natürlich, die enthaltenen Transaktionsgebühren zu erhalten. Diese beiden Überlegungen müssen gegeneinander abgewogen werden und die meisten Miner kommen zu dem Schluss, dass es sich lohnt, die Transaktionen mit einzubeziehen. Aber iappmaker fragte nach den Nachteilen der Aufnahme von Transaktionen, er bat mich nicht, die Nachteile/Vorteile gegeneinander abzuwägen.
Ich verstehe das, aber die Nachteile der „Netzwerklatenz für einen vollen Block“ sind fast nicht vorhanden, ich wäre überrascht, wenn irgendein Miner diesen Grund ernsthaft in Betracht ziehen würde. Betreff: "Das Erstellen dieses Baums und das Berechnen des Root-Hash ist Zeit, die nicht mit dem Mining verbracht wird." Das ist nicht ganz richtig, die Berechnung der Merkle-Wurzel würde parallel erfolgen, nicht von der Mining-Hardware selbst. Vielmehr könnte die Zeit, die für die Berechnung der Merkle-Wurzel aufgewendet wird, Zeit sein, die für das Mining eines leeren Blocks aufgewendet wird: Informationen dazu finden Sie in der Antwort, die ich gepostet habe.