Jak už asi víte, tisíce uživatelů hardwarové peněženky Coldcard přišlo během uplynulých dní o své bitcoiny. Jak je něco takového možné? A jedná se o zranitelnost, která by se mohla dotknout i uživatelů Trezoru či jiných peněženek? Vysvětlíme si v dnešním Občasníku.
Příliš brzy?
Co se stalo?
První vlaštovkou oznamující, že se zřejmě něco děje, byl post Kevina Loaeca, a to navečer ve čtvrtek 30.7.
Bohužel tyto zvěsti se ukázaly být pravdivé a během následujících hodin uživatelé peněženky Coldcard zjišťovali, že ve svých peněženkách mají jen odchozí transakce. Bitcoinová komunita si rychle uvědomila, že toto není příklad klasického phishingu, ale doposud neznámá zranitelnost v samotných peněženkách.
Naplnila se černá můra všech hodlerů: bitcoin mizel z domněle nejbezpečnějšího místa, ze samotné hardwarové peněženky. Komunita bila na poplach a urgovala všechny coldcardisty, aby si přesunuli své prostředky pryč. Poslední pochybnosti byly rozptýleny samotnou Coldcard, která zveřejnila, že problém mají zařízení s firmware verze 4.0.1 a výše:
Ve zkratce: impaktované jsou peněženky Coldcard s firmwarem vydaným po březnu 2021. Uživatelé, kteří si nechali peněženkou vygenerovat seed (a neházeli si např. kostkou pro vytvoření vlastní náhodnosti/entropie) a nenastavili si passphrase, přišli o své zůstatky. Ve firmware Coldcard totiž byla kritická chyba, která generovala velmi slabé seedy, jež je možné poměrně jednoduše uhádnout.
Jak velký je to fuckup?
Tisíce bitcoinerů přišli o vše. Aktuální odhady (Coldcard.rip) hovoří o 1400btc napříč 5400 adres. Největší impaktovaná adresa přišla o 51 bitcoinů. Nepředstavitelná ztráta pro daného hodlera.
Individuální příběhy jsou velmi tragické (čtěte např. zde, zde, zde, zde). V kontextu historických hacků, exit scamů, burzovních kolapsů a podobných fuckupů se nicméně jedná o tragédii menšího rozsahu. Na toto je dobré pamatovat, jelikož někteří lidé v panice přesouvají své prostředky z hardwarových peněženek na burzy a k dalším správcům. Jak uvádí níže Luke Mikic, jsou to právě služby tohoto typu, které připravily bitcoinery v součtu o desítky až stovky tisíc bitcoinů:
Lze očekávat, že instituce (burzy atp.) využijí Coldcard fuckupu k očernění self-custody obecně. Nicméně faktem zůstává, že self-custody je jediný způsob, jak bitcoin skutečně vlastnit, troufám si tvrdit, že se dokonce jedná o jeden z hlavních definičních znaků bitcoinu. Bitcoin na burze se v principu neliší od fiatu v bance - daná instituce či vláda vám jej může jednoduše sebrat, zakázat s ním provádět transakce, či si takové “bitcoiny” tisknout, jelikož se do výběru ven jedná o pouhé zápisy v interní databázi (takto si bitcoin tiskli scammeři v FTX).
Jak se to stalo?
Nejpikantnější otázka celého incidentu. Než se ale dostaneme k tomu jak se to stalo, rozeberme si v detailu, co se stalo: v hardwarových peněženkách Coldcard nefungoval Random Number Generator (RNG). Jedná se o nejdůležitější část hardwarové peněženky, jelikož RNG je zodpovědný za to, že váš seed je skutečně náhodný - a nikdo jej tudíž nemůže uhádnout. Ve funkční peněžence RNG vygeneruje seed, který má minimálně 128 bitů entropie (tj. náhodné číslo o velikost 2128). V Coldcardu to bylo pouze 40 bitů (240). To prosím není 3x méně, nýbrž 288x méně! Či lidsky: jedná se cca o rozdíl v počtu atomů v buňkách viru vs. počet atomů v celém vesmíru. Sledujte níže:
Pozn.: video pracuje s 256bitovou entropií, kterou získáte s 24 slovním seedem. 12 či 20 slovní seed má 128bitovou entropii, která je rovněž neprolomitelná (passphrase entropii dále navyšuje).
Jak je možné, že Coldcard generoval tak nízkou míru náhodnosti? Zařízení Coldcard měla podle všeho vytvářet seedy se stejnou spolehlivostí, jako ostatní bitcoinové peněženky. Měla Secure Element chipy a několik různých zdrojů náhodnosti pro finální tvorbu seedu. Jenže: v kódu který řídil daná zařízení byla chyba způsobující, že nic z toho nehrálo roli. Softwarová chyba způsobila, že veškerá sofistikovaná hejblátka byla ignorována a entropie seedu byla generována jednoduchým softwarovým RNG - který je předvídatelný a generující seedy o velmi nízké náhodnosti; jakmile na tuto kritickou zranitelnost přišli hackeři (patrně s pomocí AI auditu kódu), bylo už triviální si projít úzkou množinu takto vygenerovaných seedů a vybrat prostředky.
Celou situaci si můžeme představit následovně. Firma dlouhá léta tvrdila, že vyrábí moderní sporťáky se sofistikovaným a ultrabezpečným řízením. Jenže pod veškerým leskem a marketingovým pozlátkem se jednalo o auťák ála Flinstones, kde se namísto zrychlení z nuly na sto za 3 sekundy jen odrážíte vlastníma nohama:
A výše uvedená chyba byla v zařízeních Coldcard zhruba od dubna 2021. Pět let jezdili coldcardisti ve Flinstone auťácích a nikdo si ničeho nevšiml. Až před pár dny všem najednou došlo, že je tu průser obřích rozměrů a tenhle auťák nemá ani airbagy, ani brzdy, ba ani střechu. A začal masakr.
Zajímá-li vás detailní technické pozadí bugu, doporučuji pročíst následující článek:
Asi si teď říkáte - notyvole! jak je něco takovýho možný? Jak se mohlo stát, že moderní hardwarová peněženka byla namísto high-tech Lamba jen Flinstonovská parodie? Jak to, že si přes PĚT LET ničeho nevšimli ani samotní vývojáři Coldcard, ani externí výzkumníci?
Zde je zapotřebí ponořit se do žumpy firemní kultury Coinkite (firmy stojící za Coldcard). Projekt Coldcard začal obdobně jako mnoho jiných hardwarových peněženek - tvůrci si roku 2017 forkli Trezoří kód, který je plně Open Source a je možné s ním volně pracovat. Jenže v roce 2020 vznikla další hardwarová firma Foundation, která si pro změnu forkla kód Coinkite. A taková “drzost” se Coinkitu nelíbila, a tak se rozhodli zbavit se Open Source licence, aby jim nikdo nemohl “krást nápady”. Jenže aby Coinkite mohl zavřít licenci u svého software, nemohl jejich kód obsahovat části, které jsou pod Open Source licencí. To znamená, že se museli zříct Trezořího kódu a nahradit jej něčím vlastním. A toto je právě moment, kdy to Coinkite naprosto dosral (jinak se to říct nedá). V dubnu 2021 maže Coinkite Trezoří kryptografii a nahrazuje jí obskurní kryptografickou knihovnou, která do peněženek Coldcard zavádí slabý RNG. Výstižnější ilustraci řčení “pýcha předchází pád” nenajdete.
Níže tento sled událostí detailně vysvětluje Zach Herbert, zakladatel firmy Foundation:
A jak podotýká Stick (spoluzakladatel Trezoru): neaktualizovaná zařízení Coldcard, stále běžící na Trezoří kryptografii, nebyla v aktuálním hacku zasažena:
Dobrá, dobrá, v Coinkite byli nemehla, ale jakto, že bug neobjevili externí výzkumníci? Myslím, že se jedná o kombinaci dvou faktorů:
Zavřená licence. Od dubna 2021 byl kód Coldcard tzv. “source available” - byl tedy stále veřejný, ale nikdo na něm nemohl již legálně stavět a rozvíjet vlastní projekty (ať už for-profit či hobby). To zásadně limituje motivaci nezávislých builderů. Open Source prostředí podporuje kolaboraci a je velmi prospěšné pro odkrývání bugů - jak praví Linusův zákon: “Je-li dost očí, jsou všechny chyby malé”. Coinkite zavřením své licence tomuto prostředí ukázal prostředníček.
Kreténismus NVK. CEO Coinkite Rodolfo Novak (známý jako “NVK”) byl notorický velkohubý kretén, který na Twitteru, v podcastech, na konferencích a zkrátka všude kde mohl, jen kálel na konkurenci a prohlašoval, že oni jsou nejlepší. A obdobný přístup měla firma i k nezávislým výzkumníkům - těm, kteří se na kód jali podívat i přes zavřenou licenci. V posledních dnech se objevilo více zpráv, že na potenciální chybu v kódu někteří poukazovali, ale firma je neposlouchala a poslala do háje, protože Coldcard je přece nejlepší. Čtěte zde a zde. Dobrý zdroj je také stránka nvk.wtf.
A co ostatní hardwarové peněženky?
V posledních dnech se objevil pochopitelný tlak komunity na výrobce hardwarových peněženek, aby vydali vyjádření ohledně bezpečnosti jejich RNG. Můžeme najít vyjádření Ledgeru, BitBoxu, BitKey, a samozřejmě Trezoru. Počítám, že většina čtenářů tohoto newsletteru jsou uživatelé Trezoru, takže se u něj zastavíme a zodpovíme si otázku:
Jak se tvoří náhodnost v zařízeních Trezor?
Pro odpověď vycházím z dedikované stránky “What is entropy and how does Trezor generate your wallet?”, nejdůležitější části uvádím níže česky:
Trezor Model One a Trezor T: entropie ze dvou zdrojů - počítač, ke kterému je Trezor připojen, a hardwarový RNG v mikrokontroleru STM32
Trezor Safe 3 a Safe 5: entropie ze tří zdrojů - počítač, mikrokontroler, a secure element čip Optiga
Trezor Safe 7: entropie ze čtyř zdrojů - počítač, mikrokontroler, Optiga, a čip Tropic01
Nicméně jak ukázal případ Coldcardu, důležité je především mít jistotu, že výrobcem uvedené zdroje náhodnosti jsou skutečně využívány. Jakou můžeme mít jistotu, že v Trezoru nedělají stejné chyby jako v Coinkite? Na toto detailně odpovídá technický ředitel Trezoru v postu níže, kde rovněž odkazuje na konkrétní Trezoří kód:
Co z výše uvedeného vyplývá? Za mě tři hlavní doporučení:
Chcete-li mít nejvyšší možnou míru bezpečnosti, vygenerujte si seed s pomocí Trezor Safe 7. Ten využívá nejvíce zdrojů náhodnosti, včetně dvou specializovaných bezpečnostních čipů. Zároveň se nejedná o nějaký nevyzkoušený zlepšovák - Trezor Safe 7 staví na více než dekádě zkušeností a Open Source kryptografii, která je neustále prověřována (tj. výše zmíněná kryptografická knihovna, které se Coldcard vzdal a přišel tak do záhuby).
Pokud jste v minulosti upgradovali ze starších modelů na nové, měli byste si vygenerovat nový seed v nové peněžence, nikoli pouze importovat starý seed do nové peněženky. Tj. přechod z Trezoru T do Trezoru Safe 7 má vypadat tak, že v TS7 si vygenerujete zcela nový seed, a z Trezoru T pošlete zůstatky blockchainovou transakcí. Jedině tak skutečně využijete všechny bezpečnostní pokroky, které TS7 přináší. Mimochodem tím neříkám, že by Trezor One či T nebyly bezpečné. Bezpečné jsou. Modely Safe akorát posouvají úroveň bezpečnosti v rámci zdravé bitcoinové paranoi ještě dále.
Jste-li dlouhodobý uživatel Trezoru, prozkoumejte možnosti passphrase. Passphrase je bezpečnostní element, kterým mitigujete riziko chyby v RNG. Uživatelé Coldcard s dostatečně silnou passphrase aktuální útok přežili. Passphrase zároveň chrání zneužití vašeho seedu, pokud by jej někdo objevil. U passphrase je nutné chápat, co dělá a jak funguje. Více o passphrase čtěte zde.
Všechno zlé je pro něco dobré
Pozitivním dopadem fuckupu Coldcard je vytvoření bitcoinového “Red Teamu” v posledních dnech, který s pomocí nejnovějších AI nástrojů prověřuje kód rozličných bitcoinových projektů. Dle Calleho (jeden z hlavních členů Red Teamu) tým během prvního dne objevil téměř 5000 zranitelností napříč 390 projekty:
Závěrem dodám: pokud něčemu ohledně bitcoinové bezpečnosti nerozumíte, ptejte se. Raději pokládejte zdánlivě triviální dotazy, než abyste udělali zbytečnou chybu. A pokud jste se stali obětí Coldcard hacku, mluvte se svými blízkými, či mi napište. Sám jsem v minulosti zažil velké ztráty v shitcoinech a pákových obchodech. Ze všeho se lze postupně dostat 🤜🤛.
Děkuji za přečtení a užívejte léto!
-Josef
P.S. V pátek 11.9. budu mluvit na konferenci Plan B v Ostravě! Uvidíme se tam :)


















Perfektne popsane. Diky. 🙏