Kandidatenblock
Kurz gesagt ist ein Kandidatenblock ein Block, den ein Mining-
Knoten (Miner) zu schürfen versucht, um die Blockbelohnung zu erhalten. Ein Kandidatenblock kann also als temporärer Block beschrieben werden, der vom Netzwerk bestätigt oder verworfen wird. Die Miner konkurrieren miteinander, um den nächsten Block zu validieren und der Blockchain hinzuzufügen. Zunächst müssen sie jedoch einen Kandidatenblock erstellen, um am
Mining-Wettbewerb teilzunehmen.
Miner erstellen Kandidatenblöcke, indem sie mehrere unbestätigte Transaktionen aus dem Memory Pool erfassen und zusammenfassen. Die Transaktionen werden dann zu einer
Merkle-Baum-Struktur zu gehasht, die als Ergebnis einen eindeutigen Wert, eine Merkle-Wurzel (oder Wurzel-Hash), ausgibt. Die Merkle-Wurzel ist ein einzelner Hash, der alle vorherigen Hashes dieses Baums und damit alle Transaktionen repräsentiert, die in diesem bestimmten Block enthalten waren.
Der Wurzel-Hash wird dann zusammen mit dem Hash des vorherigen Blocks und einer Zufallszahl, der
Nonce, in den Header des Blocks aufgenommen. Der Block-Header wird anschließend vom Miner gehasht, wobei aus diesen Komponenten (Wurzel-Hash, Hash des vorherigen Blocks und Nonce) sowie einigen anderen Elementen eine Ausgabe erzeugt wird. Diese Ausgabe ist der Block-Hash. Er dient als eindeutige Kennung des neu erzeugten Blocks (Kandidatenblock).
Um als gültig zu gelten, muss die Ausgabe (Block-Hash) mit einer bestimmten Anzahl von Nullen beginnen (der Wert muss kleiner sein, als ein vom Protokoll festgelegter Zielwert). Dies bedeutet, dass der Mining-Prozess auf dem Versuchsprinzip beruht, da die Mining-Knoten eine Vielzahl von Hash-Funktionen mit unterschiedlichen Nonce-Werten durchführen müssen, bis schließlich ein gültiger Block-Hash erzeugt wird. Der erzeugte Block-Hash ist der Beweis dafür, dass der Miner seine Arbeit gemacht hat (daher der Begriff „
Proof of Work“).
Nachdem ein Miner einen gültigen Block-Hash gefunden hat, wird sein Blockkandidat an die übrigen Knoten des Netzwerks gesendet, die die Authentizität des Hashes überprüfen. Wenn alles in Ordnung ist, wird der Blockkandidat in die
Blockchain aufgenommen. Zu diesem Zeitpunkt aktualisiert jeder Validierungsknoten seine Kopie der Blockchain-Daten, um den zuvor geschürften Block bereitzustellen, und der Miner erhält die Blockbelohnung.