[POLICY] Make sending to future native witness outputs standard #15846

pull sipa wants to merge 1 commits into bitcoin:master from sipa:201904_futuresegwitstandard changing 2 files +6 −6
  1. sipa commented at 7:58 pm on April 18, 2019: member

    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:

    • This may interfere with smooth adoption of future segwit versions, if they’re defined (by the sender wallet/node).
    • It violates BIP173 (“Version 0 witness addresses are always 42 or 62 characters, but implementations MUST allow the use of any version.”), though admittedly this code was written before BIP173.
    • It doesn’t protect much, as P2SH-embedded segwit cannot be filtered in this way.
    • As a general policy, the sender shouldn’t care what the receiver likes his outputs to be.

    Note that spending such outputs (including P2SH-embedded ones) remains nonstandard, as that is actually required for softfork safety.

  2. [POLICY] Make sending to future native witness outputs standard c634b1e207
  3. MarcoFalke commented at 8:02 pm on April 18, 2019: member
    utACK c634b1e2076d8e15a8284638475e26c691d4e100
  4. MarcoFalke added this to the milestone 0.19.0 on Apr 18, 2019
  5. DrahtBot added the label Tests on Apr 18, 2019
  6. DrahtBot added the label TX fees and policy on Apr 18, 2019
  7. jnewbery commented at 8:53 pm on April 18, 2019: member

    IRC discussion here: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2019/bitcoin-core-dev.2019-04-18-19.00.log.html#l-77

    Concept ACK this change. I agree that the mempool should accept and relay txs with outputs to any segwit version.

    It violates BIP173 (“Version 0 witness addresses are always 42 or 62 characters, but implementations MUST allow the use of any version.”), though admittedly this code was written before BIP173.

    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.

  8. luke-jr commented at 9:13 pm on April 18, 2019: member
    utACK
  9. gmaxwell commented at 9:33 pm on April 18, 2019: contributor
    utACK
  10. harding commented at 2:37 pm on April 24, 2019: contributor

    Tested ACK c634b1e2076d8e15a8284638475e26c691d4e100

    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 -persistmempool=0 -walletbroadcast=0, run the savemempool RPC, abandon your transaction either via the RPC or the GUI, and then restart again. If you don’t savemempool, your node will restore the mempool from the run before you set persistmempool=0 and that mempool will contain your wallet transaction.)

  11. gmaxwell commented at 6:17 pm on April 24, 2019: contributor
    utACK
  12. sdaftuar commented at 2:25 pm on April 25, 2019: member
    utACK
  13. instagibbs commented at 5:29 pm on April 25, 2019: member
    utACK
  14. meshcollider merged this on Apr 27, 2019
  15. meshcollider closed this on Apr 27, 2019

  16. meshcollider referenced this in commit b025aa3b9e on Apr 27, 2019
  17. sidhujag referenced this in commit 71bb171d6b on May 1, 2019
  18. Sjors referenced this in commit 6969493b58 on Jun 11, 2019
  19. greenaddress referenced this in commit 89488395bb on Jun 28, 2019
  20. MarcoFalke referenced this in commit 24dbcf3808 on Jul 16, 2019
  21. sidhujag referenced this in commit e283a6f907 on Jul 29, 2019
  22. rustyrussell referenced this in commit e8f8a7968b on Sep 18, 2019
  23. rustyrussell referenced this in commit 2df5c06800 on Aug 20, 2020
  24. cdecker referenced this in commit 75c02f98c1 on Dec 22, 2020
  25. cdecker referenced this in commit 4acbb39a46 on Dec 22, 2020
  26. rustyrussell referenced this in commit e127a2ad1f on Feb 18, 2021
  27. rustyrussell referenced this in commit 42d6d79914 on Feb 18, 2021
  28. rustyrussell referenced this in commit 4f728566df on Feb 18, 2021
  29. rustyrussell referenced this in commit 4e329271a3 on Feb 18, 2021
  30. rustyrussell referenced this in commit 3508e4e85d on May 24, 2021
  31. MarcoFalke removed the label Tests on Jan 20, 2022
  32. Munkybooty referenced this in commit e49c5b9c72 on Jan 24, 2022
  33. Munkybooty referenced this in commit b9f6428644 on Jan 24, 2022
  34. Munkybooty referenced this in commit a8ff95537d on Jan 24, 2022
  35. Munkybooty referenced this in commit 1073b803ca on Jan 24, 2022
  36. Munkybooty referenced this in commit f812ff9751 on Jan 24, 2022
  37. Munkybooty referenced this in commit 10ef2d1ae1 on Jan 24, 2022
  38. Munkybooty referenced this in commit 21f800c81e on Jan 24, 2022
  39. Munkybooty referenced this in commit b1ef2d0294 on Jan 24, 2022
  40. Munkybooty referenced this in commit 077343af26 on Jan 24, 2022
  41. Munkybooty referenced this in commit 896d1eacb0 on Jan 24, 2022
  42. Munkybooty referenced this in commit ab8342315f on Jan 25, 2022
  43. Munkybooty referenced this in commit 8ca90f3f99 on Jan 30, 2022
  44. DrahtBot locked this on Jan 20, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-22 03:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me