Nonce
Eine Nonce – kurz für „number used once“ (einmal verwendete Zahl) – ist ein Wert, der gezielt in Daten aufgenommen wird, damit die Daten variiert oder geordnet werden können; in Blockchains taucht sie an zwei unterschiedlichen Stellen auf, die Einsteiger oft verwechseln. Beim Proof-of-Work-Mining ist die Nonce ein Feld im Block-Header, das Miner immer wieder ändern und dabei den Block jedes Mal neu hashen, bis der resultierende Hash unter das Schwierigkeitsziel fällt. Die Nonce selbst ist bedeutungslos; sie existiert nur, damit Miner etwas zum Variieren haben. Ein Bitcoin-Miner kann zum Beispiel Milliarden von Nonce-Werten pro Sekunde durchlaufen, und wenn die übrigen Felder des Block-Headers ausgeschöpft sind, passt er zusätzlich eine Extra-Nonce in der Coinbase-Transaktion an, um weiterzusuchen.
Die zweite Verwendung ist die Konto-Nonce auf Blockchains wie Ethereum: ein Zähler, der an jedem Konto hängt und sich mit jeder gesendeten Transaktion erhöht. Sie garantiert, dass Transaktionen der Reihe nach ausgeführt werden, und verhindert Replay-Angriffe – ohne sie könnte eine signierte Nachricht „Zahle 1 ETH an Alice“ erneut ausgesendet und wiederholt ausgeführt werden. Wenn Sie eine Transaktion mit Nonce 7 und niedriger Gebühr senden und sie hängen bleibt, warten die Transaktionen 8 und 9 dahinter, weshalb Wallets es erlauben, eine hängende Transaktion zu „ersetzen“, indem Nonce 7 mit höherer Gebühr erneut gesendet wird.
Ein verbreiteter Irrtum ist, dass diese beiden Nonces derselbe Mechanismus seien; sie teilen sich nur den Namen – die eine ist eine Suchvariable beim Mining, die andere eine Sequenznummer gegen Replay.