1

From what I understand, there is initially a seed from which the private keys are derieved and from that the public key respective to each private key is derived.

The public key is essentially the wallet address. So now say I wish to receive 10 BTC from Bob. So Bob makes a transaction "paying 10 BTC to wallet address #####(mine)" and signs it with his private key.

I (or the validators for that matter) can verify it by looking at the digital signature with Bob's public key. And if I have to send 10 BTC to Bob, I do the same as above.

What I don't understand is what is the use for having multiple private keys when just a single one can suffice? (I've read somewhere that wallets act more of a storage for keys than storage for Bitcoins, that's why the doubt).

Also, if there are many private keys (=> public keys => wallet address) pertaining to each transaction, how does it become possible to trace back to the previous transactions as each has a different address?

2 Answers 2

1

From what I understand, there is initially a seed from which the private keys are derieved and from that the public key respective to each private key is derived.

Yes, if the wallet follows BIP 32 (hierarchical deterministic wallets), then this is the case. Some older styles of wallets will just derive random new keys, but this makes it harder to create backups efficiently.

The public key is essentially the wallet address.

Not quite: the public key is hashed to obtain the public address.

I (or the validators for that matter) can verify it by looking at the digital signature with Bob's public key.

Correct, the public key is included in the transaction data, so that the signature can be verified.

Note: you should be a validator (meaning, you run a node that checks to ensure transactions are valid), otherwise you're trusting someone else to do this. Miners work to confirm transactions, which is different in an important way.

What I don't understand is what is the use for having multiple private keys when just a single one can suffice?

If you only stored one private key, then you would only be using one address, which is very bad for your privacy (and the privacy of those you transact with).

I've read somewhere that wallets act more of a storage for keys than storage for Bitcoins, that's why the doubt

That is true. Bitcoins themselves are not 'stored in a wallet', rather, the history of them is tracked publicly, on the distributed blockchain ledger. It is just the private keys that allow some amount of bitcoin to be spent, that your wallet app will keep track of.

Also, if there are many private keys (=> public keys => wallet address) pertaining to each transaction, how does it become possible to trace back to the previous transactions as each has a different address?

Your wallet will be able to keep track of the history of your transactions without any issue, but third party observers will not be able to (which is the entire point! Privacy is important).

3
  • About the last point, how does it work exactly? I understand that a third party obersvers can follow all of the addresses that are used and where they are sending their bitcoins. He just not know who has he private key for those public keys/addresses? Commented Jan 5, 2022 at 10:00
  • @totalMongot yes, exactly that. Parties to the transaction will know which addresses are theirs. Third party observers can see the addresses, but who controls/owns each address will not necessarily be known to them.
    – chytrik
    Commented Jan 6, 2022 at 7:33
  • thanks you for the answer :) Commented Jan 6, 2022 at 17:21
3

The main reason to use multiple private keys is for privacy. Say you receive 1 BTC at address A, and you want to send 0.1BTC to someone at address X. (We'll neglect tx fees for easy math).

0.1 BTC Address A -> Address X
0.9 BTC Address A -> Address B

Now assume you were trying to watch any spending activity from the User at Address A, how would you know whether they own Address X or Address B? If you send change back to Address A, then it is easy to continue to track the user's spending after the 1st transaction. So, wallet applications keep track of all of the newly generated change addresses (since it generated them), so they can be aware of all the user's unspent Bitcoin.

Another reason might be to manage multiple accounts for accounting purposes. BIP32 is a common standard for generating sub-accounts using the same master key pair.

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.