Öffentliche ECDSA-Schlüssel scheinen immer mit 0x02
/ 0x03
/ 0x04
/ 0x05
1 zu beginnen , gefolgt von entweder 32 Bytes oder 64 Bytes.
Ich stoße jedoch auf einige öffentliche Schlüssel mit dem Präfix 0x00
.
Beispielsweise enthält die Quellausgabe der Transaktion 5c7c65bb950d3605cc67bd02c29e84cc14dfaa80626ef6a575132c7ce7979d2f zwei öffentliche Schlüssel:
037953dbf08030f67352134992643d033417eaa6fcfb770c038f364ff40d761588
0014fa6851313844da08b6a539aff5e74e705b7465fad0fc5ceeccae707995b846
Bei der Einspeisung in die EC_KEY_oct2key
Funktion von OpenSSL 1.1.1 schlägt der zweite öffentliche Schlüssel direkt fehl.
Ein weiteres Beispiel ist die Transaktion f0020466ca75caa648cdc8364f297bda7bb06329bec5305ffb59ea2ea348ac39 , die eine Ausgabe verwendet, die einen öffentlichen Schlüssel wie folgt auflistet:
0029a38fa2eaf8e67481c47eeeaeb625e6d426eb78f3b9e0728a4679370ce5ac96
Diese 0x00
öffentlichen Schlüssel scheinen immer mit der OP_CHECKMULTISIG
Validierung zu kommen und blockieren sie niemals, da ein anderer öffentlicher Schlüssel gültig wäre.
Was sind diese Schlüssel und was sollte ein Kunde damit machen?
Dies sind keine Schlüssel, sondern willkürliche Daten.
Bis Bitcoin 0.16 war ein ungültiger öffentlicher Schlüssel im bloßen Multisig erlaubt , solange er die richtige Größe hat. Mit dem kommenden 0.17 ist dies nicht mehr möglich , und Transaktionen wie die, mit denen Sie verknüpft sind, werden als nicht standardmäßig betrachtet (beachten Sie, dass dies ihre Aufnahme in einen Block nicht verhindert, und sie sind immer noch gültig, wenn sie enthalten sind).
Menschen haben oft solche Tricks verwendet, um Daten in die Blockchain einzubetten. Zum Beispiel ermöglicht die Bereitstellung von 1 gültigen und 1 ungültigen Schlüssel in einer 1 von 2 Multisig jemandem, 33 Bytes Daten einzubetten, ohne die in der Brieftasche eingeschlossenen BTC zu opfern.
Ein extremeres Beispiel dafür ist tx fc200f9cef8faf8f76756b5d02081061a1fd22ec1d580f778c12373e12a56016 , das "Schlüssel" wie enthält 100000000000000000000000000000000000000000000000000000000000000000
.
(Beispiel tx aus dieser Ausgabe )
Andreas Bläsus
0x02
oder voranstellen0x03
?Raghav Sood