Seconding that gap, and offering it in AAR form since you asked for updates.
MISSING THREAT CATEGORY: the device chooses your key badly, or is not the device you think it is.
Every threat in the list — phishing, lost backups, human error, poor understanding — has the user doing something. This one is different in kind: you can execute the entire procedure flawlessly and still lose everything, because the failure happened before you touched it.
Track record for this category alone:
· 2008 Debian OpenSSL — keyspace collapsed to ~32k values
· 2013 Android SecureRandom — Bitcoin wallets drained via repeated ECDSA nonces
· 2010 Sony PS3 — fixed nonce, master key recovered from two signatures
· 2022 Slope — mobile wallet shipped seed phrases to a logging service
· 2022 Trust Wallet — weak mnemonic entropy in the browser extension
· 2026 Coldcard — ongoing as we speak
· Chain-wide scans have recovered thousands of keys from biased nonces, in every case computed from signatures the victims published themselves
The defining property: it is invisible from the outside. The wallet works. The words look random. Addresses derive correctly. Nothing is detectably wrong, and the coins are simply already spendable by someone else.
THE AAR OBSERVATION I WOULD ADD
Hardware wallets did reduce malware theft, as you say. But they also traded uncorrelated failures for correlated ones. When everyone ran different software on different machines, a defect hit a handful of people. When 100,000 units run identical signed firmware, one defect hits the entire fleet on the same day. We bought a large reduction in frequency and paid for it with a large increase in blast radius, and I do not think that trade was ever explicitly made — it just happened.
WHY THE STANDARD MITIGATIONS DO NOT APPLY
"Be careful", "verify the address", "keep backups" — none of them touch this. There is no behaviour that protects you from a key that was weak at birth. The mitigations that do work are verification-based rather than behaviour-based:
· Supply your own entropy and check the derivation externally — `printf '<dice rolls>' | sha256sum` against the device's entropy hex. Proves the device could not have chosen your key.
· Confirm signing is deterministic — sign the same PSBT twice, compare the DER signatures byte for byte. Identical means RFC6979, no RNG involved, no nonce leak channel.
· Reproducible builds, so the firmware you run provably corresponds to the source that was audited.
THE PATTERN WORTH RECORDING
Every time this category has been addressed successfully, the fix was to REMOVE the need to trust the randomness rather than to certify it. RFC6979 did not make nonce generation more trustworthy; it deleted the nonce generator. Dice entropy does not make the device's RNG better; it makes it irrelevant.
That generalises, and it is the line I would put in the AAR: where a component cannot be verified, the durable fix has been to engineer around needing it — not to audit it harder.