@@ -37,12 +37,49 @@ and notable changes to popular infrastructure projects.
3737meeting, highlighting some of the important questions and answers. Click on a
3838question below to see a summary of the answer from the meeting.*
3939
40- FIXME: glozow
40+ [ Treat taproot as always active] [ review club #23512 ] is a PR by Marco Falke to
41+ make transactions spending [ taproot] [ topic taproot ] outputs standard, regardless of taproot
42+ deployment status.
4143
4244{% include functions/details-list.md
43- q0="FIXME"
44- a0="FIXME"
45- a0link="https://bitcoincore.reviews/23173#l-FIXME "
45+ q0="Which areas in the codebase use the status of taproot deployment? Which of
46+ them are policy related?"
47+ a0="Prior to this PR, there are 4 areas:
48+ [ GetBlockScriptFlags()] [ GetBlockScriptFlags tap ] (consensus),
49+ [ AreInputsStandard()] [ AreInputsStandard tap ] (policy),
50+ [ getblockchaininfo()] [ getblockchaininfo tap ] (rpc), and
51+ [ isTaprootActive()] [ isTaprootActive tap ] (wallet)."
52+ a0link="https://bitcoincore.reviews/23512#l-21 "
53+
54+ q1="What mempool validation function checks if a transaction spends a taproot
55+ input? How does this PR change the function?"
56+ a1="The function is [ ` AreInputsStandard() ` ] [ AreInputsStandard def ] . The PR
57+ removes the last argument, ` bool taproot_active ` , from the signature and returns
58+ ` true ` for v1 segwit (taproot) spends regardless of taproot activation status.
59+ Previously, the function would return false if it found a taproot output but
60+ ` taproot_active ` was false, e.g. if the node were still in Initial Block
61+ Download and syncing blocks before taproot activation."
62+ a1link="https://bitcoincore.reviews/23512#l-40 "
63+
64+ q2="Are there any theoretical issues with the change? For wallet users, is
65+ it possible to lose money?"
66+ a2="With this change, the wallet allows importing taproot [ descriptors] [ topic descriptors ] at any
67+ time, i.e., even when taproot is not active and v1 segwit outputs can be spent
68+ by anyone. This means it's possible to receive bitcoin to a taproot output
69+ without taproot being active yet; if the chain also reorgs to a block prior to
70+ 709,632, miners (or someone who can get a nonstandard transaction confirmed) can
71+ steal those UTXOs."
72+ a2link="https://bitcoincore.reviews/23512#l-82 "
73+
74+ q3="Theoretically, is it possible for a mainnet chain that has taproot
75+ never-active or active at a different block height to exist?"
76+ a3="Both are possible. If a very large reorg happened (forking off prior to
77+ taproot lock-in), the deployment process would be repeated. In this new chain,
78+ if the number of taproot-signaling blocks never met the threshold, the (still
79+ valid) chain would never activate taproot. If the threshold were reached after
80+ the min activation height but before the timeout, taproot could also activate
81+ at a later height."
82+ a3link="https://bitcoincore.reviews/23512#l-130 "
4683%}
4784
4885## Releases and release candidates
@@ -105,8 +142,13 @@ repo], [Hardware Wallet Interface (HWI)][hwi repo],
105142 problem allowing the local node to accept such channels.
106143
107144{% include references.md %}
108- {% include linkers/issues.md issues="23155,22513,4921,4829,2061,2073,906,1163,765,759,911" %}
145+ {% include linkers/issues.md issues="23155,22513,4921,4829,2061,2073,906,1163,765,759,911,23512 " %}
109146[ bdk 0.14.0 ] : https://github.com/bitcoindevkit/bdk/releases/tag/v0.14.0
110147[ news177 lnd6026 ] : /en/newsletters/2021/12/01/#lnd-6026
111148[ darosior bump ] : https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-November/019614.html
112149[ revault research ] : https://github.com/revault/research
150+ [ GetBlockScriptFlags tap ] : https://github.com/bitcoin/bitcoin/blob/dca9ab48b80ff3a7dbe0ae26964a58e70d570618/src/validation.cpp#L1616
151+ [ AreInputsStandard tap ] : https://github.com/bitcoin-core-review-club/bitcoin/blob/15d109802ab93b0af9647858c9d8adcd8a2db84a/src/validation.cpp#L726-L729
152+ [ getblockchaininfo tap] : https://github.com/bitcoin/bitcoin/blob/dca9ab48b80ff3a7dbe0ae26964a58e70d570618/src/rpc/blockchain.cpp#L1537 )
153+ [ isTaprootActive tap ] : https://github.com/bitcoin-core-review-club/bitcoin/blob/15d109802ab93b0af9647858c9d8adcd8a2db84a/src/interfaces/chain.h#L292
154+ [ AreInputsStandard def ] : https://github.com/bitcoin/bitcoin/blob/dca9ab48b80ff3a7dbe0ae26964a58e70d570618/src/policy/policy.h#L110
0 commit comments