As far as I understand, if we have one private key, we're able to create 4+ matching addresses. I'll use famous int(1) as a private key for example here. Then we can create:

  • P2PKH from the compressed key: 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH
  • P2PKH from the UNcompressed key: 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
  • Bech32 from the compressed key: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

When I check transactions of those addresses e.g. at https://www.blockchain.com/explorer/, looks like the transaction lists from all of them are different.

How can it be, if the private key is the same?

There's one guess I have, maybe stupid: when the owner obtains btc (either by mining or regular transaction), they arrive to one of those addresses. And despite the private key being the same, btc cannot be spent from other addresses. If it's correct, then we have three+ almost independent accounts that are managed by the same private key.

How it really works?

1 Answer 1


How it really works?

I think the easiest way forward is to cling firmly to the truth that addresses are a fiction. They are an occasionally convenient way to refer to a locking script. Too much focus on addresses will lead you away from the underlying truth.

If you think about locking scripts instead of addresses, I would expect things to become clearer.

From one pair of private-key and public-key, there are various ways of using the public key to construct different types of locking script that can be unlocked using the private key. There are several different standard locking scripts in which a public key is used.

An owner of a key-pair can separately track transactions that contain specific but distinct types of locking scripts involving the same underlying keys.

I believe blockchain explorers mostly index by abstract of locking script - so they produce separate lists of transactions for each unique locking script.

the transaction lists from all [the different address types] are different. How can it be, if the private key is the same?

The truth is that transactions don't pay to a specific private key, they pay to anyone who can unlock a locking script. Sometimes that unlocking might involve no private keys, sometimes that might involve several private keys.

Additionally, some types of locking script disclose a public key but some dont. So an explorer doesn't know if some types of transactio-output involve the same key pair. So the explorer can't reliably group transaction-outputs by common private key.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.