Ich generiere einen öffentlichen Schlüssel aus meinem privaten Schlüssel. Ich habe in Java-Skript und C #. aber generierte öffentliche Schlüssel sind anders. Mein Code in c# (KeyCore.NET):
PrivateKey pv = new PrivateKey(Globals.ProdDumpKeyVersion, "KwY7eRvXXFd7HPX4Zuv8STZMLsVSe2X22HkU24Av84W1Cb7Rd5Yh");
PublicKey pb = pv.PublicKey;
Console.WriteLine(pb.ToString());
Ergebnis für C#-Code ist 16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdH
und das Ergebnis für Javascript-Code ist16reZXagkyToongduimD25SEerXwP3MQ4n
Ich habe KeyCore.NET und Bitadresse verwendet
Einem privaten Schlüssel entspricht ein eindeutiger öffentlicher Schlüssel.
In Ihrem Fall ist 16reZXagkyToongduimD25SEerXwP3MQ4n eine Adresse (der Hash + die Codierung eines öffentlichen Schlüssels).
Die base58-Nummer 16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdH
ist eine base58Check-Kodierung des (komprimierten) öffentlichen Schlüssels:
030d4018f164d58e41e0c5fb99eb5ec26b4f21fc8ad0db726d51a7cce60c75df0a
die entspricht KwY7eRvXXFd7HPX4Zuv8STZMLsVSe2X22HkU24Av84W1Cb7Rd5Yh
, und deren Adresse ist 16reZXagkyToongduimD25SEerXwP3MQ4n
. Beachten Sie, dass Ihr privater Schlüssel eigentlich etwas mehr als ein privater Schlüssel ist. Es ist eine 38-Byte-Zahl, die eine base58Check-Codierung einer Zahl ist, die 34
Bytes enthält (anstatt nur 32 für einen geheimen Schlüssel). Am Anfang befindet sich ein zusätzliches Versionsbyte 0x80
, das angibt, dass der private Schlüssel für das Haupt-Bitcoin-Netzwerk (und nicht für ein Testnetzwerk) verwendet werden soll. Es gibt eine zusätzliche0x01
Suffix-Byte am Ende (kurz vor den 4 Prüfsummen-Bytes), die angeben, dass der diesem privaten Schlüssel zugeordnete öffentliche Schlüssel in komprimierter Form (33 Bytes) und nicht in unkomprimierter Form (65 Bytes) generiert werden soll. Während es also stimmt, dass Ihre WIF-Darstellung Ihres geheimen Schlüssels zu einer eindeutigen Adresse führt (eine, die einem komprimierten Schlüssel im Hauptnetzwerk entspricht), kann das tatsächliche 32-Byte-Geheimnis möglicherweise zu 4 Adressen führen (abhängig vom Komprimierungsstatus der öffentlicher Schlüssel und Art des Netzwerks).
16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdH
in eine Adresse 16reZXagkyToongduimD25SEerXwP3MQ4n
mit Namespace BitcoinAddress
-Klasse Bitcoin.KeyCore
! eigentlich ist es für den menschlichen Lesekomfort. Ich stimme gerne ab, kann aber nicht!
Arman
16w4zZWjWnhfEasJcSbfDQeHJRk1LytPHF5ir1ZS9mtUD5adsdH
? ist es falsch?Hartmut