Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
[POLICY] Make sending to future native witness outputs standard #15846
As discussed in the April 18 2019 IRC meeting.
This makes sending to future Segwit versions via native outputs (bech32) standard for relay, mempool acceptance, and mining. The reasons are:
Note that spending such outputs (including P2SH-embedded ones) remains nonstandard, as that is actually required for softfork safety.
Concept ACK this change. I agree that the mempool should accept and relay txs with outputs to any segwit version.
This isn't relevant to the change here. BIP173 describes an address format and how to decode that into a scriptPubKey. The node/mempool has no concept of addresses.
I think your last three points are actually arguments to not stop the wallet from sending to segwit v1+ addresses, rather than arguments to allow the mempool to accept/relay those txs.
I'd prefer to prevent the Bitcoin Core wallet from sending to v1+ addresses, or at least to warn. We can't prevent all classes of sending insecure or unspendable addresses, but I think it makes sense to do so when we can.
I think the main concern that people have with that is that it might slow down segwit v1 adoption. I disagree - bech32 adoption has mostly been slowed down by large exchanges or other services not implementing send-to-bech32. That's something that is outside our control.
1 similar comment
Tested ACK c634b1e
Separately tested a bc1p... v1 address with sendrawtransaction and the wallet GUI on mainnet. Transactions were accepted to the local mempool, relayed to a remote peer I controlled, and entered that peer's mempool (both peers running this PR).
(Hint for anyone else testing, if you want to empty your mempool so you can run abandontransaction, you need to restart with