Skip to content

Commit fbbf014

Browse files
glozowbitschmidty
authored andcommitted
news178: add review club summary
1 parent 544c8c0 commit fbbf014

File tree

2 files changed

+50
-5
lines changed

2 files changed

+50
-5
lines changed

_posts/en/newsletters/2021-12-08-newsletter.md

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,49 @@ and notable changes to popular infrastructure projects.
3737
meeting, highlighting some of the important questions and answers. Click on a
3838
question 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

_topics/en/soft-fork-activation.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ optech_mentions:
121121
- title: "BIPs #1104 adds activation parameters to the BIP341 taproot specification"
122122
url: /en/newsletters/2021/05/05/#bips-1104
123123

124+
- title: Analysis of treating taproot outputs as always usable post-activation
125+
url: /en/newsletters/2021/12/08/#bitcoin-core-pr-review-club
126+
124127
## Optional. Same format as "primary_sources" above
125128
see_also:
126129
- title: BIP activation heights, times, and thresholds

0 commit comments

Comments
 (0)