From: Thomas Voegtlin <thomasv@electrum.org>
To: "bitcoin-dev@lists.linuxfoundation.org"
<bitcoin-dev@lists.linuxfoundation.org>
Subject: [bitcoin-dev] Proposal: bip32 version bytes for segwit scripts
Date: Tue, 5 Sep 2017 12:25:16 +0200 [thread overview]
Message-ID: <43636dd6-ab9e-da15-59ae-f31eb11ff7ff@electrum.org> (raw)
BIP32 extended public/private keys have version bytes that result in the
user visible xpub/xprv prefix. The BIP's recommendation is to use
different version bytes for other networks (such as tpub/tprv for testnet)
I would like to use additional version bytes to indicate the type of
output script used with the public keys.
I believe the change should be user visible, because users are exposed
to master public keys. I propose the following prefixes:
========== =========== ===================================
Version Prefix Description
========== =========== ===================================
0x0488ade4 xprv P2PKH or P2SH
0x0488b21e xpub P2PKH or P2SH
0x049d7878 yprv (P2WPKH or P2WSH) nested in P2SH
0x049d7cb2 ypub (P2WPKH or P2WSH) nested in P2SH
0x04b2430c zprv P2WPKH or P2WSH
0x04b24746 zpub P2WPKH or P2WSH
========== =========== ===================================
(source: http://docs.electrum.org/en/latest/seedphrase.html)
I have heard the argument that xpub/xprv serialization is a format for
keys, and that it should not be used to encode how these keys are used.
However, the very existence of version bytes, and the fact that they are
used to signal whether keys will be used on testnet or mainnet goes
against that argument.
If we do not signal the script type in the version bytes, I believe
wallet developers are going to use dirtier tricks, such as the bip32
child number field in combination with bip43/bip44/bip49.
Thomas
next reply other threads:[~2017-09-05 10:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-05 10:25 Thomas Voegtlin [this message]
2017-09-05 15:44 ` [bitcoin-dev] Proposal: bip32 version bytes for segwit scripts Pavol Rusnak
2017-09-05 17:03 ` Luke Dashjr
2017-09-05 18:09 ` Thomas Voegtlin
2017-09-06 17:02 ` Pavol Rusnak
2017-09-05 22:13 ` Andreas Schildbach
2017-09-05 19:00 Kabuto Samourai
2017-09-06 9:26 ` Thomas Voegtlin
2017-09-06 13:47 ` Kabuto Samourai
2017-09-07 19:02 ` Luke Dashjr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43636dd6-ab9e-da15-59ae-f31eb11ff7ff@electrum.org \
--to=thomasv@electrum.org \
--cc=bitcoin-dev@lists.linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox