Bitcoin addresses, passwords, & Wallets

Last update:  Jan. 4, 2023


Bitcoin addresses

Earlier we mentioned that Bitcoin is sent to an address, similar to a PayPal or Venmo address, or a bank account number.  In fact, Bitcoin addresses differ from those in some significant ways.  First, you'll typically have only one PayPal or Venmo address, and one bank account number, but you can have as many Bitcoin addresses as you want.  In fact, some exchanges and apps insist on generating a new address for you every time you log into the exchange or app to get an address to give to a payer.

If you use an exchange or an app like Coinomi, they take care of managing addresses and the passwords behind them, and you never have to worry about them.  For those who want more technical details, here they are.  (If you don't, then skip to the next section.)

Addresses aren't created or issued by some central authority, because there is no central authority.  Instead, when your exchange or app needs to give you an address, it just generates a random one, in the special Bitcoin format.  It doesn't check to make sure the address hasn't been used, but it doesn't have to, because the number of possible Bitcoin addresses is so incredibly large (2256) that a collision (two people receiving the same random address) is nearly impossible.  If a billion people each generated a billion addresses every second, they would have to run them for billions of years before it would be likely that the same address were generated twice.

In fact, you could create a Bitcoin address yourself, if you have programming skills.  You start with 256 bits of random data, then convert that to hex, then to Bitcoin's special Base58 format, and then go through another transformation.  Here are the technical details.

New Bitcoin addresses aren't "registered" on the network.  The network doesn't know about a new address before it's used, and doesn't need to.  When Bitcoin is sent to a new address, the network processes that transaction normally.

There are three address formats.  The newer formats allow for lower transaction fees.
  1. Legacy addresses begin with 1. (older)
  2. Nested SegWit (P2SH) addresses begin with 3. (newer)
  3. Native SegWit (bech32) addresses begin with bc1. (newest)

Wallets, and where Bitcoin actually exists

Every Bitcoin address is tied to a unique password, which can't be changed.  That's because Bitcoin addresses are based on the password.  When you ask your app or exchange to generate an address for you, it first generates a password, and then it generates the address from that password.  So, knowing the password, we can always easily derive the address.  Of course, it doesn't work in reverse, because if we could easily derive the password from the address, then nobody's coins would be safe.

The password is long and complicated, just like the Bitcoin address.  You have no hope of memorizing it.

If you use an exchange or app to manage your Bitcoins, then the exchange or app manages the address and the password for you, and you never see the password.  Because everything related to Bitcoin is complicated, Bitcoin passwords aren't called passwords; in Bitcoin lingo, they're "private keys".  (And for that matter, Bitcoin addresses are really "public keys", but thankfully there's been a recent trend to call addresses "addresses" rather than calling them "public keys".)

The address/password combo is easy to relate to.  Your PayPal, Venmo, or bank account operates on a similar principle:  you have an address or account number, and the password is how you prove that you own the money they hold.

A Bitcoin wallet is something that holds your addresses and passwords (not the actual Bitcoin).  There are many flavors of wallets:

  1. An exchange
  2. A desktop app
  3. A mobile app
  4. A piece of hardware (usually a little drive that connects to your computer via USB)
  5. A paper wallet, where you print out the address and its password on paper.  (It doesn't have to be paper, you could store address and password in a file on your computer.)
Wallets contain only your addresses and their passwords, not actual Bitcoin.  That's because Bitcoin doesn't actually exist anywhere.  When you spend or sell your Bitcoin by sending it to someone else's address, your exchange or app sends your data to the network.  The Bitcoin network checks that your keys match, and if they do, it processes the transaction.  The way the network knows whether they match is that mathematically, every password can be converted into exactly one unique address.

If that's hard to grok, consider this analogy:  At your favorite bar, you give the owner $100 to prepay for drinks over the next couple of months.  When you come in and order, she knows it's you because she recognizes you, and she deducts the cost of your drink from your credit balance, writing it in his little notebook.  Where does your drink credit exist?  Nowhere, at least nowhere tangible.  It's on the little notebook that the bar owner keeps.  It's the same with Bitcoin: your Bitcoin credit exists in a ledger like the bar owner's notebook.

Since Bitcoins aren't actually stored in your wallet, that means when you read an article about how "A man accidentally threw away a hard drive containing millions of dollars of Bitcoins" (example), that's technically wrong.  The hard drive didn't contain any Bitcoins, it contained the addresses and passwords that would have given him access to those Bitcoins.  On this site, I refer to Bitcoin being stored in various places (when in fact it's not), but now you know, that's not really true.

Why passwords can't be cracked

The passwords are incredibly long, 2256 bits long.  A billion computers running for a billion years, trying to generate every possible password combination, would be unlikely to find a matching password.  However, that's with current technology.  If quantum computers are ever perfected, then all bets are off.

By the way, that means if you accidentally change one of the characters in an address and send the Bitcoin there, it's gone.  It doesn't go to someone else's wallet, because nobody else has a wallet with that address.  The Bitcoin ledger says that that address holds X number of Bitcoins, but no one can access those coins because nobody has the password to that address.