1

I recently installed Bitcoin Core and let it synchronize just to play around with different buttons in the latest version and see if I still understand it.

One thing I noticed are the Bech32 addresses, which seem to be the main (only?) way of receiving money in latest Bitcoin Core. I think I understood the implications of transactions happening over 1-prefixed-addresses, but the new system got me wondering:

  • if someone sent me some money to my bech32 address, would it end up in one of the 1-prefixed-addresses as well, or should I think of them as of completely separate systems?
  • if not, does a wallet backed up before the transaction took place contain that transaction in it (I think it would if it was a 1-prefixed address).

2 Answers 2

2

No. Since these addresses refer to different output types, they are not interchangeable.

Addresses are shorthand to describe output scripts. Addresses starting with 1… describe Pay to Public Key Hash (P2PKH) outputs, while bech32(m) addresses starting with bc1… describe native segwit outputs (Pay to Witness Public Key Hash (P2WPKH), Pay to Witness Script Hash (P2WSH), and Pay to Taproot (P2TR)). While they all use private keys from the secp256k1 elliptic curve as the underlying secret, they use the keys differently in their locking mechanisms.

Wallets backed up before a transaction took place will never know about that transaction, but they will be able to discover any relevant transactions when they get reconnected to the network and hear about new blocks. Generally, wallets store private keys, and it is possible to derive all output scripts corresponding to the different types from these keys.

Generally, you should not need to worry about how a native segwit address and legacy address are related. Today, almost everyone should be able to send to native segwit addresses. If the sender that's trying to pay you cannot send to bech32 addresses, you should be able to generate a legacy addresses from Bitcoin Core either via the command line or the GUI.

2

Bech32 addresses cover a completely distinct set of outputs, compared to 1... addresses, or 3... addresses

  • Base58 v0 (1...) addresses: pay-to-pubkey-hash (P2PKH) outputs (included in Bitcoin's first release).
  • Base58 v5 (3...) addresses: pay-to-script-hash (P2SH) outputs (defined in BIP13 and BIP16).
  • Bech32 v0 (bc1q...) addresses: pay-to-witness-pubkey-hash (P2WPKH) and pay-to-witness-script-hash (P2WSH) outputs (defined in BIP173 and BIP141).
  • Bech32m v1-... (bc1...) addresses: all other pay-to-witness outputs (only pay-to-taproot - P2TR - for now) (defined in BIP350 and BIP341).

Each of these cover non-overlapping sets of outputs, by design, so there is never more than one address for a particular output. Your wallet decides what type of address to construct (possibly depending in configuration settings, wallet type, ...), you give that address to the payer, and they have to send to the single output corresponding to that address. Sending to anything else will not be considered a valid payment by you, the receiver.

I don't understand your question about the backup. Clearly a backup cannot contain anything that's only created/received after the backup was made.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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