Skip to content

Commit 5f4a836

Browse files
committed
Newsletters: add bitcoinops#181 (2021-01-05)
1 parent c551c4f commit 5f4a836

11 files changed

+240
-0
lines changed
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
---
2+
title: 'Bitcoin Optech Newsletter #181'
3+
permalink: /en/newsletters/2022/01/05/
4+
name: 2022-01-05-newsletter
5+
slug: 2022-01-05-newsletter
6+
type: newsletter
7+
layout: newsletter
8+
lang: en
9+
---
10+
This week's newsletter describes an alternative proposal to slowly phase
11+
in full replace-by-fee and announces a series of meetings to review the
12+
proposed `OP_CHECKTEMPLATEVERIFY` soft fork. Also included are our
13+
regular sections with announcements of releases and release candidates
14+
and summaries of notable changes to popular Bitcoin infrastructure
15+
projects.
16+
17+
## News
18+
19+
- **Brief full RBF, then opt-in RBF:** Jeremy Rubin [replied][rubin rbf]
20+
to an older Bitcoin-Dev mailing list thread described in [Newsletter
21+
#154][news154 rbf] about enabling full [replace by fee][topic rbf]
22+
(RBF) in Bitcoin Core. Currently, any transaction that signals
23+
according to [BIP125][] can be replaced by a higher-feerate
24+
alternative (with some restrictions). The previous proposal was to
25+
eventually allow any transaction to be replaced ("full RBF")---not just
26+
those that set the opt-in signal that replaceability is wanted. Some merchants have
27+
indicated that they prefer that relay nodes make replaceability as hard
28+
as reasonably possible, at least optionally, so that they can
29+
immediately accept unconfirmed transactions in exchange for low-cost
30+
goods and services.
31+
32+
Rubin's alternative still encourages moving to full RBF, but
33+
suggests starting by allowing full RBF of any transaction for *n*
34+
seconds after it is first received by a node. After *n* seconds,
35+
the BIP125 opt-in flag is honored the same as now. This can allow
36+
merchants to accept unconfirmed transactions like they do now after
37+
those *n* seconds have elapsed. More importantly, it may allow
38+
protocols that depend on replaceability for security to not have to
39+
worry about non-opt-in transactions as long as a protocol node or
40+
watchtower can reasonably respond within a fraction of *n* seconds
41+
of first learning of a transaction.
42+
43+
- **BIP119 CTV review workshops:** Jeremy Rubin [announced][rubin
44+
ctv-review] on the Bitcoin-Dev mailing list that he will be hosting
45+
recurring meetings to discuss [BIP119][]'s specification of
46+
[OP_CHECKTEMPLATEVERIFY][topic op_checktemplateverify], including how
47+
it could be deployed on the network. The first meeting will be held
48+
Tuesday, January 11th, at 20:00 UTC in [##ctv-bip-review][] on
49+
Libera.Chat. Subsequent meetings will be held at the same time every
50+
two weeks indefinitely.
51+
52+
## Releases and release candidates
53+
54+
*New releases and release candidates for popular Bitcoin infrastructure
55+
projects. Please consider upgrading to new releases or helping to test
56+
release candidates.*
57+
58+
- [Rust-Lightning 0.0.104][] is the latest release of this LN node
59+
library containing several API improvements.
60+
61+
## Notable code and documentation changes
62+
63+
*Notable changes this week in [Bitcoin Core][bitcoin core repo],
64+
[C-Lightning][c-lightning repo], [Eclair][eclair repo], [LND][lnd repo],
65+
[Rust-Lightning][rust-lightning repo], [libsecp256k1][libsecp256k1
66+
repo], [Hardware Wallet Interface (HWI)][hwi repo],
67+
[Rust Bitcoin][rust bitcoin repo], [BTCPay Server][btcpay server repo],
68+
[BDK][bdk repo], [Bitcoin Improvement Proposals (BIPs)][bips repo], and
69+
[Lightning BOLTs][bolts repo].*
70+
71+
- [Bitcoin Core #23789][] wallet: Strictly match tx change type to improve privacy FIXME:glozow maybe mention https://bitcoinops.org/en/preparing-for-taproot/#output-script-matching or https://bitcoinops.org/en/newsletters/2021/06/30/#bitcoin-core-22154
72+
73+
- [Bitcoin Core #23711][] documents several aspects of Bitcoin Core's
74+
*policy* for accepting and relaying unconfirmed transactions. The
75+
documentation may be especially useful for authors of wallets and
76+
contract protocols who need to depend on acceptance and relay
77+
behavior.
78+
79+
- [Bitcoin Core #17631][] adds a new REST endpoint that provides
80+
[compact block filters][topic compact block filters] on nodes that
81+
have filters and REST endpoints enabled.
82+
83+
- [Bitcoin Core #22674][] adds the logic for validating a package of
84+
transactions and testing it against the node's transaction relay
85+
policy. A package in this case is one child transaction and all of
86+
its unconfirmed parents. Follow-up PRs are expected to extend
87+
the validation logic by adding support for [CPFP][topic cpfp] and
88+
[RBF][topic rbf].
89+
90+
In a later follow-up PR, a method may be added to allow peers to
91+
submit packages of transactions to the local node which will be
92+
validated using the now-available logic. That will enable [package
93+
relay][topic package relay], enhancing the reliability and
94+
security of contract protocols such as LN. The PR also adds
95+
[documentation][package doc] about the package validation rules.
96+
97+
[package doc]: https://github.com/glozow/bitcoin/blob/046e8ff264be6b888c0f9a9d822e32aa74e19b78/doc/policy/packages.md
98+
99+
- [Bitcoin Core #23718][] adds support for retaining and displaying any
100+
hashes and preimages contained in a [PSBT][topic psbt]. PSBTs used
101+
for [HTLCs][topic htlc] or other contract protocol primitives may
102+
contain a hash whose preimage is known by one of the PSBT *updaters*
103+
or *signers*. That preimage may need to be provided in order to
104+
generate the desired final transaction. This PR brings Bitcoin Core
105+
closer to being able to effectively participate in the creation,
106+
management, and finalization of such transactions. Additional
107+
improvements are expected if Bitcoin Core adopts support for
108+
[miniscript][topic miniscript].
109+
110+
- [Bitcoin Core #17034][] adds support for version 2 PSBTs (see
111+
[Newsletter #128][news128 psbt]) and additional PSBT fields, including
112+
the fields for proprietary PSBT extensions described in [Newsletter
113+
#72][news72 psbt]. Bitcoin Core doesn't understand the proprietary
114+
extensions but will now preserve them in PSBTs it processes and
115+
display them in the results of the `decodepsbt` RPC.
116+
117+
- [Bitcoin Core #23113][] updates the `createmultisig` and `addmultisig`
118+
RPCs to include a warning field if the user requests the creation of a
119+
segwit multisig address using an [uncompressed public key][]. Since
120+
the original implementation of segwit, Bitcoin Core has defaulted to
121+
not relaying or mining unconfirmed transactions that spend segwit
122+
inputs with uncompressed public keys. That means any user who creates
123+
an address using an uncompressed key may not be able to spend any
124+
funds received to that address. For that reason, these RPCs never
125+
create [bech32][topic bech32] addresses for uncompressed keys---they
126+
instead create legacy (base58check) addresses. The new warning field
127+
should help users in this situation understand why they're receiving a
128+
different address type than what they requested.
129+
130+
- [Bitcoin Core GUI #459][] updates the generate-address dialog with the
131+
ability to create bech32m addresses in addition to older address
132+
types.
133+
134+
{:.center}
135+
![Screenshot address picker](/img/posts/2022-01-core-gui-address-picker.png)
136+
137+
- [Eclair #2090][] Rate limit onion messages FIXME:dongcarl
138+
139+
- [Eclair #2104][] adds a log message that warns the local node operator
140+
when their immediately onchain spendable balance has dropped below the
141+
estimated amount necessary to use [CPFP fee bumping][topic cpfp] with
142+
[anchor outputs][topic anchor outputs] to close their channels in a
143+
timely manner. LN developers or operators choosing their own
144+
reserve values may wish to compare the estimates Eclair has made to
145+
[those][news113 lnd4908] used [in][news149 lnd5274] LND.
146+
147+
- [Eclair #2099][] adds an `onion-messages` configuration option that
148+
can be set to never relay [onion messages][topic onion messages] (but
149+
still allow the node to send or receive messages), relay all messages
150+
(even those that require opening a connection to a new peer), or only
151+
relay messages over existing connections.
152+
153+
- [Libsecp256k1 #964][] Add release-process.md FIXME:bitschmidty
154+
155+
- [Rust Bitcoin #681][] adds support for [BIP371][]'s additional
156+
[PSBT][topic psbt] fields for [taproot][topic taproot].
157+
158+
- [Rust-Lightning #1177][] drops the need for Rust-Lightning itself to
159+
store information about payments the higher-level wallet application
160+
wants to receive. Instead, the essential information about the
161+
payment is encrypted and then encoded into the [payment secret][topic
162+
payment secrets]. When a payment is received, the encrypted payment
163+
secret is decrypted and the plaintext information is used to derive
164+
the [payment preimage][] used to satisfy the [payment hash][] used to
165+
secure the payment's [HTLC][topic htlc].
166+
167+
This is a simplified implementation of the idea described in
168+
[Newsletter #168][news168 stateless]. Other LN implementations
169+
may store information about an invoice (e.g. an arbitrary order
170+
identifier provided by a merchant's shopkeeping software), but
171+
Rust-Lightning sidesteps that as it is a library that expects to be
172+
integrated directly into a higher-level app and so allows the
173+
higher-level application to manage the details of its own payment
174+
requests.
175+
176+
- [HWI #545][], [#546][HWI #546], and [#547][HWI #547] add support for
177+
[taproot][topic taproot] by enabling support for `tr()`
178+
[descriptors][topic descriptors], [BIP371][] support for taproot
179+
[PSBT][topic psbt] fields, and support for [bech32m][topic bech32]
180+
addresses for taproot scripts when available in the underlying hardware
181+
signing devices. Note, as of these PRs, HWI does not fully support
182+
some signing device firmware that does support taproot, so taproot
183+
support is not yet enabled on those devices.
184+
185+
- [BIPs #1126][] adds [BIP52][] for *Optical Proof of Work* (OPoW), a
186+
proposed hard fork change to Bitcoin that is claimed will change the
187+
division of costs between mining equipment (capital expenditures) and
188+
electrical and operation costs (operational expenditures). The idea
189+
was [previously discussed][opow ml] on the Bitcoin-Dev mailing list,
190+
where it had both supporters and detractors.
191+
192+
{% include references.md %}
193+
{% include linkers/issues.md issues="23789,23711,17631,22674,23718,17034,23113,459,2090,2104,2099,964,681,1177,545,546,547,1126,912" %}
194+
[opow ml]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-May/018951.html
195+
[##ctv-bip-review]: https://web.libera.chat/?channels=##ctv-bip-review
196+
[rust-lightning 0.0.104]: https://github.com/lightningdevkit/rust-lightning/releases/tag/v0.0.104
197+
[rubin rbf]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-December/019696.html
198+
[rubin ctv-review]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-December/019719.html
199+
[news154 rbf]: /en/newsletters/2021/06/23/#allowing-transaction-replacement-by-default
200+
[news128 psbt]: /en/newsletters/2020/12/16/#new-psbt-version-proposed
201+
[news72 psbt]: /en/newsletters/2019/11/13/#bips-849
202+
[uncompressed public key]: https://btcinformation.org/en/developer-guide#public-key-formats
203+
[payment preimage]: https://github.com/lightning/bolts/blob/master/00-introduction.md#payment-preimage
204+
[payment hash]: https://github.com/lightning/bolts/blob/master/00-introduction.md#Payment-hash
205+
[news168 stateless]: /en/newsletters/2021/09/29/#stateless-ln-invoice-generation
206+
[news113 lnd4908]: /en/newsletters/2021/01/27/#lnd-4908
207+
[news149 lnd5274]: /en/newsletters/2021/05/19/#lnd-5274

_topics/en/bech32.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ optech_mentions:
120120
- title: "2021 year-in-review: bech32m addresses"
121121
url: /en/newsletters/2021/12/22/#bech32m
122122

123+
- title: "Bitcoin Core GUI #459 allows users to choose to create bech32m addresses"
124+
url: /en/newsletters/2022/01/05/#bitcoin-core-gui-459
125+
123126
## Optional. Same format as "primary_sources" above
124127
see_also:
125128
- title: Javascript bech32 demo decoder

_topics/en/compact-block-filters.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ optech_mentions:
7777
- title: Discussion of additional compact block filter verification
7878
url: /en/newsletters/2021/11/10/#additional-compact-block-filter-verification
7979

80+
- title: "Bitcoin Core #17631 adds new REST endpoint for compact block filters"
81+
url: /en/newsletters/2022/01/05/#bitcoin-core-17631
82+
8083
## Optional. Same format as "primary_sources" above
8184
see_also:
8285
- title: BIP37 transaction bloom filtering

_topics/en/onion-messages.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ optech_mentions:
4141
- title: "2021 year-in-review: onion messages"
4242
url: /en/newsletters/2021/12/22/#offers
4343

44+
- title: "Eclair #2099 adds onion message configuration option for controling when to relay messages"
45+
url: /en/newsletters/2022/01/05/#eclair-2099
46+
4447
## Optional. Same format as "primary_sources" above
4548
# see_also:
4649
# - title:

_topics/en/op_checktemplateverify.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ optech_mentions:
6767
- title: "BIPs #1215 makes several updates to the BIP119 OP_CHECKTEMPLATEVERIFY proposal"
6868
url: /en/newsletters/2021/11/10/#bips-1215
6969

70+
- title: "Bi-weekly IRC meetings scheduled for reviewing and discussing `OP_CHECKTEMPLATEVERIFY`"
71+
url: /en/newsletters/2022/01/05/#bip119-ctv-review-workshops
72+
7073
## Optional. Same format as "primary_sources" above
7174
see_also:
7275
- title: Covenants

_topics/en/output-script-descriptors.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ optech_mentions:
122122
- title: "2021 year-in-review: output script descriptors"
123123
url: /en/newsletters/2021/12/22/#descriptors
124124

125+
- title: "HWI #545 adds support for taproot `tr()` descriptors"
126+
url: /en/newsletters/2022/01/05/#hwi-545
127+
125128
## Optional. Same format as "primary_sources" above
126129
see_also:
127130
- title: Miniscript

_topics/en/package-relay.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ optech_mentions:
6565
- title: "2021 year-in-review: mempool package acceptance and package relay"
6666
url: /en/newsletters/2021/12/22/#mpa
6767

68+
- title: "Bitcoin Core #22674 adds logic for validating packages of transactions against relay policy"
69+
url: /en/newsletters/2022/01/05/#bitcoin-core-22674
70+
6871
## Optional. Same format as "primary_sources" above
6972
see_also:
7073
- title: CPFP fee bumping

_topics/en/payment-secrets.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ optech_mentions:
5454
- title: "BOLTs #887 updates BOLT11 to require that spenders specify the payment secret"
5555
url: /en/newsletters/2021/08/25/#bolts-887
5656

57+
- title: "Rust-Lightning #1177 uses the payment secret field to store encrypted invoice information"
58+
url: /en/newsletters/2022/01/05/#rust-lightning-1177
59+
5760
## Optional. Same format as "primary_sources" above
5861
see_also:
5962
- title: Simplified multipath payments

_topics/en/psbt.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,15 @@ optech_mentions:
162162
- title: "Bitcoin Core #22513 allows walletprocesspsbt to sign without finalizing"
163163
url: /en/newsletters/2021/12/08/#bitcoin-core-22513
164164

165+
- title: "Bitcoin Core #23718 adds support for displaying hashes and preimages contained in PSBTs"
166+
url: /en/newsletters/2022/01/05/#bitcoin-core-23718
167+
168+
- title: "Bitcoin Core #17034 adds support for version 2 PSBTs and for preserving proprietary fields"
169+
url: /en/newsletters/2022/01/05/#bitcoin-core-17034
170+
171+
- title: "Rust Bitcoin #681 adds support for BIP371's additional PSBT fields for taproot"
172+
url: /en/newsletters/2022/01/05/#rust-bitcoin-681
173+
165174
## Optional. Same format as "primary_sources" above
166175
see_also:
167176
- title: Output Script Descriptors

_topics/en/replace-by-fee.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ optech_mentions:
8989
- title: "2021 year-in-review: default transaction replacement by fee"
9090
url: /en/newsletters/2021/12/22/#default-rbf
9191

92+
- title: Proposal to briefly allow full RBF before using default opt-in RBF
93+
url: /en/newsletters/2022/01/05/#brief-full-rbf-then-opt-in-rbf
94+
9295
## Optional. Same format as "primary_sources" above
9396
see_also:
9497
- title: Opt-in RBF FAQ
34.9 KB
Loading

0 commit comments

Comments
 (0)