Hi guys. Just wandering if their is a tool, script or method for finding the uncompressed public key of Bitcoin address. I have heard that you can if an addressed has sent funds. I haven't got a clue on how to find this information. Thanks
An address that has never spent any coins hasn't revealed its public key. Public keys are hashed multiple times to get our addresses. Specifically, these are the steps of how we end up with an address:
1) We generate a 256-bit private key.
18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725
2) We, then, perform
ECDSA to get our public key (compressed):
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
(Compressed means only the x coordinate. We don't have to carry the
y since it can be calculated from
y2 = x3 + 7. Since
y2 returns 2 different values, we use the prefix
02 or
03 in front of the compressed public key to determine if
y is odd or even)
3) We hash that compressed public key with
SHA-256:
0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98
4) After that, we perform
RIPEMD-160 hashing to the SHA-256 result:
f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
5) Add version byte in front of RIPEMD-160 hash (
00 for Main Network):
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
6) Again, SHA-256 to the previous result:
ad3c854da227c7e99c4abfad4ea41d71311160df2e415e713318c70d67c6b41c
7) We hash the SHA-256 result with SHA-256 again:
c7f18fe8fcbed6396741e58ad259b5cb16b7fd7f041904147ba1dcffabf747fd
8) The first 4 bytes of the last SHA-256 result is address' checksum:
9) Extend the RIPEMD-160 hash from part 5 with these 4 bytes:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31c7f18fe8
10) Convert this to
base58 and here you go:
1PMycacnJaSqwwJqjawXBErnLsZ7RkXUAs
[
from bitcoin.it]
Got a little off-topic, but anyway. As far as I know, you can find the uncompressed public key from the scriptSig of a transaction (P2PKH address).
Ok I get that but the full public key is 130 characters. Is it the first 65 (X value)
You can do it pretty easily here:
iancoleman.io/bitcoin-key-compression. You can also convert compressed public keys to uncompressed with the equation I mentioned above.