Definition „Number used once“ Was ist eine Nonce?

Von Blue Floyd 3 min Lesedauer

Anbieter zum Thema

Die Nonce wird in Blockchain-Anwendungen genutzt, um Transaktionen zu validieren. Damit hat sie einen wichtigen Anteil an der Sicherheit dieser kryptographischen Systeme.

Die Nonce sorgt für Ordnung innerhalb einer Blockkette, lässt sich aber auch aktiv für sicherheitsrelevante Aktivitäten nutzen.
Die Nonce sorgt für Ordnung innerhalb einer Blockkette, lässt sich aber auch aktiv für sicherheitsrelevante Aktivitäten nutzen.
(Bild: Gerd Altmann / Pixabay)

Der Begriff Nonce ist zusammengesetzt aus dem englischen „number used once“ und bezeichnet somit eine Ziffer, die nur ein einziges Mal verwendet wird. Von Bedeutung ist die Nonce in der Blockchain-Technologie: Dort wird die Nummer allen Informationen, die sich in einem Block befinden, hinzugefügt.

Ziel ist es unter anderem, Transaktionen zu sequenzieren und damit in die richtige Reihenfolge bringen zu können. Das Herausfinden der Nonce ist ein wichtiger Bestandteil des Mining-Prozesses in Proof of Work-Systemen. Die Nonce leistet damit einen essenziellen Anteil an der Absicherung der Kommunikation zwischen zwei Parteien.

Hintergrund: Warum existiert die Nonce?

In Blockchain-Anwendungen werden Transaktionen von einer Adresse an eine andere Adresse weitergeleitet. In der Praxis könnte dies so aussehen:

  • 1. In einer beliebigen Kryptowährungswallet, die zum Beispiel die Währung ETH beinhaltet, werden drei Überweisungen durchgeführt.
  • 2. Die ETH-Blockchain bearbeitet neue Überweisungen in einem Block im Durchschnitt alle zehn Sekunden.
  • 3. Würden drei Überweisungen in weniger als zehn Sekunden durchgeführt werden, wüsste die Blockchain nicht, welche dieser Überweisungen Vorrang hat.

Aus Punkt 3 ergibt sich, dass eine Methode notwendig ist, die Überweisungen innerhalb desselben Blocks sequenzieren kann. Dies ist die Nonce: Die einmalig genutzte Nummer weist allen Transaktionen einen Wert zu, der bestimmt, welche Transaktion Vorrang hat. Ein einfaches Beispiel wären Transaktionen mit dem Titel „Transaktion-1“ und „Transaktion-2“, wobei die Ziffern jeweils die Nonce darstellen. Durch dieses System „weiß“ die Blockchain, welche Transaktionen priorisiert werden müssen.

Probleme der Nonce-Priorisierung

Die Nonce sichert die Reihenfolge von Transaktionen, was in einigen Fällen Probleme verursachen kann. Transaktionen über eine Blockchain basieren auf einem Auktionsverfahren. Wer mehr bietet, wird bei Transaktionen - deren Volumen pro Zeiteinheit (Block) limitiert ist - bevorzugt. Es kann daher zu folgender Konstellation kommen:

  • 1. Eine Transaktion mit einer Nonce von 1 wird zuerst abgesendet. Die Bezahlung (in Gas-Einheiten für das ETH-Netzerk) für diese Transaktion ist niedrig, weshalb sie in der Prioritätenliste der Blockchain nach hinten verschoben wird.
  • 2. Drei andere Transaktionen mit Nonce-Werten von 2, 3 und 4 werden abgesendet. Die Bezahlung in Gas ist hoch, weshalb sie von der Blockchain eigentlich priorisiert werden.

Die drei folgenden Transaktionen würden trotz der hohen Bearbeitungsgebühr nun „steckenbleiben“, da Nonce 1 noch nicht bearbeitet wurde. Diese muss zuerst vom Netzwerk abgesegnet werden, bevor alle folgenden Transaktionen verabschiedet werden. Eine Bearbeitung würde in diesem Beispiel erst dann erfolgen, wenn das Netzwerk weniger intensiv genutzt wird. Dies führt zu geringeren Transaktionsgebühren, sodass Nonce 1 bearbeitet werden kann.

Verwendung der Nonce für Stornierung und Beschleunigung

Die Nonce kann von Nutzern aktiv genutzt werden, um abgesendete Transaktionen zu stornieren oder zu beschleunigen:

1. Stornierung: Um eine Transaktion, die auf Absegnung wartet, abzubrechen, können Anwender eine weitere Transaktion mit derselben Nonce absenden. Dieses Verfahren funktioniert jedoch nicht immer, denn manchmal kann dies dazu führen, dass alle Transaktionen mit identischer Nonce genehmigt werden. Dies kann zu erheblich höheren Ausgaben führen als geplant.

2. Beschleunigung: Um eine ältere Transaktion zu beschleunigen, können Nutzer dieselbe Transaktion mit derselben Nonce und einem höheren Gas-Wert noch einmal absenden. Dies führt wahrscheinlich zu einer schnelleren Bearbeitung der neuen Transaktion, während die ältere abgebrochen wird.

Die Nonce in Proof-of-Work-Systemen

In Blockchains wie Bitcoin und den meisten PoW-Systemen ist die Nonce außerdem in Verwendung, um Informationen in einem Block zu validieren. In den Metadaten jedes Blocks befinden sich zahlreiche Informationen, wie Hash-Werte, Zeitstempel, die Mining-Schwierigkeit und mehr - und die Nonce.

Während des Mining-Prozesses von Bitcoin versuchen Miner, diese Nonce herauszufinden. Sie ist Teil des Hash-Wertes, der gefunden werden soll, um einen Block zu verifizieren. Stimmen der Hash-Wert des Blocks und der errechnete Hash-Wert des Miners überein, ist somit auch die Nonce korrekt. Stimmt das Ergebnis nicht, wird die Nonce bei der Berechnung um einen Wert von 1 erhöht und der Prozess beginnt von vorne. Der Miner, der zuerst die korrekte Nonce findet, wird den Block validieren und dafür in Bitcoin bezahlt werden. Die Nonce erreicht bei Bitcoin Längen von Millionen bis zu Billionen von Ziffern.

Zusammenhang zwischen Nonce und Schwierigkeitslevel

Die Nonce beim ersten Versuch zu finden, ist extrem unwahrscheinlich. Während des Mining-Prozesses müssen Miner in der Regel eine sehr hohe Anzahl an Hash-Werten testen, bis sie den korrekten Wert gefunden haben. So lässt sich die Blockgeschwindigkeit beeinflussen, die immer ungefähr stabil bleiben sollten. Finden Miner die Nonce und den Hash-Wert zu schnell - durch zu hohe Rechenleistung im Netzwerk -, wird die Schwierigkeit automatisch erhöht.

(ID:49026985)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung