Warum erkennt Bitcoin die unkomprimierte Version meiner Adresse nicht?

Ich habe eine Adresse, die eine komprimierte öffentliche Adresse darstellt, die Bitcoin als "Ismine" erkennt:

compressed_address = n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8S
compressed_key     = 03c6debc01d8cf1c7eae826b8acb0ba6ff5d37b8d840b2bfc5244cdebab83a6781
> bitcoind  -testnet validateaddress n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8S
{
    "isvalid" : true,
    "address" : "n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8S",
    "ismine" : true,
    "isscript" : false,
    "pubkey" : "03c6debc01d8cf1c7eae826b8acb0ba6ff5d37b8d840b2bfc5244cdebab83a6781",
    "iscompressed" : true,
    "account" : ""
}

Ich extrahiere den y-Wert aus den komprimierten öffentlichen Schlüsseln und erstelle daraus eine Adresse (mit derselben Funktion, die ich für komprimierte Schlüssel geschrieben habe):

decompressed_key     = 04c6debc01d8cf1c7eae826b8acb0ba6ff5d37b8d840b2bfc5244cdebab83a6781a8b69757635c64ce32eed71115b68174d7241c716b1f76d317c6440635d8bc01
decompressed_address = mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11

Die Adresse ist gültig, da wenn die Kurvengleichung erfüllt ist... x-, y-Werte sind wie folgt:

x = 89951481645973345162937095289811840492311042685266238084455665220379660150657
y = 76311169247456070080081989221882104208438035444189442719121845261776897752065
y * y         = 107822876231389859288843816887520488062823501023166616425651229464214081607136
x * x * x - 7 = 107822876231389859288843816887520488062823501023166616425651229464214081607136

Bitcoin erkennt die dekomprimierte Adresse jedoch nicht als "ismine".

> bitcoind  -testnet validateaddress mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11
{
    "isvalid" : true,
    "address" : "mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11",
    "ismine" : false
}

Ich verstehe nicht ... der einzige Unterschied zwischen den beiden besteht darin, dass ein Schlüssel komprimiert wird, um 32 Bytes zu sparen ... der private Schlüssel sollte derselbe sein! Sollten die nicht austauschbar sein? Bedeutet dies, dass ich keine Münzen ausgeben kann, die an die de/unkomprimierte Adresse gesendet werden?

Antworten (1)

Komprimierte und unkomprimierte Schlüssel werden völlig getrennt behandelt. Gelder, die an die komprimierte Punktadresse gesendet werden, stehen einem Client, der den unkomprimierten Schlüssel in seiner Brieftasche hat, nicht zur Verfügung.

Das heißt, obwohl mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11sie n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8Sdenselben privaten Schlüssel haben, werden sie als völlig getrennt vom Bitcoin-Netzwerk behandelt. Idealerweise würden sie gleich behandelt, aber komprimierte ECDSA-Schlüssel wurden von Satoshi ursprünglich einfach nicht berücksichtigt, es handelt sich nur um eine neuere Ergänzung (wahrscheinlich von SIPA) zum Client.