How are different Addresses generated from the same Private key?

With Bitcoin, a single private key will have associated compressed and uncompressed private/public key pairs. Uncompressed public key addresses are larger in size than newer compressed public addresses. (Contrast 1b and 2b below.) Uncompressed and compressed public keys shall have different associated Bitcoin addresses. Private keys encoded in wallet input format (WIF) will implicitly communicate to a hot wallet if uncompressed or compressed keys are to be used. A Blockchain records funds sent to either address uncompressed or compressed independently.

Here are illustrative examples using libbitcoin's bitcoin-explorer (bx) command line interface using one of the absolute worst hexadecimal encoded private keys in the world 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff that is obviously 256 bits in length.

1a) Uncompressed Private Key WIF-encoded:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | bx base58check-encode -v 128

5HpHb4pzVWwsDAHNwwUS3VViCkwzcutaSJ57T4GNFw5UBNLSrRV

1b) Uncompressed Public Key:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | bx ec-to-public -u

040d47568a5e517067a2836c3823fbc58169a7662bfae934a4d41da3e23c98d816e7202dd702ffe038147f78aee4973a581972960a1460312ffb6f3f0f13d4a52c

1c) Uncompressed Public Address:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | bx ec-to-public -u | bx ec-to-address -v 0

1NGoV1EGZrwM7yvUYqRC7TMBMj7ftpjR2B

2a) Compressed Private Key WIF-encoded:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff01" | bx base58check-encode -v 128

KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp

2b) Compressed Public Key:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | bx ec-to-public

020d47568a5e517067a2836c3823fbc58169a7662bfae934a4d41da3e23c98d816

2c) Compressed Public Address:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | bx ec-to-public | bx ec-to-address -v 0

1PbStXjfDNBU6FZA2iSeisVWwCFN9GK1eQ <- No bot was fast enough here to intercept my experimentation

SHARE