Nonce
Was ist eine Nonce in der Blockchain?
Nonce (wörtliche Bedeutung – einmalig) ist eine Möglichkeit, Transaktionen auf der Ethereum-Blockchain und anderen Smart-Contract-Plattformen zu sequenzieren und zu trennen. Im Allgemeinen wird sie in der Kryptographie als sich nicht wiederholende Zahl zur Sicherung der Kommunikation verwendet.
Eine Ethereum-Wallet kann mehrere Transaktionen von einem Konto ohne große Verzögerung untereinander an das Mainnet übertragen. Daher ist ein Mechanismus erforderlich, der bestimmen kann, welche Transaktion zuerst verarbeitet wird. Andernfalls würde es zu Störungen durch widersprüchliche Transaktionen im Zusammenhang mit der Übertragung des Kontostands kommen.
Wenn beispielsweise eine übertragene Transaktion einen Nonce-Wert von 2 hat, muss sie zuerst vor der Transaktion mit dem Nonce-Wert 3 verarbeitet werden. Das Ethereum-Mainnet ist so konzipiert, dass eine Transaktion mit höherem Nonce-Wert nicht einbezogen werden kann in beliebigen Blöcken, bis die davor liegenden Blöcke gelöscht und in der Kette abgewickelt werden.
Allerdings kann es bei diesem Prozess zu Problemen kommen, denn wenn eine Transaktion mit einem niedrigeren Nonce-Wert hängenbleibt (aufgrund der Gasmenge), würden auch alle danach empfangenen Transaktionen mit höheren Nonce-Werten hängen bleiben.
Auch der Prozess der Transaktionsstornierung und Transaktionsbeschleunigung im Ethereum-Netzwerk basiert auf „Nonce“. Wenn ein Benutzer beispielsweise eine Transaktion stornieren möchte, kann er eine Transaktion mit derselben Nonce-Nummer wie die Transaktion, die er stornieren möchte, an sein eigenes Wallet senden. Dies ist jedoch nicht immer garantiert, denn wenn die Nonce gleich ist, kann es sein, dass jede Transaktion zufällig genehmigt wird.
Falls eine Transaktion stecken bleibt und nicht genehmigt wird, können Benutzer den Gaspreis erhöhen und dieselbe Transaktion mit derselben Nonce-Nummer senden. Da die Nonce-Nummer trotz der Erhöhung der Gebühr dieselbe ist, besteht eine höhere Wahrscheinlichkeit, dass diese Transaktion validiert wird. Bei einigen Wallets sind beide Funktionen automatisiert.