Will a Schnorr soft-fork introduce a new address format (i.e. not bech32)

11

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

Bertram Lund

Posted 2018-12-17T00:15:06.767

Reputation: 391

Answers

14

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'.

Pieter Wuille

Posted 2018-12-17T00:15:06.767

Reputation: 54 032

3Will existing wallets be able to send to version X scripts if they already support bech32 without any implementation changes?nopara73 2019-03-01T23:22:18.197

1That 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 2019-04-23T15:26:44.427