Skip to content

Commit b9ea2f0

Browse files
hardingbitschmidty
authored andcommitted
Newsletters: add 240 (2023-03-01)
1 parent 63b1043 commit b9ea2f0

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
title: 'Bitcoin Optech Newsletter #240'
3+
permalink: /en/newsletters/2023/03/01/
4+
name: 2023-03-01-newsletter
5+
slug: 2023-03-01-newsletter
6+
type: newsletter
7+
layout: newsletter
8+
lang: en
9+
---
10+
This week's newsletter summarizes a discussion about the fastest way to
11+
verify that a BIP32 master seed backup probably hasn't been corrupted
12+
without using any digital devices. Also included are our regular
13+
sections with announcements of new releases and release candidates, plus
14+
summaries of notable changes to popular Bitcoin infrastructure software.
15+
16+
## News
17+
18+
- **Faster seed backup checksums:** Peter Todd [replied][todd codex32]
19+
to the discussion about a draft BIP for Codex32 (see [last week's
20+
newsletter][news239 codex32]), a scheme that allows creating,
21+
verifying, and using recovery codes for a [BIP32][topic bip32] seed.
22+
A particular advantage of Codex32 over existing schemes is the ability
23+
to verify the integrity of backups using just pen, paper,
24+
documentation, and a modest amount of time.
25+
26+
As designed, Codex32 provides very strong assurances about its
27+
ability to detect errors in the backups. Peter Todd suggested a far
28+
easier method would be to generate recovery codes that could have
29+
their parts added together to produce a checksum. If dividing the
30+
checksum by a known constant produced no remainder, it would verify
31+
the integrity of the backup within the parameters of the checksum
32+
algorithm. Peter Todd suggested using an algorithm that provided
33+
roughly 99.9% protection against any typos, which he thought would
34+
be sufficiently strong, easy for people to use, and easy for people
35+
to memorize so that they didn't need the extra Codex32 materials.
36+
37+
Russell O'Connor [replied][o'connor codex32] that a full Codex32
38+
recovery code can be checked much faster than full verification if
39+
the user is willing to accept less protection. Checking just two
40+
characters at a time would guarantee detection of any
41+
single-character mistake in a recovery code and provide 99.9%
42+
protection against other substitution errors. The process would be
43+
somewhat similar to generating the type of checksum that Peter Todd
44+
described, although it would require using a special lookup table
45+
which ordinary users would be unlikely to memorize. If verifiers
46+
were willing to use a different lookup table each time they checked
47+
their code, each additional verification would increase their chance
48+
of detecting an error up until the seventh verification, where they
49+
would have the same assurance as they would receive from performing
50+
full Codex32 verification. No changes are required to Codex32 to
51+
obtain the reinforcing quick check property, although Codex32's
52+
documentation will need to be updated to provide the necessary
53+
tables and worksheets in order to make it usable.
54+
55+
## Releases and release candidates
56+
57+
*New releases and release candidates for popular Bitcoin infrastructure
58+
projects. Please consider upgrading to new releases or helping to test
59+
release candidates.*
60+
61+
- [HWI 2.2.1][] is a maintenance release of this application for
62+
allowing software wallets to interface with hardware signing devices.
63+
64+
- [Core Lightning 23.02rc3][] is a release candidate for a new
65+
maintenance version of this popular LN implementation.
66+
67+
- [lnd v0.16.0-beta.rc1][] is a release candidate for a new major
68+
version of this popular LN implementation.
69+
70+
## Notable code and documentation changes
71+
72+
*Notable changes this week in [Bitcoin Core][bitcoin core repo], [Core
73+
Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo],
74+
[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet
75+
Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay
76+
Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement
77+
Proposals (BIPs)][bips repo], and [Lightning BOLTs][bolts repo].*
78+
79+
- [Bitcoin Core #25943][] rpc: Add a parameter to sendrawtransaction which sets a maximum value for unspendable outputs. FIXME:glozow
80+
81+
- [Bitcoin Core #26595][] wallet: be able to specify a wallet name and passphrase to migratewallet FIXME:bitschmidty
82+
83+
- [Bitcoin Core #27068][] updates how Bitcoin Core handles passphrase
84+
entry. Previously, a passphrase containing an ASCII null character
85+
(0x00) would be accepted---but only the part of the string up to the
86+
first null character would be used in the process of encrypting the
87+
wallet. This could lead to a wallet having a much less secure
88+
passphrase than the user expected. This PR will use the entire passphrase,
89+
including null characters, for encryption and decryption. If the user
90+
enters a passphrase containing null characters which fails to decrypt
91+
an existing wallet, indicating they may have set a passphrase under
92+
the old behavior, they'll be provided with instructions for a
93+
workaround.
94+
95+
- [LDK #1988][] adds limits for peer connections and unfunded channels
96+
to prevent denial of service resource exhaustion attacks. The new
97+
limits are:
98+
99+
- A maximum of 250 data-sharing peers which don't have a funded
100+
channel with the local node.
101+
102+
- A maximum of 50 peers which may currently be trying to open a
103+
channel with the local node.
104+
105+
- A maximum of 4 channels that have not yet been funded from a
106+
single peer.
107+
108+
- [LDK #1977][] makes public its structures for serializing and parsing
109+
[offers][topic offers] as defined in [draft BOLT12][bolts #798]. LDK
110+
doesn't yet have support for [blinded paths][topic rv routing], so it
111+
can't currently send or receive offers directly, but this PR allows
112+
developers to begin experimenting with them.
113+
114+
{% include references.md %}
115+
{% include linkers/issues.md v=2 issues="25943,26595,27068,1988,1977,798" %}
116+
[core lightning 23.02rc3]: https://github.com/ElementsProject/lightning/releases/tag/v23.02rc3
117+
[lnd v0.16.0-beta.rc1]: https://github.com/lightningnetwork/lnd/releases/tag/v0.16.0-beta.rc1
118+
[hwi 2.2.1]: https://github.com/bitcoin-core/HWI/releases/tag/2.2.1
119+
[news239 codex32]: /en/newsletters/2023/02/22/#proposed-bip-for-codex32-seed-encoding-scheme
120+
[todd codex32]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-February/021498.html
121+
[o'connor codex32]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-February/021504.html

_topics/en/hd-key-generation.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ optech_mentions:
7878
- title: BIP proposed to allow multiple BIP32 derivation paths in a descriptor
7979
url: /en/newsletters/2022/08/03/#multiple-derivation-path-descriptors
8080

81+
- title: Faster offline verification of BIP32 master seed backups
82+
url: /en/newsletters/2023/03/01/#faster-seed-backup-checksums
8183

8284
## Optional. Same format as "primary_sources" above
8385
# see_also:

_topics/en/offers.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ optech_mentions:
8383
- title: "Eclair #2479 adds support for paying offers"
8484
url: /en/newsletters/2023/02/22/#eclair-2479
8585

86+
- title: "LDK #1977 allows serializing and deserializing offers"
87+
url: /en/newsletters/2023/03/01/#ldk-1977
88+
8689
## Optional. Same format as "primary_sources" above
8790
# see_also:
8891
# - title:

0 commit comments

Comments
 (0)