Kurz erklärt: Eine Nonce (von englisch „number used once“, einmal verwendete Zahl) ist im Kontext des Minings ein veränderbares Zahlenfeld im Block-Kopf, das Bitcoin-Miner systematisch variieren, um einen gültigen Block-Hash unterhalb einer vorgegebenen Zielschwelle zu finden.
Grundbegriff
Der Begriff Nonce stammt aus der Kryptografie und bezeichnet allgemein einen Wert, der nur ein einziges Mal in einem bestimmten Kontext verwendet werden soll. Im Bitcoin-Protokoll ist die Nonce ein 32 Bit großes Feld im Kopf (Header) eines Blocks.
Die Nonce ist eng mit dem Konsensverfahren Proof of Work verknüpft, das die Sicherheit vieler Blockchains gewährleistet.
Funktion beim Mining
Beim Mining berechnen Miner wiederholt den kryptografischen Hash des Block-Kopfs. Ziel ist ein Hash-Wert, der kleiner ist als die aktuelle, durch die Difficulty festgelegte Zielschwelle.
- Da der Hash sich nicht gezielt berechnen lässt, verändern Miner die Nonce und wiederholen den Vorgang.
- Jede Änderung der Nonce erzeugt einen völlig anderen Hash-Wert (Lawineneffekt).
- Erst wenn ein passender Hash gefunden ist, gilt der Block als gültig und darf der Kette hinzugefügt werden.
Da das 32-Bit-Feld nur rund vier Milliarden Möglichkeiten bietet, reicht es bei heutiger Rechenleistung oft nicht aus. Miner variieren daher zusätzlich weitere Felder, etwa den Zeitstempel oder eine sogenannte Extra-Nonce im Coinbase-Bereich.
Abgrenzung und weitere Verwendung
Neben dem Mining wird der Begriff Nonce auch anderweitig verwendet. In Ethereum bezeichnet die Account-Nonce einen Zähler, der die Zahl der von einer Adresse gesendeten Transaktionen angibt und die Reihenfolge sichert sowie Doppelausgaben (Replay) verhindert. Diese Konten-Nonce ist von der Mining-Nonce zu unterscheiden.
Allgemein dienen Nonces in kryptografischen Verfahren dazu, die Einmaligkeit von Nachrichten sicherzustellen und Wiederholungsangriffe zu erschweren.
Häufige Fragen
Wofür steht die Abkürzung Nonce?
Nonce steht für „number used once“, also eine Zahl, die nur ein einziges Mal in einem bestimmten Kontext verwendet werden soll.
Welche Rolle spielt die Nonce beim Bitcoin-Mining?
Miner variieren die Nonce im Block-Kopf so lange, bis der berechnete Hash-Wert unter der durch die Difficulty vorgegebenen Zielschwelle liegt und der Block gültig ist.
Warum reicht das 32-Bit-Nonce-Feld oft nicht aus?
Das Feld bietet nur rund vier Milliarden Werte; bei heutiger Rechenleistung sind diese schnell durchprobiert, weshalb zusätzlich Felder wie der Zeitstempel oder eine Extra-Nonce variiert werden.
Ist die Mining-Nonce dasselbe wie die Nonce bei Ethereum-Konten?
Nein. Die Account-Nonce bei Ethereum ist ein Transaktionszähler pro Adresse, während die Mining-Nonce ein variables Feld zur Suche eines gültigen Block-Hashs ist.
Warum ändert eine kleine Nonce-Änderung den Hash komplett?
Kryptografische Hash-Funktionen besitzen den sogenannten Lawineneffekt, bei dem bereits eine minimale Eingabeänderung ein völlig anderes Ergebnis erzeugt.
Zusammenfassung
Eine Nonce ist im Mining ein variables Zahlenfeld im Block-Kopf, das Miner beim Proof of Work systematisch verändern, um einen gültigen Hash unterhalb der Zielschwelle zu finden. Der Begriff wird darüber hinaus in der Kryptografie und bei Ethereum-Konten in abweichender Bedeutung als Transaktionszähler verwendet.
Weiterführende Quellen
- Bitcoin Wiki: Nonce: en.bitcoin.it
- Wikipedia: Kryptographische Nonce: de.wikipedia.org