I have an address representing a compressed public address, which bitcoind is recognizing as "ismine":
compressed_address = n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8S
compressed_key = 03c6debc01d8cf1c7eae826b8acb0ba6ff5d37b8d840b2bfc5244cdebab83a6781
> bitcoind -testnet validateaddress n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8S
{
"isvalid" : true,
"address" : "n2HCyN8GWPuc8CrwbiiBASCS7iWku3Ke8S",
"ismine" : true,
"isscript" : false,
"pubkey" : "03c6debc01d8cf1c7eae826b8acb0ba6ff5d37b8d840b2bfc5244cdebab83a6781",
"iscompressed" : true,
"account" : ""
}
I extract the y value from the compressed public keys, and create an address from that (with the same function I wrote for compressed keys):
decompressed_key = 04c6debc01d8cf1c7eae826b8acb0ba6ff5d37b8d840b2bfc5244cdebab83a6781a8b69757635c64ce32eed71115b68174d7241c716b1f76d317c6440635d8bc01
decompressed_address = mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11
The address is valid since if satisfies the curve equation... x, y values are as follows:
x = 89951481645973345162937095289811840492311042685266238084455665220379660150657
y = 76311169247456070080081989221882104208438035444189442719121845261776897752065
y * y = 107822876231389859288843816887520488062823501023166616425651229464214081607136
x * x * x - 7 = 107822876231389859288843816887520488062823501023166616425651229464214081607136
However, bitcoind does not recognize the decompressed address as "ismine".
> bitcoind -testnet validateaddress mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11
{
"isvalid" : true,
"address" : "mfjsW5m8CL5EazGBvjutZ4dgJwd6AjHM11",
"ismine" : false
}
I don't understand... the only difference between the two is that one key is compressed to save 32 bytes... the private key should be the same! Shouldn't they be interchangeable? Does this mean I won't be able to spend to spend coins send to the de/uncompressed address?