|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #317' |
| 3 | +permalink: /en/newsletters/2024/08/23/ |
| 4 | +name: 2024-08-23-newsletter |
| 5 | +slug: 2024-08-23-newsletter |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: en |
| 9 | +--- |
| 10 | +This week's newsletter summarizes discussion about an anti-exfiltration |
| 11 | +protocol that only requires one round trip of communication between |
| 12 | +a wallet and a signing device. Also included are our regular sections |
| 13 | +describing updates to clients and services, announcing new releases and |
| 14 | +release candidates, and summarizing recent changes to popular Bitcoin |
| 15 | +infrastructure software. |
| 16 | + |
| 17 | +## News |
| 18 | + |
| 19 | +- **Simple (but imperfect) anti-exfiltration protocol:** developer |
| 20 | + Moonsettler [posted][moonsettler exfil1] to Delving Bitcoin to describe an |
| 21 | + [anti-exfiltration][topic exfiltration-resistant signing] protocol. |
| 22 | + The same protocol has been described before (see Newsletters |
| 23 | + [#87][news87 exfil] and [#88][news88 exfil]), with Pieter Wuille |
| 24 | + [citing][wuille exfil1] the earliest known description of the |
| 25 | + technique for anti-exfil being a [2014 post][maxwell exfil] by Gregory |
| 26 | + Maxwell. |
| 27 | + |
| 28 | + The protocol uses the sign-to-contract protocol to allow a software |
| 29 | + wallet to contribute entropy to the nonce selected by a hardware |
| 30 | + signing device in a way that allows the software wallet to later |
| 31 | + verify the entropy was used. Sign-to-contract is a variation on |
| 32 | + [pay-to-contract][topic p2c]: in pay-to-contract, the receiver's |
| 33 | + public key is tweaked; in sign-to-contract, the spender's signature |
| 34 | + nonce is tweaked. |
| 35 | + |
| 36 | + The advantage of this protocol, compared to the protocol implemented |
| 37 | + for BitBox02 and Jade hardware signing devices (see [Newsletter |
| 38 | + #136][news136 exfil]), is that it only requires one round trip of |
| 39 | + communication between the software wallet and the hardware signing |
| 40 | + device. That one round trip can be combined with the other steps |
| 41 | + necessary to sign for a single-sig or scripted multisig transaction, |
| 42 | + meaning the technique doesn't affect user workflows. The currently |
| 43 | + deployed technique, which is also based on sign-to-contract, requires |
| 44 | + two round trips; that's more than required for most users today, |
| 45 | + although multiple round trips may be required for users who upgrade to |
| 46 | + using [scriptless multisignatures][topic multisignature] and |
| 47 | + [scriptless threshold signatures][topic threshold signature]. For |
| 48 | + users who connect their signing devices directly to their computers or |
| 49 | + who use an interactive wireless communication protocol like Bluetooth, |
| 50 | + the number of round trips doesn't matter. But, for users who prefer |
| 51 | + to keep their devices airgapped, each roundtrip requires two manual |
| 52 | + interventions---which can quickly add up to an annoying amount of work |
| 53 | + when signing frequently or using multiple devices for scripted |
| 54 | + multisignatures. |
| 55 | + |
| 56 | + The disadvantage of this protocol was mentioned by Maxwell in his |
| 57 | + original description, it "leaves open a [side-channel][topic side |
| 58 | + channels] that has exponential cost per additional bit, via grinding |
| 59 | + [...] but it eliminates the obvious and very powerful attacks where |
| 60 | + everything is leaked in a single signature. This is clearly less |
| 61 | + good, but it's only a two-move protocol, so many places that wouldn't |
| 62 | + consider using a countermeasure could pick this up for free just as an |
| 63 | + element of a protocol spec." |
| 64 | + |
| 65 | + This protocol is a clear upgrade over not using anti-exfiltration at |
| 66 | + all and Pieter Wuille [notes][wuille exfil2] that it is probably the |
| 67 | + best possible anti-exfiltration with single-round signing. |
| 68 | + However, Wuille advocates for the deployed two-round anti-exfiltration |
| 69 | + protocol to prevent even grinding-based exfiltration. |
| 70 | + |
| 71 | + Discussion was ongoing at the time of writing. |
| 72 | + |
| 73 | +## Changes to services and client software |
| 74 | + |
| 75 | +*In this monthly feature, we highlight interesting updates to Bitcoin |
| 76 | +wallets and services.* |
| 77 | + |
| 78 | +FIXME:bitschmidty |
| 79 | + |
| 80 | +## Releases and release candidates |
| 81 | + |
| 82 | +*New releases and release candidates for popular Bitcoin infrastructure |
| 83 | +projects. Please consider upgrading to new releases or helping to test |
| 84 | +release candidates.* |
| 85 | + |
| 86 | +- [Core Lightning 24.08rc2][] is a release candidate for the next major |
| 87 | + version of this popular LN node implementation. |
| 88 | + |
| 89 | +- [LND v0.18.3-beta.rc1][] is a release candidate for a minor bug fix |
| 90 | + release of this popular LN node implementation. |
| 91 | + |
| 92 | +## Notable code and documentation changes |
| 93 | + |
| 94 | +_Notable recent changes in [Bitcoin Core][bitcoin core repo], [Core |
| 95 | +Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo], |
| 96 | +[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet |
| 97 | +Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay |
| 98 | +Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement |
| 99 | +Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo], |
| 100 | +[Lightning BLIPs][blips repo], [Bitcoin Inquisition][bitcoin inquisition |
| 101 | +repo], and [BINANAs][binana repo]._ |
| 102 | + |
| 103 | +- [Bitcoin Core #28553][] validation: assumeutxo params mainnet |
| 104 | + |
| 105 | +- [Bitcoin Core #30246][] contrib: asmap-tool - Compare ASMaps with respect to specific addresses |
| 106 | + |
| 107 | +- [Bitcoin Core GUI #824][] Migrate legacy wallets that are not loaded |
| 108 | + |
| 109 | +- [Core Lightning #7540][] renepay: add const probability cost |
| 110 | + |
| 111 | +- [Core Lightning #7403][] renepay: add a channel filtering paymod |
| 112 | + |
| 113 | +- [LND #8943][] Roasbeef/alloy-linear-fee-model <!-- mainly looking for a mention of Alloy and how it could be useful to other Bitcoin projects; probably only need a short mention of the fee function bug fix --> |
| 114 | + |
| 115 | +- [BDK #1478][] Allow opting out of getting `LocalChain` updates with `FullScanRequest`/`SyncRequest` structures |
| 116 | + |
| 117 | +- [BDK #1533][] Enable support for single descriptor wallets |
| 118 | + |
| 119 | +- [BOLTs #1182][] BOLT 4: clarify blinded path requirements. |
| 120 | + |
| 121 | +- [BLIPs #39][] blip-0039: BOLT 11 Invoice Blinded Path Tagged Field |
| 122 | + |
| 123 | +{% assign four_days_after_posting = page.date | date: "%s" | plus: 345600 | date: "%Y-%m-%d 14:30" %} |
| 124 | +{% include snippets/recap-ad.md when=four_days_after_posting %} |
| 125 | +{% include references.md %} |
| 126 | +{% include linkers/issues.md v=2 issues="28553,30246,824,7540,7403,8943,1478,1533,1182,39" %} |
| 127 | +[Core Lightning 24.08rc2]: https://github.com/ElementsProject/lightning/releases/tag/v24.08rc2 |
| 128 | +[LND v0.18.3-beta.rc1]: https://github.com/lightningnetwork/lnd/releases/tag/v0.18.3-beta.rc1 |
| 129 | +[moonsettler exfil1]: https://delvingbitcoin.org/t/non-interactive-anti-exfil-airgap-compatible/1081 |
| 130 | +[wuille exfil1]: https://delvingbitcoin.org/t/non-interactive-anti-exfil-airgap-compatible/1081/3 |
| 131 | +[wuille exfil2]: https://delvingbitcoin.org/t/non-interactive-anti-exfil-airgap-compatible/1081/7 |
| 132 | +[news87 exfil]: /en/newsletters/2020/03/04/#proposal-to-standardize-an-exfiltration-resistant-nonce-protocol |
| 133 | +[news88 exfil]: /en/newsletters/2020/03/11/#exfiltration-resistant-nonce-protocols |
| 134 | +[maxwell exfil]: https://bitcointalk.org/index.php?topic=893898.msg9861102#msg9861102 |
| 135 | +[news136 exfil]: /en/newsletters/2021/02/17/#anti-exfiltration |
0 commit comments