Skip to content

Commit 449d348

Browse files
hardingbitschmidty
authored andcommitted
Newsletters: add 317 (2024-08-23)
1 parent 2e07e5a commit 449d348

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
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

_topics/en/exfiltration-resistant-signing.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ optech_mentions:
3636
- title: "Dark Skippy: faster exfiltration of HD wallet seeds"
3737
url: /en/newsletters/2024/08/09/#faster-seed-exfiltration-attack
3838

39+
- title: "Discussion of a simple (but imperfect) anti-exfiltration protocol"
40+
url: /en/newsletters/2024/08/23/#simple-but-imperfect-anti-exfiltration-protocol
41+
3942
## Optional. Same format as "primary_sources" above
4043
# see_also:
4144
# - title:

0 commit comments

Comments
 (0)