Skip to content

Commit 4a60cbb

Browse files
committed
News315: edits to harding sections
1 parent de39813 commit 4a60cbb

17 files changed

+117
-52
lines changed

_posts/en/newsletters/2024-08-09-newsletter.md

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,22 @@ type: newsletter
77
layout: newsletter
88
lang: en
99
---
10-
This week's newsletter FIXME:harding
10+
This week's newsletter announces the Dark Skippy fast seed exfiltration
11+
attack, summarizes discussion about block withholding attacks and
12+
proposed solutions, shares statistics about compact block
13+
reconstruction, describes a replacement cycling attack against
14+
transactions with pay-to-anchor outputs, mentions a new BIP specifying
15+
threshold signing with FROST, and relays an announcement of an
16+
improvement to Eftrace that allows it to opportunistically verify
17+
zero-knowledge proofs using two proposed soft forks.
1118

1219
## News
1320

14-
- **Faster key exfiltration attack:** Lloyd Fournier, Nick Farrow, and
21+
- **Faster seed exfiltration attack:** Lloyd Fournier, Nick Farrow, and
1522
Robin Linus announced [Dark Skippy][], an improved method for key
16-
exfiltration from a Bitcoin signing device. _Key exfiltration_ occurs
23+
exfiltration from a Bitcoin signing device which they previously
24+
[responsibly disclosed][topic responsible disclosures] to
25+
approximately 15 different hardware signing device vendors. _Key exfiltration_ occurs
1726
when transaction signing code deliberately creates its signatures in
1827
such a way that they leak information about the underlying key
1928
material, such as a private key or a [BIP32 HD wallet seed][topic
@@ -34,12 +43,12 @@ This week's newsletter FIXME:harding
3443
the attacker over the internet. Exfiltration is mainly considered to
3544
be a risk for hardware signing devices that don't have direct access
3645
to the internet. A device that has had its logic corrupted, either
37-
through its firmware or through hardware logic, can now exfiltrate a
46+
through its firmware or through hardware logic, can now quickly exfiltrate a
3847
seed even if the device is never connected to a computer (e.g. all
3948
data is transferred using NFC, SD cards, or QR codes).
4049

41-
Methods of performing [exfiltration resistant signing][topic
42-
exfiltration resistant signing] for Bitcoin have been discussed
50+
Methods of performing [exfiltration-resistant signing][topic
51+
exfiltration-resistant signing] for Bitcoin have been discussed
4352
(including in Optech newsletters as far back as [Newsletter
4453
#87][news87 anti-exfil]) and are currently implemented in two hardware
4554
signing devices that we are aware of (see [Newsletter #136][news136
@@ -48,19 +57,17 @@ This week's newsletter FIXME:harding
4857
single-sig signing, although that may be less of a downside if users
4958
become accustomed to other types of signing, such as [scriptless
5059
multisignatures][topic multisignature], that also require additional
51-
round trips of communication. Alternative methods of exfiltration
52-
resistant signing that offer different tradeoffs are also known,
60+
round trips of communication. Alternative methods of exfiltration-resistant
61+
signing that offer different tradeoffs are also known,
5362
although none has been implemented in Bitcoin hardware signing devices
5463
to our knowledge.
5564

5665
Optech recommends that anyone using hardware signing devices to protect
57-
substantial amounts of money take steps to prepare against corrupted
58-
hardware or firmware, either through the use of exfiltration resistant
59-
signing or though the use of multiple independent devices (e.g. with
66+
substantial amounts of money guard against corrupted
67+
hardware or firmware, either through the use of exfiltration-resistant
68+
signing or through the use of multiple independent devices (e.g. with
6069
scripted or scriptless multisignature or threshold signing).
6170

62-
<!-- FIXME:harding add Meni's reference for block withholding attack to topic page -->
63-
6471
- **Block withholding attacks and potential solutions:**
6572
Anthony Towns [posted][towns withholding] to the Bitcoin-Dev mailing
6673
list to discuss the [block withholding attack][topic block
@@ -82,7 +89,7 @@ This week's newsletter FIXME:harding
8289
prevents the pool from earning any income from that miner.
8390

8491
Stratum v2 includes an optional mode that pools can enable to allow
85-
miners to include a different set of transaction in their candidate
92+
miners to include a different set of transactions in their candidate
8693
blocks than what the pool suggests mining. The pool miner can even
8794
attempt mining transactions that the pool doesn't have. This can make
8895
it expensive for the pool to validate miner shares: each share can
@@ -99,13 +106,15 @@ This week's newsletter FIXME:harding
99106
collect payment from a classic block withholding attack.
100107

101108
This incentivizes pools to either forbid client transaction selection
102-
or to require pool miners use a public identity so that bad actors can
109+
or require that pool miners use a persistant public identity (e.g. a
110+
name validated through government-issued documentation) so that bad
111+
actors can
103112
be banned.
104113

105114
One solution Towns proposes is for pools to provide multiple block
106115
templates, allowing each miner to choose their preferred template.
107116
This is similar to the existing system used by [Ocean Pool][]. Shares
108-
submitted based on a pool-created templates can be validated quickly
117+
submitted based on pool-created templates can be validated quickly
109118
and with a minimum amount of bandwidth. This prevents the invalid
110119
shares attack that pays 100% but does not help with the approximately
111120
99.9% profitable block withholding attack.
@@ -129,7 +138,7 @@ This week's newsletter FIXME:harding
129138
clients to upgrade, but it would reduce their security
130139
significantly.
131140

132-
- *Requires pool miners use a private template from the pool:* not
141+
- *Requires pool miners to use a private template from the pool:* not
133142
only would a template be required to prevent the 100% invalid shares
134143
attack but the pool would need to keep that template secret from
135144
pool miners until after all shares generated using that template
@@ -153,22 +162,22 @@ This week's newsletter FIXME:harding
153162
it costs almost nothing to attack pools that allow anonymous miners,
154163
whereas pools that require miners to identify themselves can ban known
155164
attackers. Fixing block withholding could help Bitcoin mining to
156-
become more decentralized.
165+
become more anonymous and decentralized.
157166

158167
- **Statistics on compact block reconstruction:** developer 0xB10C
159168
[posted][0xb10c compact] to Delving Bitcoin about the recent
160169
reliability of [compact block][topic compact block relay]
161170
reconstruction. Many relaying full nodes have been using [BIP152][]
162171
compact block relay since the feature was added to Bitcoin Core 0.13.0
163-
in 2016. This allows two peers which have already shared some
172+
in 2016. This allows two peers that have already shared some
164173
unconfirmed transactions to use a short reference to those
165174
transactions when they are confirmed in a new block rather than
166175
re-transmitting the entire transaction. This significantly reduces
167176
bandwidth and, by doing so, also reduces latency---allowing new blocks
168177
to propagate more quickly.
169178

170179
Faster propagation of new blocks decreases the number of accidental
171-
blockchain forks. Fewer forks reduces the amount of proof-of-work that
180+
blockchain forks. Fewer forks reduces the amount of proof-of-work (PoW) that
172181
is wasted and reduces the number of _block races_ that benefit larger
173182
mining pools over smaller pools, helping to make Bitcoin more secure
174183
and more decentralized.
@@ -200,18 +209,16 @@ This week's newsletter FIXME:harding
200209
consideration of a [pull request][bitcoin core #30493] to enable
201210
`mempoolfullrbf` by default in an upcoming version of Bitcoin Core.
202211

203-
<!-- FIXME:harding update ephemeral anchors topic to include P2A -->
204-
205212
- **Replacement cycle attack against pay-to-anchor:** Peter Todd
206213
[posted][todd cycle] to the Bitcoin-Dev mailing list about the
207214
pay-to-anchor (P2A) output type that is part of the [ephemeral
208-
anchors][topic ephemeral anchors] proposal. P2A is an transaction
215+
anchors][topic ephemeral anchors] proposal. P2A is a transaction
209216
output that anyone can spend. This can be useful for [CPFP][topic
210217
cpfp] fee bumping---especially in multiparty protocols such as LN.
211218
However, CPFP fee bumping in LN is currently vulnerable to a
212219
counterparty performing a [replacement cycling attack][topic
213-
replacement cycling] where the malicious counterparty perfroms a
214-
two-step process. They first replace an honest user's version of a
220+
replacement cycling] where the malicious counterparty performs a
221+
two-step process. They first [replace][topic rbf] an honest user's version of a
215222
transaction with the counterparty's version of the same transaction.
216223
They then replace the replacement with a transaction unrelated to
217224
either user's version of the transaction. When an LN channel has
@@ -226,8 +233,8 @@ This week's newsletter FIXME:harding
226233
benefit from the attack, so there's no direct incentive for third
227234
parties to attack P2A outputs. The attack can be free in the case
228235
where the attacker is planning to broadcast their own transaction at a
229-
feerate higher than the honest user's P2A spend and the attacker is
230-
able to successfully complete the replacement cycle without their
236+
feerate higher than the honest user's P2A spend and the attacker
237+
successfully completes the replacement cycle without their
231238
intermediate state getting confirmed by miners. All existing deployed
232239
LN mitigations against replacement cycling attacks (see [Newsletter
233240
#274][news274 cycle mitigate]) will be equally effective at defeating
@@ -238,10 +245,11 @@ This week's newsletter FIXME:harding
238245
mailing list to announce the availability of a [proposed BIP][frost
239246
sign bip] for creating [scriptless threshold signatures][topic
240247
threshold signature] for Bitcoin's implementation of [schnorr
241-
signatures][topic schnorr signatures]. This allows a set of wallets
242-
that have already performed a set up procedure to securely create
248+
signatures][topic schnorr signatures]. This allows a set of signers
249+
that have already performed a setup procedure (e.g. using
250+
[ChillDKG][news312 chilldkg]) to securely create
243251
signatures that only require interaction from a dynamic subset of
244-
those wallets. The signatures are indistinguishable onchain from
252+
those signers. The signatures are indistinguishable onchain from
245253
schnorr signatures created by single-sig users and scriptless
246254
multisignature users, improving privacy and fungibility.
247255

@@ -273,10 +281,19 @@ FIXME:stickies-v
273281
projects. Please consider upgrading to new releases or helping to test
274282
release candidates.*
275283

276-
- [Libsecp256k1 0.5.1][] FIXME:harding
284+
- [Libsecp256k1 0.5.1][] is a minor release for this library of
285+
Bitcoin-related cryptographic functions. It changes the default size
286+
of the precomputed table for signing to match Bitcoin Core's default
287+
and adds example code for ElligatorSwift-based key exchange (which is
288+
the protocol used in [version 2 encrypted P2P transport][topic v2 p2p
289+
transport]).
277290

278-
- [BDK 1.0.0-beta.1][] is a release candidate for "the first beta version of
279-
`bdk_wallet` with a stable 1.0.0 API". FIXME:harding update
291+
- [BDK 1.0.0-beta.1][] is a release candidate for this library for
292+
building wallets and other Bitcoin-enabled applications. The original
293+
`bdk` Rust crate has been renamed to `bdk_wallet` and lower layer
294+
modules have been extracted into their own crates, including
295+
`bdk_chain`, `bdk_electrum`, `bdk_esplora`, and `bdk_bitcoind_rpc`.
296+
The `bdk_wallet` crate "is the first version to offer a stable 1.0.0 API."
280297

281298
## Notable code and documentation changes
282299

@@ -388,4 +405,5 @@ repo], and [BINANAs][binana repo]._
388405
[news257 eclair]: /en/newsletters/2023/06/28/#eclair-2701
389406
[blips endorsement]: https://github.com/lightning/blips/pull/27
390407
[news306 testnet4]: /en/newsletters/2024/07/12/#bitcoin-core-pr-review-club
391-
[news311 testnet4]: /en/newsletters/2024/06/07/#bip-and-experimental-implementation-of-testnet4
408+
[news311 testnet4]: /en/newsletters/2024/06/07/#bip-and-experimental-implementation-of-testnet4
409+
[news312 chilldkg]: /en/newsletters/2024/07/19/#distributed-key-generation-protocol-for-frost

_topics/en/acc.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ optech_mentions:
4949
- title: "BitVMX: an alternative to BitVM for verification of program execution"
5050
url: /en/newsletters/2024/05/17/#alternative-to-bitvm
5151

52+
- title: "Optimistic verification of zero-knowledge proofs using CAT, MATT, and Elftrace"
53+
url: /en/newsletters/2024/08/09/#optimistic-verification-of-zero-knowledge-proofs-using-cat-matt-and-elftrace
54+
5255
## Optional. Same format as "primary_sources" above
5356
see_also:
5457
- title: "Merklize All The Things (MATT)"

_topics/en/channel-commitment-upgrades.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ optech_mentions:
4141
- title: "BOLTs #869 introduces a new channel quiescence protocol, in part for channel upgrades"
4242
url: /en/newsletters/2024/06/28/#bolts-869
4343

44+
- title: "LND #8952 refactors code to make it easier to implement dynamic commitments"
45+
url: /en/newsletters/2024/08/09/#lnd-8952
46+
4447
## Optional. Same format as "primary_sources" above
4548
see_also:
4649
- title: Anchor outputs

_topics/en/cluster-mempool.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ optech_mentions:
7979
- title: "Bitcoin Core #30126 introduces a cluster linearization function for eventual use by cluster mempool"
8080
url: /en/newsletters/2024/08/02/#bitcoin-core-30126
8181

82+
- title: "Bitcoin Core #30285 adds two key cluster linearization algorithms"
83+
url: /en/newsletters/2024/08/09/#bitcoin-core-30285
84+
8285
## Optional. Same format as "primary_sources" above
8386
see_also:
8487
- title: Package relay

_topics/en/compact-block-relay.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ optech_mentions:
5757
- title: "Proposal to use weak blocks to improve compact block relay when mempool policies diverge"
5858
url: /en/newsletters/2024/04/24/#weak-blocks-proof-of-concept-implementation
5959

60+
- title: "Recent statistics on the success rate of compact block reconstruction"
61+
url: /en/newsletters/2024/08/09/#statistics-on-compact-block-reconstruction
62+
6063
## Optional. Same format as "primary_sources" above
6164
# see_also:
6265
# - title:

_topics/en/ephemeral-anchors.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ title: Ephemeral anchors
66
# shortname: foo
77

88
## Optional. An entry will be added to the topics index for each alias
9-
#title-aliases:
10-
# - Foo
9+
title-aliases:
10+
- "Pay-to-Anchor (P2A)"
11+
- Ephemeral dust
1112

1213
## Required. At least one category to which this topic belongs. See
1314
## schema for options
@@ -59,6 +60,12 @@ optech_mentions:
5960
- title: Proposed changes to LN for v3 relay and ephemeral anchors
6061
url: /en/newsletters/2024/01/24/#proposed-changes-to-ln-for-v3-relay-and-ephemeral-anchors
6162

63+
- title: Description of a replacement cycling attack against transactions using P2A
64+
url: /en/newsletters/2024/08/09/#replacement-cycle-attack-against-pay-to-anchor
65+
66+
- title: "Bitcoin Core #30352 introduces a new standard output type, Pay-To-Anchor (P2A)"
67+
url: /en/newsletters/2024/08/09/#bitcoin-core-30352
68+
6269
## Optional. Same format as "primary_sources" above
6370
see_also:
6471
- title: V3 Transaction Relay

_topics/en/exfiltration-resistant-signing.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Exfiltration resistant signing
2+
title: Exfiltration-resistant signing
33

44
## Optional. Shorter name to use for reference style links e.g., "foo"
55
## will allow using the link [topic foo][]. Not case sensitive
@@ -24,7 +24,7 @@ primary_sources:
2424
## Optional. Each entry requires "title", "url", and "date". May also use "feature:
2525
## true" to bold entry
2626
optech_mentions:
27-
- title: Proposal to standardize an exfiltration resistant nonce protocol
27+
- title: Proposal to standardize an exfiltration-resistant nonce protocol
2828
url: /en/newsletters/2020/03/04/#proposal-to-standardize-an-exfiltration-resistant-nonce-protocol
2929

3030
- title: Overview of anti-covert-channel signing techniques
@@ -33,6 +33,9 @@ optech_mentions:
3333
- title: Description of anti-exfiltration technique being used in BitBox02 and Jade hardware wallets
3434
url: /en/newsletters/2021/02/17/#anti-exfiltration
3535

36+
- title: "Dark Skippy: faster exfiltration of HD wallet seeds"
37+
url: /en/newsletters/2024/08/09/#faster-seed-exfiltration-attack
38+
3639
## Optional. Same format as "primary_sources" above
3740
# see_also:
3841
# - title:
@@ -41,7 +44,7 @@ optech_mentions:
4144
## Required. Use Markdown formatting. Only one paragraph. No links allowed.
4245
## Should be less than 500 characters
4346
excerpt: >
44-
**Exfiltration resistant signing** is the process of creating
47+
**Exfiltration-resistant signing** is the process of creating
4548
signatures for Bitcoin transactions using a protocol that can be
4649
audited to ensure the signature doesn't contain any biased or
4750
otherwise manipulated elements that could be used to compromise the

_topics/en/htlc-endorsement.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ optech_mentions:
5050
- title: "HTLC endorsement testing and data collection"
5151
url: /en/newsletters/2023/08/09/#htlc-endorsement-testing-and-data-collection
5252

53+
- title: "Eclair #2884 implements BLIP4 for HTLC endorsement"
54+
url: /en/newsletters/2024/08/09/#eclair-2884
55+
5356
## Optional. Same format as "primary_sources" above
5457
see_also:
5558
- title: Channel jamming attacks

_topics/en/hwi.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ see_also:
7878
- title: Miniscript
7979
link: topic miniscript
8080

81-
- title: Exfiltration resistant signing
82-
link: topic exfiltration resistant signing
81+
- title: Exfiltration-resistant signing
82+
link: topic exfiltration-resistant signing
8383
---
8484
Designed primarily by Bitcoin Core developers to allow that software to
8585
use hardware wallets as external signers, HWI is now being used by

_topics/en/rendez-vous-routing.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ optech_mentions:
9595
- title: "Proposed BLIP for adding a blinded path field to BOLT11 invoices"
9696
url: /en/newsletters/2024/07/05/#adding-a-bolt11-invoice-field-for-blinded-paths
9797

98+
- title: "LND #8735 and #8764 improve LND's support for blinded paths, including for multipath"
99+
url: /en/newsletters/2024/08/09/#lnd-8735
100+
98101
## Optional. Same format as "primary_sources" above
99102
see_also:
100103
- title: Unannounced channels

0 commit comments

Comments
 (0)