Bitte erklären Sie, warum früher die wiederholten Werte von „R“ in Bitcoin-Transaktionen auftraten.
Diese Transaktion hat beispielsweise eine Wiederholung des Werts „R“: https://www.blockchain.com/btc/tx/19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83
Wenn Sie sich RawTX ansehen: https://btc.com/19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83.rawhex
Wiederholungswert "R":
R = cabc3692f1f7ba75a8572dc5d270b35bcc00650534f6e5ecd6338e55355454d5
Was war der Grund dafür? Erklären Sie den Grund für diesen Fehler?
Der R
Wert ist das Ergebnis der EC-Punkt-Multiplikation zwischen dem k
Wert (bekannt als Nonce) und dem Generatorpunkt der secp256k1-Kurve. Es ist praktisch der öffentliche Schlüssel für k
. Die einzige Möglichkeit, wie sich ein R
Wert wiederholen kann, ist, wenn k
er auch gleich ist. Da es k
sich um eine 256-Bit-Zahl handelt, die vollständig zufällig ausgewählt werden soll, k
sollte sie nicht wiederholt werden, es sei denn, der Zufallszahlengenerator ist defekt.
Wenn man bedenkt, dass dies k
zum Zeitpunkt der Unterzeichnung generiert wird und zufällig sein sollte, können wir daraus schließen, dass derjenige, der sich k
für diese Transaktionen entschieden hat, einen fehlerhaften Zufallszahlengenerator hat, der entweder einen festen Wert oder einen kleinen Wert ausgibt, der die Wahrscheinlichkeit einer k
Wiederholung erhöht. Es gibt keinen triftigen Grund dafür, also kommt dieser Fehler entweder von einem fehlerhaften RNG oder einem völligen Missverständnis der Funktionsweise von ECDSA.
Weil r nur von der Zufallszahl k abhängt (zusätzlich zu den Kurvenparametern) und die Wiederverwendung von k, solange die privaten Schlüssel unterschiedlich sind, in Ordnung ist.
Weiterführende Literatur: https://www.maximintegrated.com/en/app-notes/index.mvp/id/5767
MCCCS
Claris
MCCCS
Claris
Pieter Wuille
k
für zwei Signaturen mit privaten Schlüsseln wiederverwenden, die unter Verwendung eines gemeinsamen BIP32-Vorfahren abgeleitet werden, und der Angreifer den xpub kennt, kann er den xprv berechnen. Wirklich, niemals k wiederverwenden.