3

I'm very curious about the reasons people keep their wallet addresses private. I don't understand, some people just post them publicly and nothing bad ever seems to happen.

I am involved with a project that uses randomly generated new wallet addresses every time you click the button. I am not sure if this is native to the Blockchain or just a feature of both wallets I use, but everyone seems to like it and idk why.

Personally, I want to just smash the button until I find an address with some aesthetic/memorable strings. But I have no idea if this is a bad idea, wastes resources, etc.

I'm curious about the longevity of these addresses. Is each address permanently assigned to my wallet? How does that work? I thought on Bitcoin, your whole "identity" was your wallet address, so who keeps track if that changes every time you click? I know there is some insane number of possible hashes, but what happens if it runs out? And can't someone still try to "hack" you or whatever if they have your old address? So why make a new one?

I want to make sure I keep this relevant to Bitcoin, so I'm also interested in learning more about if people commonly use different BTC addresses for diff things, or like shell layers where you have a few wallets you share with people and then forward all your coins to a secret wallet to hodl, and then send them to yet a third set of wallets before spending them on anything.

Also, people talk about privacy a lot, but if I know your wallet address, can't I see your total BTC holding (at that wallet) as well as any & all transactions you've made and what wallets you transacted with? In theory, couldn't someone track down and identify identities of core wallet users (say a porn company that accepts crypto) and then make a list of every wallet that has paid them, and then try to make further deductions and dox the customer base? Maybe this is impossible but it is a thought that keeps me up at night and I would like some clarity.

tl;dr: why no same hash?

1
  • A Wallet does not have one address these days, the HD type you are talking about can have many thousands.
    – HansBKK
    Commented Mar 22, 2022 at 1:42

2 Answers 2

7

Questions about altcoins are off-topic here, but the answer is essentially universal: if you re-use addresses, especially because of a desire to think of them as a long-term identity, you're effectively giving up any hope of even rudimentary on-chain privacy. Privacy is hard, and certainly not a given even without address reuse, but with it, there is little hope to be begin with.

Another frequently brought up argument, though cargo-cult in my opinion, is that address reuse also has meaningful security implications. The reasoning is that if public keys aren't exposed, they aren't subject to attacks to compute the corresponding private key (the hash would need to be reversed first, which is presumed to be (even) hard(er)). My counter is that most interesting use cases of Bitcoin already involve sharing public keys with non-trusted parties, so we need to make sure that things remain secure even with revealed public keys anyway - and there is no reason to assume that isn't the case.

There have been some efforts to move away from the term "address" for this very reason - addresses do have a notion of permanence / identity associated with them, and some believe that thinking about them differently (e.g. by calling them "invoice identifiers") may improve the situation. I believe efforts like this are well-intended, but the time to change the terminology was about 10 years ago. Now it's so ingrained it's unlikely to swap it out.

That said, most wallet software these days does a pretty good job at not reusing addresses, e.g. by giving out a new address every time one is requested, and making it hard to list historical ones. Most reuse I believe is due to services/"hosted" wallets where users have accounts, where changing addresses is less common than in wallet software proper.

There is no financial impact on the user from address cycling: using a new address for every incoming payment has no higher (or lower, for that matter) fee associated with it than always using the same one, due to the fact that Bitcoin uses a UTXO model. The downsides of address cycling are purely in convenience, user experience, and implementation complexity:

  • Wallet software needs to be more complicated to maintain possibly large sets of addresses. While the UX likely makes it seem that the address changes every time, you do want it to actually keep around the ability to receive coins to all old addresses and spend those, because who knows how long the sender keeps it around before using it (or worse, reuses it).
  • Backups are more complicated by the fact that newly generated addresses need to be recoverable. This is what led to the development of deterministic key wallets, which generate all keys/addresses from a single seed or master key. That means that one backup suffices for all future addresses too. A downside, as mentioned in RedGrittyBrick's answer, is what is called the gap limit: wallets will only look ahead a limited number of "future" addresses, which may result in missed recovery if a backup is restored with 100s or 1000s of previously given-out-but-never-received-to addresses.
  • User understanding is complicated, especially when presented with block explorer websites, which use an "address balance" model. The more private wallet-is-a-collection-of-otherwise-unlinkable-addresses model effectively used by constantly-refreshing-address-wallets doesn't match neatly to this address balance model, leading to complications in understanding, and sometimes lost funds (because people e.g. backup only the private key to "their" single address, not knowing they also need the private keys for addresses that the wallet automatically sends change to.
4

Gap Limits

I want to just smash the button until I find an address with some aesthetic/memorable strings. But I have no idea if this is a bad idea, wastes resources,

That could create problems when recovering the wallet from a seed-phrase. Newly restored wallets will generate a fixed number of addresses and look for transactions at those addresses. If there is a gap of many addresses with no transactions the wallet will stop looking. This is called the gap limit. If you mash that button too many times you will create a gap bigger than the gap limit and your restored wallet may not see all the transactions it needs to know of in order to calculate the amount of money under your control (your "balance")

Address Lifetime

I'm curious about the longevity of these addresses.

Addresses never expire. They last forever.

However, occasionally Bitcoin introduces a new type of transaction such as Segwit/Bech32. These replace older types. It is conceivable that eventually older types will not be popular and fade into disuse. Wallets might then stop supporting older types. this seems to me to be unlikely in the lifetime of anyone reading this.

As Pieter pointed out in his comment. People sometimes do thing such as transfer money to a new wallet and throw the old one away along with its private keys for the old addresses. This would mean that from then on, money sent to the old address would not be spendable by the intended recipient. People in general would have no way of telling that an address is one for which nobody has the private key. The Bitcoin network would still accept transactions that paid to the old address.

Address ownership

Is each address permanently assigned to my wallet?

No. They are just random looking numbers that can be produced from a pair of numbers called a private key and public key. No one other than the address "owner" needs to know anything about who generated an address. To the rest of they world an address is just a random number. One that has a mathematical relationship to another secret number which allows the existence of that relationship to be proven without divulging the secret.

No one keeps track of who owns every address used in Bitcoin.

Large numbers

what happens if it runs out?

There are too many to ever run out. Even if ten billion people generated a billion a second for a billion years.

Hacking

can't someone still try to "hack" you or whatever if they have your old address?

Addresses are of no significant use to hackers.

Address re-use is a privacy issue.

Privacy

if I know your wallet address, can't I see your total BTC holding (at that wallet) as well as any & all transactions you've made and what wallets you transacted with?

That's why you generate a new address for each transaction. Other people can't easily tell from the transaction journal (blockchain) which addresses are in the same wallet.

Insomnia

it is a thought that keeps me up at night

Maybe try not to buy goods and services from unscrupulous or dishonest people and businesses?

Maybe look into Bitcoin-mixers / Bitcoin-tumblers and wallets that support them?

3
  • Addresses within a wallet certainly last forever, but the wallet might not. E.g. over long periods of time, a receiver may migrate to a new wallet software/provider. So as a sender you shouldn't assume a once-given address will last forever, even though every wallet software essentially should try its best to make the receive address work as long as possible. Commented Mar 21, 2022 at 15:24
  • @Pieter, thanks, good point, answer updated. Commented Mar 21, 2022 at 15:31
  • I just want to clarify that I am not worried about my own purchases or anything. I have no malicious intent but the insomnia is more related to just the theoretical possibilities. I have heard of tumblers and will look into this more, I did not know they even involved wallet support, thank you.
    – xn--gif
    Commented Mar 21, 2022 at 16:43

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.