|
| 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 |
0 commit comments