It is unfortunate to see that so much great Nostr stuff has been consumed by the AI slop virus
semisol
semisol@nostr.land
npub12262...grkj
👨💻 software developer
📨 nostr.land relay
all opinions are my own.
It seems that the details were already posted all over the place over Twitter and Telegram, so here is an explanation of it:
In Coldcard, there are two implementations of getting bytes from the HWRNG, in cckt and libngu.
The path in libngu is used for generating seeds. This one calls the MicroPython API to get random values.
The MicroPython API uses the HWRNG if enabled. The problem was that Coinkite disabled the HWRNG for MicroPython.
This should not have been an issue, as libngu had a check to see if the HW RNG is enabled. However, this used ifndef, which explicitly checked *if the HW RNG enable was not configured*. It did not check if the HW RNG enable was turned off explicitly, which is what Coinkite did.
This led to their code using the flawed software MicroPython RNG, which was solely based on the device boot time and a very weak manufacturing identifier.
This means that there are not a lot of different seeds. In Mk4/Mk5, this issue still exists. The only difference is that 32 actually random bits (which is tiny) have been mixed into the RNG.
By overly complicating their codebase, in what can only be described as “attempted security through complexity”, they have put all user funds at risk.
Regarding the implications:
- If you generated using dice or wordlist or another method that included non-Coldcard entropy, you are fine.
- If you generated on a non-Coldcard device, you are fine.
- If not, your funds are at risk. A passphrase will help slow it down but the main seed is still compromised.
Multisigs: You are affected *privacy wise* if one of your members is a Coldcard-generated seed. You are only at risk if the majority of your members are CC.
Secure element RNGs: These are fine. You need a proper one though from Infineon/NXP/ST, and not the crappy IoT ones.
Also beware the HWW firmware can still butcher the resulting numbers.
The Coldcard RNG failure was not due to a weakness in HW/SE RNGs.
The CC firmware’s multiple layers of complexity meant that the secure RNG was swapped for an insecure one. (They also never used SE RNG in Mk3)
I estimate that there is only <64 bits of entropy in these seeds
⚠️ I have strong reasons to believe Mk4/5 is also at risk, with those devices only having somewhat more entropy.
CHANGE YOUR SEEDS!!
On Nostr, you are free to do anything, except to criticise Bitcoin
On chain data could be stored before Taproot, always.
Rolling back Taproot because it could store on chain data is the same as burning down your house to kill a cockroach.
You can just kill the cockroach (implement a relay policy)
e.V.’s are amazing.
Why does absolutely none exist for Nostr and why are we shoveling money at privately owned “charities” that have failed to achieve much on Nostr?
View quoted note →
I have still yet to see the AI agent hype materialize.
“Agents will pay agents” “SaaS is going to die”
I cannot tell a single thing different from 1.5 years ago except:
- more people are now cosplaying software development
- more digital pollution
Neither NIPs or NostrHub are a good solution to the problem that Nostr specifications are a disorganized mess.
Reinventing the wheel every time in different ways is harmful to the development of the protocol.
This has already been solved by basically every other protocol by making a standards body, but somehow we have failed to do this on Nostr.
One should also exist on Nostr, ideally with the following properties:
- It should be open for anyone to participate, but with some commitments.
- Members should in general be required to participate on a lot of topics, to prevent drive-by slop.
- Maybe a small membership fee to cover the hosting of the infrastructure and to again prevent drive-by slop.
- A process for discussing and creating standards should exist, that is not too restrictive but does offer some resistance.
- There should be bylaws to prevent bad-faith actors and to ensure the main goals do not get derailed.
Or maybe something like the C2SP.
I cannot find a single person outside of Nostr who wants to actually use AI vibeslop vomit.
Maybe because they care that their software works, and is not blasting them with AI overexplanation syndrome?