Allow tr() import only when Taproot is active#22156
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
|
slight reword suggestion because I was confused thinking you'd only allow tr() descriptors and not wsh() or anything else "Allow tr() import to privkey wallets only when Taproot is active" |
|
Hmm, any reason to restrict this protection to private key wallets? A watch-only taproot wallet giving out addresses is just as dangerous. |
To avoid issues around fund loss, only allow descriptor wallets to import tr() descriptors after taproot has activated.
c3875fa to
fbf485c
Compare
|
Updated to disallow import into watch only wallets too. |
|
Concept ACK. This appears to be at least one wallet restriction that should be in place prior to Taproot being active (I haven't figured out if there are potentially others) This PR doesn't allow tr() import to Signet wallets either right? Ideally no restrictions would be applied to the Signet wallet. |
tr() can be imported into signet wallets as taproot is activated on signet. This is not a blanket disallow, it checks for activation. |
|
utACK fbf485c |
|
Code review ACK fbf485c |
| self.num_nodes = 2 | ||
| self.num_nodes = 3 | ||
| self.setup_clean_chain = True | ||
| self.extra_args = [['-keypool=100'], ['-keypool=100']] | ||
| self.extra_args = [['-keypool=100'], ['-keypool=100'], ["-vbparams=taproot:1:1"]] |
There was a problem hiding this comment.
nit: self.nodes[1] is not used in this test so can we keep 2 nodes and change self.extra_args for one?
There was a problem hiding this comment.
Node 1 will be used in #21365. I'd like to avoid conflicts with that as much as possible.
Few questions
|
|
Code review ACK fbf485c |
#22154 implements generic blocking of bech32m addresses (so tr() descriptors and any future segwit versions) in legacy wallets. For legacy wallets, importing bech32m addresses is completely disallowed.
Just |
fbf485c Allow tr() import only when Taproot is active (Andrew Chow) Pull request description: To avoid issues around fund loss, only allow descriptor wallets to import `tr()` descriptors after taproot has activated. ACKs for top commit: sipa: utACK fbf485c fjahr: Code review ACK fbf485c laanwj: Code review ACK fbf485c prayank23: utACK bitcoin@fbf485c Tree-SHA512: 83c43376515eea523dbc89bc5a0fde53e54aec492e49a40c2a33d80fc94aac459e232ae07b024b4bd75b58078c8d090bc7a2d69541c5d3d4834d2f4cfc9c8208
|
Post merge concept ACK. |
To avoid issues around fund loss, only allow descriptor wallets to import
tr()descriptors after taproot has activated.