Jade je cenově dostupná Bitcoinová hardwarová peněženka od firmy Blockstream. Její software i hardware jsou open-source. Na Bitcoinovém ekosystému je hezké, že je pestrý, a tak různí lidé a různé firmy zkoušejí vyvíjet produkty, které fungují odlišně. Filozofie Jade se tak dost liší od mnoha jiných peněženek, které čtenáři asi znají – známé peněženky Trezor a Ledger. Peněženku Jade popíšeme zejména pomocí odlišností od peněženek, které pravděpodobně znáte.
V balení se nachází kromě samotné peněženky také USB-C kabel. Ten je bohužel USB-C ze strany peněženky, ale na straně počítače je starší USB-A port, který novější zařízení už nemají. Samozřejmě, použít můžete jakýkoli datový USB-C kabel. Kromě toho v balení naleznete papírek s návodem na prvotní instalaci, papírek na zálohu seedu a dva papírky s tzv. SeedQR zálohou, o které si ještě povíme.
Vzhled peněženky je trošku sparťanský a připomíná více DIY projekty než SeedSigner – což některým lidem vyhovuje. Kromě USB-C portu obsahuje jedno kolečko, kterým se ovládá menu, tlačítko pro potvrzení volby a vypínací tlačítko. Peněženka má (na rozdíl od například peněženek Trezor) i baterii a dokáže fungovat i bez připojení k počítači USB kabelem.
Propojení s počítačem může probíhat pomocí USB-C připojení (například s desktopovou aplikací Green), bezdrátově pomocí rozhraní Bluetooth (například s mobilní peněženkou Green), ale také v tzv. „Air-gapped režimu“ pomocí animovaných QR kódů. V tomto režimu se k peněžence nic přímo digitálně nepřipojuje a peněženky komunikují pomocí animovaných obrázků QR kódů. Za tímto účelem má peněženka kromě displeje i malou kamerku, pomocí které dokáže skenovat QR kódy z počítače, které mohou obsahovat například přihlašovací výzvu, zálohu peněženky nebo nepodepsanou transakci (ve formátu PBST).
Ačkoli je Jade kompatibilní s několika softwarovými peněženkami, jako jsou Sparrow Wallet, Specter a mnoho dalších, pro nejpohodlnější používání budete potřebovat zelenou peněženku Blockstream. Pomocí ní můžete aktualizovat firmware a využívat pokročilejší funkce, jako je podpora sítě Liquid nebo integrace dvoufaktorové autorizace transakcí. S peněženkou Green můžete také nejsnáze využívat virtuální bezpečný prvek – bez této peněženky musíte používat takzvaný webový server PIN, který je rovněž open-source a můžete jej provozovat na vlastním serveru nebo můžete použít server společnosti Blockstream.
Peněženka Green se podobně jako samotný Jade hodně liší od ostatních peněženek svou filozofií. Umožňuje vytvoření dvoufaktorových účtů a podobně. Jade také nativně podporuje multisig schémata.
Zde je dobré připomenout, že peněženka Jade podporuje pouze Bitcoin na původní síti a aktiva na síti Liquid (Bitcoin, Tether apod.). Nepodporuje jiné sítě jako například Ethereum nebo Monero.
Jelikož je seed záloha digitálních dat, řekli si autoři Jade (a jiných peněženek jako například SeedSigner), že není důvod je reprezentovat pouze ve formátu, který je čitelný lidem (seed), ale bylo by pohodlné pro obnovu je uložit i ve formě QR kódu. Samozřejmě, QR kód nechceme tisknout pomocí klasické tiskárny, protože to porušuje princip, že nechceme seed procesovat pomocí digitálních zařízení, a už vůbec ne pomocí zařízení připojených k internetu.
SeedQR tak vytvoříme pomocí černého fixu – nakreslíme správné tečky na předtištěnou šablonu. Tento proces je trošku náročnější než zapisování seedu ve formě slov, ale jeho obnova je o to jednodušší.
Mimochodem, takto vytvořené peněženky můžeme používat i ve formě dočasných peněženek, o čemž si povíme ještě níže.
Jelikož Jade nemá secure element, vytvořili v Blockstreamu jeho náhradu „v cloudu“. Jade seed rozdělí na dvě části (šikovněji než rozdělením slov na polovinu), přičemž kterákoli část této zálohy je bez druhé zcela nepoužitelná a nedává útočníkovi žádnou dodatečnou informaci. Jedna část je uložena v paměti hardwarové peněženky, druhá je uložena na serveru Blockstreamu. V případě, že chcete peněženku použít, musíte zadat PIN. Po jeho zadání server Blockstreamu pošle vaší peněžence druhou část seedu a ta se v dočasné paměti zařízení Jade spojí. Když Jade vypnete nebo dokončíte práci, z dočasné paměti RAM se druhá část smaže a peněženka je bez zadání pinu a druhé části znovu nepoužitelná. Blockstream přitom má jen polovinu seedu, která sama o sobě není použitelná k ničemu.
Pokud Jade připojujete pomocí peněženky Blockstream Green k počítači pomocí USB nebo k mobilu pomocí Bluetooth, komunikaci s Blockstream servery zajistí přímo peněženka.
Chcete-li využít „airgapped režim“, tedy používat peněženku bez připojování k zařízení, musíte si vystačit s QR kódy, pomocí kterých budete komunikovat s tzv. PIN serverem, který obsahuje druhou část vašeho seedu, a tedy poskytuje zmiňovaný virtuální secure element. V menu zvolíte QR pin unlock a navštívíte na jakémkoli zařízení stránku blkstrm.com/pn.
Na Jade zadáte PIN a pomocí webkamery naskenujete pomocí webstránky animovaný QR kód zobrazený na displeji Jade.
Potom se na stránce zobrazí animovaný QR kód, který načtete zase na Jade a peněženka je odemčena a v dočasné paměti má celý seed. Nyní můžete pomocí peněženek podporujících QR kódy podepisovat transakce.
Na ukázku Airgapped režimu použijeme peněženku Sparrow Wallet. Nejprve si vytvoříme novou peněženku, s nastaveními Native Segwit a jako „signer“ zvolíme „Airgapped Wallet“ a „Jade“. V menu Jade zvolíme Options/Wallet/Export Xpub. Tím se nám ukáže animovaný QR kód, který ukážeme na kameru zařízení, na kterém máme otevřen Sparrow Wallet.
Na peněženku přijmeme nějaké Bitcoiny (záložka Receive) a můžeme vyzkoušet odeslat Bitcoiny na jinou adresu pomocí Sparrow Wallet s Jade.
Po vytvoření transakce se nám zobrazí. Klikneme na Finalize Transaction.
Zobrazí se nám QR kód, který můžeme zvětšit pomocí „Decrease density“, čímž se přemění na animovaný kód. Tento kód naskenujeme pomocí Jade (možnost „Scan QR“).
Po naskenování celého animovaného QR kódu se nám zobrazí adresa, suma a poplatek.
Na závěr se nám zobrazí na Jade QR kód s podepsanou transakcí, kterou naskenujeme ve Sparrow Wallet.
Připomínám, že tento způsob podepisování transakcí je nestandardní – většina uživatelů bude používat připojení přes Bluetooth nebo USB s appkou Blockstream Green, kdy se skenování QR kódů vyhnete. Tento způsob používají jen lidé, kteří nechtějí svoji HW peněženku připojovat k žádnému zařízení.
Airgapped režim může vypadat na první pohled jako nezbytnost, ale v implementaci Jade mám své pochybnosti. To, že je firmware open-source je samozřejmě super, ale ve spolupráci s faktem, že Jade obsahuje Bluetooth rozhraní, mi přijde jako realistická exfiltrace klíče po zadání PINu přes Bluetooth. Uživatel sice má pocit, že používá pouze QR kódy a zařízení k ničemu nepřipojuje, ale se změněným firmwarem je možné po zadání PINu a propojení paměti a virtuálního secure elementu (a tedy vyskládání celého seedu) poslat klíč díky malware ve firmware přes Bluetooth. Toto vyžaduje chytrou modifikaci firmware, ale jedná se o víceméně softwarový útok. Tím, že Jade má Bluetooth rozhraní, nemusíme jej k ničemu připojovat my – se změněným firmwarem se může samotné zařízení připojit ven na zařízení útočníka v blízkosti (např. Raspberry Pi ve skříni v zásuvce nebo někde odložené na baterce).
Porovnejme to s Trezorem, který sice neumí komunikovat přes QR kódy a musí být připojen k počítači pomocí USB, ale počítač mu posílá konkrétní transakce k podpisu a tyto transakce se vracejí podepsané. Pro úspěšný útok je tedy třeba nejen změnit firmware, ale také úspěšně zaútočit na samotný počítač, protože Trezor Suite očekává od zařízení podepsanou konkrétní transakci, kterou uživatel vytvořil na počítači. Pokud i Trezor odemkneme, jediný způsob, jakým komunikuje s okolním světem, je USB, a tudíž ani případný útočníkův firmware nemá tak snadný způsob, jak dostat klíč ven, k tomu je zapotřebí ještě sofistikovanější útok.
Pomocí QR kódů nebo zadáním seedu (což je poněkud těžkopádné) lze používat Jade s dočasnými peněženkami. Můžete mít tak peněženku, kterou standardně nepoužíváte a nemáte ji v žádném zařízení, ale naskenováním SeedQR papírku ze svého Jade uděláte dočasnou peněženku. Po dokončení práce se peněženka z paměti smaže. Takto můžete například podepsat transakci z nějaké starší peněženky, kde jste již nečekali přísun peněz, nebo dočasně obnovit seed z hardwarové peněženky, kterou jste například ztratili a potřebujete z ní dostat Bitcoiny.
Formát SeedQR vám ušetří nervy, zadávání dlouhého seedu pomocí kolečka a jednoho tlačítka je dost zdlouhavé.
Pokud se někdo dostane k vašemu zařízení a podaří se mu získat seed (ať už uhodne, nebo odpozoruje PIN, nebo se k seedu dostane pomocí hacku některého vašeho zařízení), přináší peněženka Green možnost využít tzv. dvoufaktorové ověření transakce (2FA).
Tento přístup využívá multisig schéma 2-z-2 nebo 2-z-3. V obou případech má jeden klíč přímo Blockstream, a pokud mu dodáte podepsanou transakci vaším Jade, přidá podpis za okolností, které si nastavíte. Mimochodem, pro využití této funkcionality nemusíte mít Jade, funguje i se softwarovým klíčem.
Mezi podporované způsoby druhého faktoru patří e-mailové ověření, SMS, telefonát a TOTP služba jako například Google Authenticator. E-mailové ověření umožňuje volitelně zapnout podporu PGP, a tak e-maily přijdou šifrované, i když v době psaní tohoto textu mi tato možnost nefungovala. Telefonát je volání, kde vám server blockstreamu přečte kód, který musíte zadat do aplikace. Green doporučuje zapnout alespoň dva způsoby ověření, kdybyste náhodou o jeden z nich přišli, abyste měli zálohu.
Samozřejmě, tady přichází otázka – co když Blockstream přestane existovat nebo se s vaším druhým faktorem něco stane? U schématu 2-z-2 jsou Bitcoiny po vypršení časového zámku cca 18 měsíců dostupné i bez druhého faktoru. Je proto důležité si je přeposílat na svou adresu, aby se tento časový limit resetoval. U schématu 2-z-3 dostanete jeden klíč navíc, který si musíte odzálohovat, ideálně jinde než první klíč. S tímto třetím klíčem dokážete složit podpis i hned, ale sám o sobě je útočníkovi k ničemu.
Nevýhodou jsou samozřejmě větší, a tedy dražší transakce. Minimálně u sítě Liquid, která je levnější, je však dobré tuto možnost zapnout.
Na druhé straně, užitečnost tohoto nástroje je sporná, jelikož o jistou formu druhého faktoru jde i při virtuálním secure elementu s PINem.
Pokud používáte Bitcoin, máte, předpokládám, často různé peněženky, které zkoušíte a ke kterým si musíte zapisovat seedy. Ať už se jedná o Lightning peněženky, různé softwarové peněženky nebo máte možná dodatečné hardwarové peněženky, které používáte k jiným účelům. Tyto peněženky mají seedy a ty skončí často jako záznamy ve správci hesel, čímž riskujete jejich odcizení v případě hacku počítače. Mnohým se tyto seedy válejí napsané na papírcích a obálkách. Některé hardwarové peněženky – včetně Jade – však mají třetí možnost – standard BIP-85.
Pomocí tohoto standardu lze z vašeho hlavního seedu vypočítat „dětské“ seedy. Tedy pokud máte zálohu hlavní peněženky, umíte pomocí menu peněženky vygenerovat další seedy, které jsou vypočteny z hlavního seedu peněženky. Takto si nemusíte nic navíc zapisovat a pamatovat.
Drobnou nevýhodou je, že při generování odvozených seedů si nemůžete přímo v Jade přidat poznámku, generovány jsou podle čísla (a počtu slov). To v praxi znamená, že si musíte někde poznačit, jak vygenerujete seed které peněženky (například máte softwarovou peněženku, jejíž seed získáte tak, že si ve své hardwarové peněžence dáte vygenerovat 12-slovný seed z indexu 0). Tedy musíte si zapamatovat informaci „Název SW peněženky, 12-slov, index 0, odvozené od seedu mého Jade“. Tuto informaci si můžete zapsat kdekoli do poznámek, není moc citlivá.
Poslední problém je, že ne každá peněženka vám dovolí „obnovit“ neexistující peněženku. Proces vytvoření seedu je zde otočen oproti procesu, jak jsme zvyklí. Většinou seed generuje peněženka, kterou si instalujeme (například Lightning nebo on-chain peněženka), a ta nám řekne, abychom si zapsali seed. Pokud však chceme použít standard BIP-85 jako formu zálohy peněženky, bude proces opačný – seed nám vygeneruje Jade v rámci možnosti BIP-85 z menu a tento seed musíme vložit do peněženky, kterou chceme používat, přes funkcionalitu obnovy peněženky.
Problém je, že některé peněženky zjistí, že peněženka s daným seedem nebyla u nich vytvořena. Týká se to hlavně Lightning peněženek, které na server ukládají stav. Přesto by tento postup měl fungovat na většinu peněženek, které používají jeden ze standardních formátů seedů.
Síť Liquid je alternativní blockchain (nebo „sidechain“) firmy Blockstream, postavený na podobných technologiích jako Bitcoin samotný. Na rozdíl od Bitcoinu má tzn. confidential transactions, které zajišťují, že při transakcích nejsou viditelné částky (podobně jako u kryptoměny Monero) a podporuje nativní alternativní tokeny (jako například USDT–Tether), přičemž na blockchainu není vidět ani o jaký token se jedná, ani částku.
Liquid má momentálně výrazně nižší poplatky než klasický on-chain Bitcoin – 0.1 sat/vB, i když pozor, transakce jsou o něco větší než na Bitcoinu kvůli confidential transactions. Nevýhodou je, že to není permissionless ani zcela decentralizovaný projekt. Bloky vytvářejí členové Liquid federace. Jedná se o větší množství Bitcoinových firem z různých jurisdikcí, ale tvůrcem bloků se nemůže stát kdokoli. Také je třeba důvěřovat, že bude fungovat peg-in a peg-out mechanismus.
Na druhé straně má Liquid množství využití. Pomocí swap služby jako Boltz.exchange lze přijímat Lightning platby bez potřeby přicházející likvidity. Pokud si chcete spořit pomocí dollar cost averaging, je dobrou možností spořit L-BTC (liquid BTC) a čas od času je změnit na Bitcoin na hlavním chainu. Důvod je ten, že utracení Bitcoinů, které vám přišly, může být v budoucnu dražší, a pokud si spoříte například 50 € měsíčně, může být poplatek za utracení tohoto výstupu signifikantní část těchto peněz. Můžete tak počkat, až si naspoříte větší sumu, a až tu si poslat do Bitcoinu.
Podporu sítě Liquid měly mobilní peněženky Green a také peněženka Aqua, která původně vznikla jako projekt v rámci Blockstreamu, ale momentálně se oddělila pod zvláštní firmu a vyvíjí se nezávisle. Do peněženky Aqua můžete přímo přijímat i Lightning platby – přehození na Liquid se děje automaticky na pozadí.
Před vznikem peněženky Jade však chyběla dobrá hardwarová peněženka, která by Liquid podporovala. Green momentálně podporuje dvě hardwarové peněženky, které umí používat Liquid – Ledger a Jade. Můžete tak provádět cenově efektivní dollar cost averaging – přijímat Bitcoiny do Green peněženky s Jade (například přes zmiňovanou swap službu) a stále mít ochranu hardwarové peněženky, včetně 2FA podpory peněženky Green.
Uživatelské rozhraní Jade má oproti jiným peněženkám co dohánět. Připojení na peněženku je často pomalé a samotná peněženka Green má několik chyb (během psaní tohoto článku jsem nahlásil tři chyby – dvě v samotné peněžence a jednu v dokumentaci). Nevýhodou je, že funkcionalita desktopové a mobilní peněženky je odlišná (mobilní verze má více funkcí), takže pokud jste doufali, že budete peněženku používat z počítače přes USB, máte částečně omezené možnosti.
Skenování QR kódů je poněkud těžkopádné a pro dennodenní používání určitě doporučuji raději Bluetooth nebo USB.
Peněženka Green má experimentální nativní podporu sítě Lightning a podle menu by měla být tato síť přístupná i na základě klíčů odvozených z vašeho Jade seedu. To znamená, že Jade exportuje do peněženky klíč, od kterého budou odvozeny klíče, kterými se podepisují commitment transakce. Pozor, v takovém případě je přístup k Lightningu čistě softwarový a nepotvrzujete jej na Jade peněžence! Odvození má jen tu vlastnost, že nemusíte dělat extra zálohu Lightning peněženky, ale pokud máte odzálohovaný seed k vaší Jade, máte také zálohu peněženky.
Tato služba používá na pozadí technologii Greenlight, kdy v cloudu Blockstreamu provozujete instanci core lightning nody, ale veškeré operace, pro které je potřeba použití klíčů, provádí vaše peněženka na mobilním zařízení. To je podle mého názoru relativně dobrý kompromis mezi suverenitou a pohodlností. Pokud služba Greenlight přestane fungovat, budete mít složitější přístup ke svým kanálům, ale pokud se zavřou, skončí on-chain Bitcoiny ve vaší peněžence. Na druhé straně provozovatel Greenlight (nebo případný útočník) vás neumí obrat o vaše Bitcoiny, neboť nemá klíče potřebné pro podpisy změněných stavů kanálů.
Tuto funkcionalitu se mi však nepodařilo odzkoušet, jelikož mi Jade nechce načíst úvodní QR kód, kterým se proces exportu klíčů inicializuje.
Jelikož zná Blockstream zůstatky na vašich peněženkách, je obtížné odpovědět a odpověď se bude lišit podle toho, zda používáte druhý faktor (2FA). Pokud si přidáte například telefonní číslo a e-mail, to je spárováno s vašimi adresami a Blockstream zároveň zná zůstatky na těchto adresách. Je tedy sporné, co by se stalo, kdyby tato databáze unikla, například po úspěšném útoku na servery Blockstreamu.
Samozřejmě můžete používat TOTP a anonymní e-mail, pak je ale dobré se o daný e-mail starat, aby jej například provozovatel nezrušil, pokud ho často nepoužíváte. Přesto Blockstream zná zůstatky na vašich peněženkách – a to i v případě sítě Liquid, která tyto zůstatky veřejně nezobrazuje.
Jak je na tom Green s ohledem na soukromí, je tedy sporné. Pokud jste paranoidní, doporučuji s Jade používat jinou peněženku (například Sparrow Wallet), ale ta nepodporuje druhý faktor ani síť Liquid.
Z pohledu soukromí mohou být lepší účty bez druhého faktoru, i když těžko říci, jestli to v praxi pomůže, pokud se na server Blockstreamu pošle „xpub“.
Peněženka Green podporuje připojení Tor, které je ale opravdu pomalé, použití přes VPN bude asi v praxi příjemnější.
Jade podobně jako například Coldcard obsahují funkcionalitu smazání peněženky při zadání určitého PINu, který je odlišný od vašeho standardního PINu.
Pokud vás útočník chce přimět zadat PIN, zadáte tento speciální PIN a peněženka se nenávratně smaže a je třeba ji obnovit znovu ze seedu. O užitečnosti této funkce mám své pochybnosti, ale za její nastavení nic nedáte.
Jade můžete používat jako zařízení na jednorázová hesla (Time Based OTP), například taková, která podporuje Google Authenticator. Pokud si na službě – jako například u poskytovatele e-mailu nebo sociální síti – nastavíte druhý faktor pomocí authenticatoru, zobrazí se vám QR kód, který můžete načíst i na vaší peněžence Jade.
Takto můžete k přihlášení do služby tento jednorázový kód získat i z Jade, nejen z mobilního zařízení. To se může hodit v případě, že se vám vybije mobil. Pozor, při obnově peněženky ze seedu na jiném zařízení o tyto TOTP přijdete, takže si nemyslím, že je dobrý nápad mít Jade jako jediné zařízení, ve kterém máte naskenovány tyto TOTP.
Jade je dobrá peněženka pro Bitcoinové maximalisty, kteří nemají velký budget a chtějí využívat dodatečné služby jako airgapped funkcionalitu, používání peněženky z mobilního telefonu přes Bluetooth, dočasné peněženky nebo autorizaci transakcí pomocí druhého faktoru. Rovněž bude užitečná pro lidi, kteří se rozhodli používat síť Liquid, například kvůli soukromí nebo nižším poplatkům. Ekosystém kolem peněženky Jade není tak pestrý jako u starších peněženek, takže například nemůžete používat Jade k přihlašování se přes SSH, šifrování a podepisování pomocí GPG a podobně.
Za cenu kolem €60 bez DPH je však dobré zvážit, zda není lepší volba například peněženka Trezor Safe 3, která má hardwarový secure element a je jen o pár eur dražší a podporuje více kryptoměn. Trezor Safe 3 však není pohodlné používat z mobilního telefonu, jelikož nemá baterii a mobilní rozhraní.
Možností je také používat Trezor Safe 3 pro úspory a Jade pro běžné placení spolu s mobilem.
Jak se rozhodnete závisí na tom, jaké máte potřeby. Jako Bitcoiner byste však měli ocenit pestrost ekosystému a to, že máme na výběr z několika opravdu dobrých možností.
Juraj Bednár
Jsem cypherpunker, mám rád svobodu, soukromí, peer to peer technologie a terminálová okna. Zkoumám chaotický svět, volatilitu a nejistotu, bojuji proti entropii - zakládám firmy a neziskové projekty, dělám kurzy a píšu knihy. Jsem spoluzakladatel Paralelní Polis, hackerspace Progressbar a bug bounty platformy Hacktrophy. Vystudoval jsem obor umělá inteligence a ta se vrátila tak, jako bych o ni nikdy ani neslyšel. O všech těchto zkušenostech píšu blog.