COLDCARD RNG incident the public record, collected and explained
Informational only, and this site never asks for your seed words. details

Informational only. This is an open source collection of what others have published about the incident, together with an explanation of it. It is not financial, security or legal advice, and not a substitute for professional advice about your own situation. It is not affiliated with, endorsed by, or speaking for Coinkite. Material is attributed and quoted as published; where sources disagree their scenarios are kept separate with their assumptions rather than reconciled into one answer. Everything is meant to be checked against the linked evidence rather than taken on trust. Act on your own judgement about a particular situation. Editorial standards and corrections.

Do not disclose recovery material to a website, form, message or support account. This site never asks for it, and contributions containing recovery words or private keys are not accepted.

r/Bitcoin: correction disputing a claim that the MCU UID is part of the seed

reddit-mcu-uid-seed-correction

https://www.reddit.com/r/Bitcoin/comments/1vg0nop/coldcard_mcu_uid_is_not_part_of_the_seed_stop/

Latest reviewed change

source content difference between and

Reddit served 1 additional comment record(s); the diff preserves their text and any edits to existing records.

seen +8 -0 full history below
 It would be prudent to remind people here that there are still a lot of vulnerable funds that could be saved and that it would be anti-social to explain how to reduce the search space of coldcard devices just to brag about how smart you are, or show that some rando was wrong on the internet.
 
 Plenty of other people could be posting about the *exact* search space needed to enumerate vulnerable seeds and are kindly refraining from doing so.  Just because you could figure out that doesn't mean that every would be coin-thief is going to figure it out before the owners sweep their coins.
+
+comment: p20heev
+parent: t1_p1y70jo
+author: opossum_cz
+created_utc: 1785999781

First lines only. The complete diff is in the timeline below.

Organisation
reddit
Evidence role
Community discussion
Published
not established
Source changes
1
Detected differences
1
Unreviewed
0
Copies held
2

Every check is recorded, including checks that found no text change. A detected edit is therefore bounded between two checks. The publisher's exact save time is not observable from this record. Last checked .

  1. source content difference between and Current source content +8 -0

    Reddit served 1 additional comment record(s); the diff preserves their text and any edits to existing records.

    seen · Captured here 5,527 chars
    What changed from the previous capture 8 lines
     It would be prudent to remind people here that there are still a lot of vulnerable funds that could be saved and that it would be anti-social to explain how to reduce the search space of coldcard devices just to brag about how smart you are, or show that some rando was wrong on the internet.
     
     Plenty of other people could be posting about the *exact* search space needed to enumerate vulnerable seeds and are kindly refraining from doing so.  Just because you could figure out that doesn't mean that every would be coin-thief is going to figure it out before the owners sweep their coins.
    +
    +comment: p20heev
    +parent: t1_p1y70jo
    +author: opossum_cz
    +created_utc: 1785999781
    +edited: false
    +body:
    +Sounds plausible.
    
    Extracted text as captured
    post: 1vg0nop
    author: opossum_cz
    created_utc: 1785915824
    title: ColdCard MCU UID is not part of the seed - stop repeating that nonsense
    body:
    It is one of the values that is used to generate the seed, but it is xored with timer value, RTC time, registers etc. It is used to get some entropy.
    
    If MCU UID is a part of the seed in any shape or form to tie generated seed to the device. It would be massive vulnerability, as everybody who gets ahold of your device (and especially the company itself which knows all MCU UIDs) would be able to lower the entropy of every seed key generated there by 32 bits immediately.
    
    comment: p1tbkht
    parent: t3_1vg0nop
    author: Javanaut018
    created_utc: 1785917094
    edited: false
    body:
    Doesn't matter if the UID (only the first 32 bit of it was used tho) is part of the generated key or used for the seed of the RNG. As the RNG is fully known, it really only depends on the set of input parameters that flowed into the private key making process.
    
    You just need to test all possible or at least all probable input arguments to the generation chain and ka-chinnng! there it comes.
    
    This is the big difference to TRNG units. They draw randomness from non-deterministic processes like noising amplifiers or chirping ring-oscillators, things that are physically governed by the butterfly effect. Such unit run for a couple of milliseconds and then start to throw out randomized numbers with 100% maxed out entropy. Impossible to guess on that.
    
    Also ppl tend to underestimate how vast key spaces are and have to be. The collapsed key space of the weak RNG chain in the device compared to the full 256-bit space is more or less like 1 atom in the whole milky way. Thats why such attack was feasible in the first place.
    
    Sad double so that such perfectly working TRNG is on all affected devices. It was only forgotten to plug it in ...
    
    comment: p1u2pvr
    parent: t3_1vg0nop
    author: frugaleringenieur
    created_utc: 1785929305
    edited: false
    body:
    As long as you can fix all the other constants (which could be possible in the 40 bits hack) and the MCU UID is XORED against it, you could reliably identify a physical accessed Coldcard Mk3 as a victim.
    
    This is of importance for recovery of funds - if ever.
    
    comment: p1u7dra
    parent: t1_p1u2pvr
    author: opossum_cz
    created_utc: 1785931011
    edited: false

    Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.

  2. Earliest copy held
    seen · Captured here 5,409 chars
    Extracted text as captured
    post: 1vg0nop
    author: opossum_cz
    created_utc: 1785915824
    title: ColdCard MCU UID is not part of the seed - stop repeating that nonsense
    body:
    It is one of the values that is used to generate the seed, but it is xored with timer value, RTC time, registers etc. It is used to get some entropy.
    
    If MCU UID is a part of the seed in any shape or form to tie generated seed to the device. It would be massive vulnerability, as everybody who gets ahold of your device (and especially the company itself which knows all MCU UIDs) would be able to lower the entropy of every seed key generated there by 32 bits immediately.
    
    comment: p1tbkht
    parent: t3_1vg0nop
    author: Javanaut018
    created_utc: 1785917094
    edited: false
    body:
    Doesn't matter if the UID (only the first 32 bit of it was used tho) is part of the generated key or used for the seed of the RNG. As the RNG is fully known, it really only depends on the set of input parameters that flowed into the private key making process.
    
    You just need to test all possible or at least all probable input arguments to the generation chain and ka-chinnng! there it comes.
    
    This is the big difference to TRNG units. They draw randomness from non-deterministic processes like noising amplifiers or chirping ring-oscillators, things that are physically governed by the butterfly effect. Such unit run for a couple of milliseconds and then start to throw out randomized numbers with 100% maxed out entropy. Impossible to guess on that.
    
    Also ppl tend to underestimate how vast key spaces are and have to be. The collapsed key space of the weak RNG chain in the device compared to the full 256-bit space is more or less like 1 atom in the whole milky way. Thats why such attack was feasible in the first place.
    
    Sad double so that such perfectly working TRNG is on all affected devices. It was only forgotten to plug it in ...
    
    comment: p1u2pvr
    parent: t3_1vg0nop
    author: frugaleringenieur
    created_utc: 1785929305
    edited: false
    body:
    As long as you can fix all the other constants (which could be possible in the 40 bits hack) and the MCU UID is XORED against it, you could reliably identify a physical accessed Coldcard Mk3 as a victim.
    
    This is of importance for recovery of funds - if ever.
    
    comment: p1u7dra
    parent: t1_p1u2pvr
    author: opossum_cz
    created_utc: 1785931011
    edited: false

    Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.

How to check this yourself

The excerpts and plain unified diffs above show the text this project held and how it changed. To verify a quotation, compare it against the page itself or against the Internet Archive's copies, which are independent of this project.

Complete captures are held offline rather than mirrored here, so this page shows diffs and excerpts. If a quotation is ever disputed, the full copy can be produced. Ask.