pull down to refresh

Zach Herbert, CEO of Foundation Devices (a ColdCard competitor) put this out a few hours ago, alleging that this problem has its roots in CC's attempt to avoid an open source license:

Regarding the Coldcard entropy bug – many folks are explaining what happened but I wanted to take a minute to explain why it may have happened.

It's a disastrous situation and our heart goes out to all the Bitcoiners affected.

Here's a timeline of events:

On July 28 2020: @FoundationHQ announced our first Passport hardware wallet and noted that we were building on Coldcard firmware which at the time was GPLv3 licensed (FOSS license).

On July 30 2020: NVK publicly said he regretted choosing GPL because Coldcard now had a “clone” and that they would change things in future updates. https://x.com/nvk/status/1288860345864527874

On November 18 2020: Coldcard added its MIT + Commons Clause license, prohibiting commercial products substantially derived from the software. https://t.co/OtBGLdeFTH

On January 8, 2021: Coldcard firmware 3.2.1 formally announced, “License changed from GPL to MIT+CC on files for which the GPL doesn’t apply.” CC is the "Commons Clause" license addendum which is "source available" instead of FOSS.

On March 1, 2021: The “First pass w/ libNgU” commit removed the GPL @Trezor-derived crypto libraries and replaced them with libNgU. That same 120-file commit changed seed generation code. libNgU was licensed with a novel “Licensed for Bitcoin Only” license.

On March 17, 2021: Version 4.0.0 announced that all crypto and BIP39 code had been replaced and that the “last remaining GPL code” was removed. https://t.co/40xchCMOMx
https://t.co/UBdezpgvDC

Our best understanding right now is that the entropy bug was collateral damage from this major overhaul of the codebase.

To be clear, this overhaul was not solely about licensing. Coldcard also cited technical goals including adopting Bitcoin Core’s libsecp256k1, faster AES and SHA implementations, and reproducible builds.

But the timeline establishes two things:
(1) Foundation’s launch was the obvious impetus for Coldcard’s licensing change, and
(2) removing the remaining GPL code was an explicit goal of the subsequent v4 rewrite.

We don't know by how much the licensing pressure affected the scope or timeline of the rewrite. All we can determine is that the entropy bug was introduced inside the same 120-file commit that removed the old GPL code dependencies.

Meh. They've been attacking this with words forever. Are they going to withstand a targeted attack? Time will tell.

The real question is why didn't we find a truly critical error that existed for 7 ish years?

I know why I didn't find it - I didn't review all the code back when I manually reviewed and didn't notice it. I stopped using my coldcard by the time my bot-aided review set-up was productive. I never ran it on the improved system.

I wonder why Ledger's lab didn't find it. Why in one evening we find not one but 2 critical issues. It means that my surprise at Evan being surprised someone is reviewing his code, was me living in opti dream space. No one is doing shit, we're all yolobois.

reply
30 sats \ 0 replies \ @anon 31 Jul
On March 1, 2021: The “First pass w/ libNgU” commit removed the GPL @Trezor-derived crypto libraries and replaced them with libNgU. That same 120-file commit changed seed generation code. libNgU was licensed with a novel “Licensed for Bitcoin Only” license

So this was the precise moment of the vulnerability?

reply