Site icon Bitcoinvkapse.cz

Kvantové počítače a bitcoin: co doopravdy hrozí?

Kvantové počítače a bitcoin

Kvantové počítače se v médiích skloňují jako hrozba pro Bitcoin často. Většina článků ale buď panikaří, nebo naopak hrozbu bagatelizuje. Podívejme se na to, co teoreticky hrozí a co se s tím dá dělat.

Jak kvantové počítače ohrožují Bitcoin

Zjednodušené titulky křičící „Kvantové počítače zničí Bitcoin“ jsou nesmyslné. Bitcoin je komplexní systém a kvantový počítač ho nevymaže, jak by se mohlo z titulků zdát. Kvantový počítač umí dělat některé výpočty jinak a někdy i razantně rychleji než standardní počítač. A proto může potenciálně ohrozit ty části Bitcoinu, kde svojí rychlost využije. A ty části jsou dvě:

Hrozba pro těžbu (Groverův algoritmus vs. SHA-256)

Bitcoin těžba je jen hledání hashe, který splňuje určitou podmínku. Klasický počítač to řeší hrubou silou – zkouší kombinace jednu po druhé, dokud nenajde správnou. Groverův kvantový algoritmus umí prohledávat víc možností najednou a správnou odpověď postupně „zesilovat“ – místo milionu pokusů stačí tisíc. V praxi to znamená, že pro kvantový počítač je hledání správného SHA-256 hashe stejně náročné, jako by bylo hledání SHA-128 hashe pro běžný počítač. Zní to možná dramaticky, ale 128 bitů je pořád číslo tak velké, že tato hrozba nijak dramatická není.

A navíc máme proti tomuto problému pojistku – úravu obtížnosti. Ta každé dva týdny přizpůsobuje obtížnost těžby aktuálnímu výkonu sítě. Takže i kdyby se začalo těžit „kvantově“, protokol zvýší obtížnost a jede se dál. Stejně tak se zvládl přechod z CPU na GPU a z GPU na ASIC.

Hrozba pro privátní klíče (Shorův algoritmus vs. ECDSA)

Tahle hrozba je reálnější. Bitcoin používá pro podepisování transakcí algoritmus postavený na eliptických křivkách (ECDSA). Jeho bezpečnost stojí na jednoduchém principu: z privátního klíče lze snadno odvodit veřejný klíč, ale opačně to nejde. Shorův algoritmus ale tento předpoklad bourá, protože problém řeší úplně jinak než standardní počítač a teoreticky z veřejného klíče privátní udělat umí. To znamená, že pokud by nějaký budoucí kvantový počítač znal veřejný klíč, na kterém bitcoiny leží, dopočítal by si privátní klíč a bitcoiny mohl ukrást.

Klíčové ale je, co přesně Shorův algoritmus potřebuje, aby privátní klíč získal. Nestačí mu adresa, na které vaše bitcoiny leží, potřebuje přímo veřejný klíč. A moderní bitcoinové adresy veřejný klíč skrývají za hashem. Problém je, že to tak nebylo vždy a v počátcích Bitcoinu se platilo přímo na veřejný klíč, který je tak v blockchainu viditelný. Tyto staré adresy by byly pravděpodobně první na ráně, pokud by se někdo s kvantovým počítačem rozhodl nějaké prostředky ukrást.

Bohužel ani adresy, které veřejný klíč neukazují, nejsou úplně v bezpečí. Problém je ten, že pokud z adresy bitcoin utratíte, veřejný klíč se zveřejní a navždy už veřejným zůstane. Ochrana je ale jednoduchá – nepoužívat adresy opakovaně. Protože pokud bitcoiny utratíte, adresa zůstane prázdná a je pak jedno, že k ní je znám veřejný klíč. Problém byste v budoucnu mohli mít právě jen tehdy, když si na ní opětovně nějaké bitcoiny pošlete.

Která bitcoinová adresa je zranitelná a která ne

Typ adresy Název Začíná Zranitelnost
P2PK Pay to Public Key (stará éra) 🔴 Nejvíce zranitelná – veřejný klíč je přímo viditelný na blockchainu. Sem patří Satoshiho coiny. Dnes už se nepoužívají.
P2PKH Pay to Public Key Hash (legacy) 1 🟡 Bezpečná dokud z ní neutratíte – veřejný klíč je skrytý v hashi. Po odeslání transakce se veřejný klíč odhalí.
P2WPKH Pay to Witness Public Key Hash (nativní SegWit) bc1q 🟡 Stejně jako P2PKH – bezpečná dokud z ní neutratíte.
P2TR Pay to Taproot bc1p 🟠 Veřejný klíč je přímo součástí adresy. Mírnější riziko než P2PK díky modernějším Schnorrovým podpisům, ale horší výchozí pozice než bc1q.
P2SH Pay to Script Hash (multisig, starý SegWit) 3 ⚪ Záleží na obsahu – kvantová zranitelnost závisí na konkrétním skriptu. Starý SegWit je na tom stejně jako nativní SegWit – do utracení v pohodě.

Útok na transakce čekající v mempoolu

Aby to nebylo tak jednoduché, existuje ještě jedna teoretická hrozba, které neodolá při utrácení žádná současná adresa. Ve chvíli, kdy odesíláte transakci, se veřejný klíč odhaluje vždy. Problém je, že už ve chvíli, kdy transakce teprve čeká na potvrzení. Útočník by v tomto okně (minuty až hodiny) teoreticky mohl:

  1. zachytit transakci v mempoolu
  2. odvodit privátní klíč z veřejného
  3. sestavit vlastní transakci se stejnými prostředky, ale posílanou na jeho vlastní adresu
  4. odeslat ji s vyšším poplatkem a předběhnout tak originál

V praxi to ale naráží na jeden zásadní problém: rychlost. Shorův algoritmus na dnešních kvantových počítačích by potřeboval hodiny až dny na prolomení jednoho klíče. Potvrzení transakce s rozumným poplatkem trvá minuty. V současnosti je tak tento útok také čistě teoretický.

Jak se preventivně chránit už dnes

Dnes kvantový počítač schopný výše popsaných útoků neexistuje. Na tom, kdy bude existovat a jestli vůbec, se neshodnou ani odborníci. Nemá tedy smysl panikařit, ale není ani moc chytré strkat hlavu do písku. Dodržujte pár jednoduchých pravidel už dnes a budete připraveni na to, kdyby se fungující kvantový počítač schopný útoku objevil:

  1. nerecyklujte adresy, pro každou transakci používejte novou
  2. používejte nejnovější formáty adres, ideálně začínající bc1q (peněženky je nabízejí většinou automaticky)
  3. pokud máte nějaké recyklované adresy s bitcoiny, zvažte jejich přesun. Třeba v rámci konsolidace.
  4. sledujte dění kolem kvantových počítačů i post-kvantové kryptografie v Bitcoinu (třeba můj Twitter)

A až vám bude někdo zase vyprávět, že Bitcoin je mrtvý, protože ho zabijou kvantové počítače, pošlete mu odkaz na tento článek, aby se mohl dovzdělat 😉

Čtěte dále:

Exit mobile version