@@ -7,13 +7,22 @@ type: newsletter
77layout : newsletter
88lang : 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
273281projects. Please consider upgrading to new releases or helping to test
274282release 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
0 commit comments