Nonce
Nonce («number that can only be used once») ist ein Einmal-Code, eine dynamische Überwindung oder Pseudozufallsart. Es wird verwendet, um die Übertragung hauptsächlich zu biopsieren, um die Macht der Reproduktion zu nehmen.
Im Bitcoin-Mining-Prozess besteht das Ziel darin, unter einer Zielnummer einen Hashwert zu finden, der anhand der Schwierigkeit berechnet wird. Proof-of-Work in Bitcoins Mining benötigt eine Eingabe bestehend aus Merkle Root, Timestamp, vorherigem Block-Hash und wenigen anderen Dingen plus einer Nonce, die eine vollständige Zufallszahl ist. Wenn die Ausgabe ergibt, dass Hash kleiner ist als der Ziel-Hash, gewinnt man den Block und der Konsens ist erreicht. Sie müssen alle möglichen Nonce Brute erzwingen, um glücklicherweise einen Hash zu finden, der kleiner als der Ziel-Hash ist.
Beschreibung
Der Server generiert das Nonce und sendet es an den Client. Der Client verwendet den empfangenen Code, fügt ihn vor der Verschlüsselung zum Kennwort hinzu, verschlüsselt die empfangene Zeichenfolge und gibt die resultierende Nachricht an den Server zurück. Der Server entschlüsselt die Nachricht von der empfangenen Zeichenfolge, um die bekannte Nonce zu subtrahieren, und verifiziert das Passwort. Diese Nonce wird nur einmal verwendet. Alle nachfolgenden Übertragungen von Passwörtern mit derselben Nonce werden vom Server abgelehnt. Ein Angreifer, der eine Nachricht mit einem verschlüsselten Kennwort abfängt, kann nicht darauf zugreifen.
Oft enthält Nonce einen Zeitstempel, um die Lebensdauer der Nonce zu begrenzen, aber dies erfordert eine Synchronisation zwischen dem Server und dem Client. Nonce, definiert durch den Client (“cnonce”), kann auch zur Verbesserung der Sicherheit verwendet werden.
Nonce wird oft basierend auf der Systemzeit von einer ausreichend genauen Zeitstempelquelle erzeugt.
Nonce in Bitcoin
Das “Nonce” in einem Bitcoin-Block ist ein 32-Bit-(4-Byte) Feld, dessen Wert so gesetzt ist, dass der Hash des Blocks eine Folge von führenden Nullen enthält. Der Rest der Felder darf nicht geändert werden, da sie eine definierte Bedeutung haben.
Jede Änderung an den Blockdaten (wie zum Beispiel die Nonce) wird den Block-Hash völlig anders machen. Der resultierende Hash muss kleiner als der aktuelle Schwierigkeitswert sein. Es muss eine bestimmte Anzahl von führenden Null-Bits haben, um kleiner zu sein. Da diese Berechnung Zeit und Ressourcen erfordert, ist die Darstellung des Blocks mit dem korrekten Nonce-Wert ein Arbeitsnachweis.
Bitcoin-Gerät
Nonces werden in Proof-of-Work-Systemen verwendet, um die Eingabe für eine kryptografische Hash-Funktion zu variieren. Es hilft, einen Hash für eine bestimmte Eingabe zu erhalten, die bestimmte willkürliche Bedingungen erfüllt. Es wird viel schwieriger, einen “wünschenswerten” Hash zu erstellen, als ihn zu verifizieren.
Für Bitcoin Nonce beispielsweise verwendet der Arbeitsbeweis Hashfunktionen. Es wurde als Mittel zur Bekämpfung von E-Mail-Spam betrachtet, indem E-Mail-Absender gezwungen wurden, einen Hash-Wert für die E-Mail zu finden. Es enthielt einen Zeitstempel, um die Vorberechnung nützlicher Hashes für die spätere Verwendung zu verhindern. Es hatte eine willkürliche Anzahl von führenden Nullen, indem es die gleiche Eingabe mit einer großen Anzahl von Nonce-Werten hashte, bis ein “wünschenswerter” Hash erhalten wurde.
Golden Nonce
Eine goldene Nonce im Bitcoin-Mining ist eine Nonce, die zu einem Hash-Wert führt, der niedriger ist als der Zielschwierigkeitsgrad. In vielen praktischen Mining-Anwendungen ist dies auf jede Nonce mit 32 führenden Nullen vereinfacht [1], wobei ein sekundärer Test prüft, ob der tatsächliche Wert niedriger ist als die Zielschwierigkeit.