Nonce

Definition

Eine Nonce (Number used Only Once) ist eine Zahl, die nur einmal in einem kryptographisch Kommunikation zur Verhinderung von Replay-Angriffen und zur Gewährleistung der Aktualität der Nachrichten. 

Beim Bitcoin-Mining ist die Nonce eine 32-Bit-Zahl, die von den Minern milliardenfach pro Sekunde inkrementiert wird, um einen Hashwert unterhalb der Zielschwierigkeit zu finden – dies ist die „Proof-of-Work“-Berechnung. 

Bei Ethereum-Transaktionen ist die Nonce ein fortlaufender Transaktionszähler pro Konto: Jede neue Transaktion von einer Adresse muss die nächste Nonce (beginnend bei 0) verwenden, um sicherzustellen, dass Transaktionen der Reihe nach verarbeitet werden und Double-Spend-Replay-Angriffe verhindert werden. 

Wird die Nonce einer Transaktion übersprungen, bleiben alle nachfolgenden Transaktionen von dieser Adresse so lange hängen, bis die Lücke geschlossen ist.

Nonce in zwei Kontexten

Kontext 1: Bitcoin-Mining (Proof of Work)

Ziel: Einen Hash unterhalb des Zielschwierigkeitsgrades finden. Ablauf: Der Miner probiert verschiedene Nonces: Nonce = 0: Hash(Blockheader + 0) = 0xaf2b… (zu hoch) Nonce = 1: Hash(Blockheader + 1) = 0xce4a… (zu hoch) Nonce = 2: Hash(Blockheader + 2) = 0xb91c… (zu hoch) … Nonce = 3,847,291,023: Hash = 0x0000000000a3b… (unter dem Zielwert!) → Block gefunden! Gültig Nachweis der Arbeit.

Moderne ASIC-Miner verbrauchen pro Sekunde etwa 4 Milliarden Nonces. Falls keine gültige Nonce im 32-Bit-Bereich verfügbar ist: Zeitstempel oder Coinbase-Transaktion ändern → Nonce-Suche erneut starten

Kontext 2: Ethereum-Konto-Nonce (Transaktionszähler)

Alice sendet Transaktionen: TX 1: Nonce = 0 (erste Transaktion von Alices Adresse) TX 2: Nonce = 1 TX 3: Nonce = 2 TX 4: Nonce = 3

Problem: TX 3 bleibt hängen (Gebühr zu niedrig): TX 3 ausstehend → TX 4 kann nicht verarbeitet werden (Nonce-Lücke). Lösung: TX 3 mit höherer Gebühr erneut senden → TX 3 bestätigt → TX 4 bestätigt.

Replay-Schutz: Wenn TX 3 im Mainnet bestätigt wurde → Dieselbe Transaktion kann im Testnet nicht wiederholt werden (Unterschiedliche Chain-IDs machen Nonce + Signatur für eine Chain eindeutig).

Nonce in Kryptosystemen

System Zweck der Plotter Abdeckung
Bitcoin Bergbau Eingabe variieren, um gültigen PoW-Hash zu finden 0 bis 2^32 (~4 Mrd.)
Ethereum-Konto Sequenzieller Transaktionszähler pro Adresse 0 bis 2^64 – 1 (~18.4 Trillionen)
Kryptografische Protokolle Replay-Angriffe in Signaturen verhindern Zufällig oder sequenziell
SSL / TLS Sicherstellen der Eindeutigkeit der Sitzung Zufällig pro Sitzung

FAQ

F: Warum verwendet Ethereum eine sequentielle Nonce anstelle einer zufälligen?

Sequenzielle Nonces (0, 1, 2, 3…) erzwingen die Transaktionsreihenfolge: Dieselben Gelder können nicht zweimal ausgegeben werden, und Transaktionen werden in der Reihenfolge ihrer Übermittlung ausgeführt. Zufällige Nonces würden Replay-Angriffe nicht so effektiv verhindern und zusätzliche Mechanismen zur Erkennung doppelter Transaktionen erfordern. Sequenzielle Nonces erleichtern zudem die Identifizierung von „festgefahrenen“ Transaktionen: Wenn Nonce 5 aussteht und Nonce 6 übermittelt wurde, wartet Nonce 6, bis Nonce 5 bestätigt wurde.

F: Wie kann ich eine festsitzende Ethereum-Transaktion beheben?

Wenn eine Transaktion aufgrund einer ausstehenden Nonce festhängt, haben Sie zwei Möglichkeiten: (1) Beschleunigen Sie die Transaktion, indem Sie dieselbe Nonce mit höheren Gasgebühren erneut senden (MetaMask bietet hierfür eine Schaltfläche „Beschleunigen“), oder (2) Brechen Sie die Transaktion ab, indem Sie sich selbst 0 ETH mit derselben Nonce zu einem höheren Gaspreis senden. Dadurch wird die festhängende Transaktion ersetzt. Sobald die festhängende Nonce aufgelöst ist, werden nachfolgende Transaktionen mit höheren Nonces verarbeitet.

F: Was ist ein „Nonce-Reuse“-Angriff in der Kryptographie?

Bei kryptografischen Signaturverfahren kann die Wiederverwendung einer Nonce mit demselben privaten Schlüssel diesen mathematisch offenlegen. Der PlayStation-3-Hack (fail0verflow, 2010) nutzte Sonys konstante Nonce in ECDSA-Signaturen aus – wodurch der private Schlüssel aus nur zwei Signaturen extrahiert werden konnte. Bitcoins ECDSA-Signatur verwendet deterministische Nonces (RFC 6979), um diese Schwachstelle gezielt zu verhindern.

UPay-Tipp: Wenn dein MetaMask Die Transaktion hängt seit Stunden im Status „Ausstehend“. Überprüfen Sie Ihre aktuelle Nonce auf Etherscan (Ihre Adresse → Transaktionen → Nonce der ausstehenden Transaktion). Aktivieren Sie die „Erweiterte Gassteuerung“ in den MetaMask-Einstellungen und senden Sie die Transaktion anschließend mit derselben Nonce, aber einem höheren Gaspreis erneut. Dadurch wird die alte Transaktion im Mempool ersetzt. Setzen Sie niemals manuell eine höhere Nonce als Ihre aktuelle ausstehende Nonce – dadurch entsteht eine Lücke, die alle zukünftigen Transaktionen blockiert, bis diese Lücke geschlossen ist.

Hinweis: Dieser Inhalt dient ausschließlich Bildungszwecken und stellt keine Finanzberatung dar.

Bezahlen — Eine Krypto-Enzyklopädie erstellen

Neuigkeiten & Events