14

When we (hopefully) soft-fork to Schnorr signatures will the address be indistinguishable from bech32 addresses?

1 Answer 1

16

They will be distinguishable, but they will still be bech32 addresses.

The introduction of Schnorr signatures requires a new type of output. Segwit was designed with such extensibility in mind, and it defines 17 version numbers. Currently, only version 0 is used. Segwit v0 outputs with a 20-byte hash are known as P2WPKH outputs, and v0 outputs with a 32-byte hash are known as P2WSH outputs.

A new version number can be introduced, for example v1, and given semantics through a softfork. Schnorr signatures is one of the changes being considered for a proposal.

However, bech32 addresses literally encode a version number plus a payload, which maps directly to the various versions of segwit outputs.

The version number in Bitcoin bech32 addresses is in the 4th character. For all v0 outputs, that version character is 'q'. For v1 outputs it will be a 'p'.

EDIT June 2022: Taproot was introduced with a slightly different address format than bech32, named bech32m, described in BIP350. This was done to address a shortcoming in the bech32 checksum algorithm, as well as prevent misinterpretation of taproot addresses as P2WSH (which would lead to loss of funds).

5
  • 4
    Will existing wallets be able to send to version X scripts if they already support bech32 without any implementation changes?
    – nopara73
    Mar 1, 2019 at 23:22
  • 2
    That depends on the implementation. BIP 173 specifies how to decode a bech32 address to a segwit scriptPubkey which works for any segwit version. But in some implementations outputs with an unknown segwit version non-standard and not broadcasted. Bitcoin Core as of 0.17.3 is such an implementation but as far as I know the plan is to change that behavior. A Schnorr proposal could support P2SH-nested segwit version 1 programs which would allow sending from all notable wallets today.
    – nickler
    Apr 23, 2019 at 15:26
  • @nickler Is it possible to create a P2PKH output from a schnorr signature?
    – yzernik
    Dec 17, 2021 at 12:38
  • 2
    Since this question was answered bech32m addresses were used for SegWit v1 rather than bech32. More details here: bitcoinops.org/en/preparing-for-taproot/… Jun 6, 2022 at 16:30
  • @MichaelFolkson Good point. Added a comment. Jun 6, 2022 at 17:36

Your Answer

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

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