Kvantsäkring av Bitcoin är verkligen inte så svårt
12 min läsning
Med tanke på nyheterna från kinesiska forskare som hävdar att de har gjort betydande framsteg i att bryta vissa typer av kryptering, samt Googles tillkännagivande om ytterligare framsteg inom kvantdatorer, anser jag att det är ett lämpligt tillfälle att återigen belysa några av Bitcoins principer och hur de relaterar till det växande hotet från kvantdatorer.
Låt oss börja med att klargöra att ett praktiskt kvant-hot mot Bitcoin fortfarande ligger långt fram i tiden. Ändå är detta ett ämne som jag tror kommer att vara intressant för många. Jag kommer i denna text att så enkelt somx möjligt förklara hur Bitcoin använder kryptografi och i vilken utsträckning kvantdatorer utgör ett hot mot dess olika komponenter.
Därefter kommer jag att förklara, återigen så enkelt som möjligt, vilka motåtgärder som kan vidtas och vilken process som skulle krävas för att genomföra dem. Om du väljer att inte fortsätta läsa kan jag sammanfatta det hela: det hot som för närvarande är känt kan ganska enkelt hanteras. Allt som skulle krävas är en mjuk gaffel (soft fork).
Jag kommer att ägna resten av denna text åt att förklara varför det är så, på ett så kortfattat och enkelt sätt som jag anser möjligt med tanke på ämnets underliggande komplexitet.
Bitcoin använder sig av två Klasser av kryptografiska verktyg
De flesta känner till att Bitcoin använder kryptografi för säkerhet, men väldigt få vet särskilt mycket om hur det faktiskt fungerar. Det är kanske inte så förvånande med tanke på att kryptografi verkar obegripligt svårt för de flesta. I verkligheten är dock kryptografins principer rätt enkla: Den bygger till stor del på vissa funktioner som är lätta att beräkna i en riktning, men mycket svåra att beräkna i den andra. Vi kallar dessa för trapdoor-funktioner.
Bitcoin använder två olika typer av trapdoor-funktioner – och de används för väldigt olika uppgifter. Först använder den sig av relativt välkända klassen av kryptografiska nyckelpar, bestående av en privat nyckel och en offentlig nyckel. Vidare använder den en mindre välkänd klass som kallas för hash-funktioner.
Låt oss kortfattat gå igenom vad de gör.
Kryptografiska nyckelpar används för att skicka och ta emot transaktioner
I kärnan av Bitcoins säkerhetsmodell ligger användningen av kryptografiska nyckelpar för transaktioner. Kort sagt kan transaktioner ses som att de skickas till en offentlig nyckel och skickas från en privat nyckel. Det mer kompletta sättet att tänka på det är att upplåsningsskriptet för en så kallad Unspent Transaction Output (UTXO) är låst till en offentlig nyckel och låses upp med en digital signatur som produceras av den motsvarande privata nyckeln.
Det finns för närvarande två signaturalgoritmer som används i Bitcoin – Elliptic Curve Digital Signature Algorithm (ECDSA) och Schnorr-signaturer – och båda använder samma offentliga nyckelstruktur (elliptisk kurvmultiplikation på secp256k1-kurvan). Denna metod är sårbar för kvantdatorer som använder Shors algoritm, vilket kan sätta mynt som skickas till båda dessa adresstyper i potentiell risk.
Hash-funktioner används för trunkering och validering, avräkning och för att dölja adresser
Den andra huvudklassen av kryptografiska verktyg – hash-funktionerna – har ett par olika roller. Men det är väldigt viktigt att tänka på att hash-funktionerna inte används för att auktorisera transaktioner. Det finns två hash-funktioner som används i Bitcoin: SHA-256 och RIPEMD-160, där SHA-256 används för flera olika ändamål.
Hash-funktionernas tre främsta roller är trunkering och validering, avräkning, samt för att dölja adresser. Jag hoppar över trunkering och validering eftersom dessa användningsområden är irrelevanta för denna diskussion.
Avräkning
När SHA-256 används för avräkning, används det av ett nätverk av miners (brytare) för att komma fram till en decentraliserad tidsordning av transaktioner. Hur ofta avräkningen av transaktioner sker regleras av svårighetsjusteringen, så att oavsett hur många miners som deltar i avräkningsprocessen, läggs nya transaktionspartier (block) till i genomsnitt var tionde minut.
Eftersom det är känt att SHA-256 inte kan beräknas omvänt, utan bara gissas, kan nätverket införa en viss svårighet för att hitta nya block, så att processen inte kan ske snabbare än avsett. På detta sätt är Bitcoins emissionskurva fixerad i tid och kan varken snabbas upp eller saktas ner.
Denna process medför också en stor kostnad för deltagarna, och storleken på denna kostnad fungerar som ett avskräckande moment för skadliga aktörer som försöker ångra transaktioner de har genomfört, eller förhindra andra från att genomföra transaktioner. Här är det viktigt att poängtera att ingen miner, oavsett om de kontrollerade 100 % av miner-nätverket, skulle kunna omdirigera andras transaktioner efter att de har genomförts – endast sina egna – eftersom de inte kan producera digitala signaturer från andras offentliga nycklar.
Dölja adresser
En annan nyckelroll som hash-funktioner har är att dölja Bitcoin-adresser. Att skicka Bitcoin betyder i princip att skicka dem till en offentlig nyckel. Det är däremot även möjligt att skicka Bitcoin till en offentlig nyckels hash. Denna transaktionstyp kallas p2pkh eller Pay to Public Key Hash. Vi refererar till p2pkh som en adresstyp för Bitcoin. En annan adresstyp är p2pk eller Pay to Public Key. Ännu en är p2sh eller Pay to Script Hash.
Det viktiga att notera här är att när Bitcoin skickas till en hash av en offentlig nyckel, avslöjas inte den offentliga nyckeln för nätverket, utan endast en dold form av den offentliga nyckeln är synlig för nätverket. Det betyder att operatören av en skadlig kvantdator som försöker beräkna privata nycklar från offentliga nycklar inte har något att jobba med och därför inte kan göra någonting.
Kvantdatorer Minskar kryptografins säkerhet, utan att nödvändigtvis Eliminera den
När vi analyserar Bitcoins sårbarhet för kvantdatorer måste vi precisera några saker: För det första, vad exakt kvantdatorer kan göra, och för det andra, vad den exakta effekten av det skulle bli för Bitcoin. Låt oss ta itu med båda dessa frågor.
Kryptografi bygger generellt på datorers oförmåga att beräkna vissa saker inom en praktisk tidsram. Med vanliga datorer är det till exempel så svårt att hitta en hash-kollision i SHA-256 att även om du hade en lika stor dator som hela jorden som använde all energi från vår sol, skulle det ta biljoner gånger längre än universums ålder.
Och den tid det tar att ”omvända” trapdoor-funktionerna är relaterad till nyckelstorlekarna eller hash-längderna. Större nycklar kräver längre tid att omvända. Exempelvis skulle en 256-bitars nyckel, som bara är dubbelt så lång som en 128-bitars nyckel, ta 2^128, eller ungefär 10^39[1] gånger längre att omvända.
Samtidigt kommer större datorer att minska tiden för att omvända dem endast i proportion till deras storlek, så att en dator som är dubbelt så snabb endast halverar omvändningstiden.
Vad kvantdatorer gör är att de minskar den tid det tar att omvända dessa funktioner baserat på storleken på den dator du använder. Det betyder att en kvantdator som har dubbelt så många qubits som en annan till exempel kan omvända vissa trapdoor-funktioner fyra gånger snabbare. Det betyder att de grundläggande antagandena för de typer av kryptografi som är sårbara för kvantdatorer bryts, men det betyder inte att de omedelbart slutar fungera.
Låt mig ta SHA-256 som exempel. Enligt University of Illinois skulle en kvantdator som använder Grovers algoritm minska säkerheten för SHA-256 från 256-bitars till 128-bitars. Medan en vanlig dator som försöker hitta ingången till SHA-256 från en utgång skulle behöva försöka 2^256[2] gånger för att garantera att hitta en utgång, skulle en kvantdator med andra ord ”bara” behöva 2^128 försök.
För att sätta det i perspektiv: även om du hade en kvantdator som var en biljon gånger snabbare än den snabbaste nuvarande kvantdatorn, skulle det fortfarande ta en miljon år (och en oerhörd mängd energi) att hitta en kollision. Det är inte praktiskt, men det är definitivt mycket snabbare än de 367 miljarder biljoner biljoner biljoner biljoner år det skulle ta för en vanlig dator.
Med andra ord kommer adresser som är dolda bakom SHA-256-hashar troligen att förbli säkra även om praktiska mega-stora kvantdatorer blir genomförbara. Och när det gäller mining, skulle en kvantdator endast motsvara en snabbare miner, och med tanke på dess kostnad och komplexitet (förutsatt att det ens är möjligt att bygga en av intressant storlek) är det inte uppenbart att det skulle vara en kostnadseffektiv sådan.
Bitcoins sårbarheter är begränsade, och att praktiskt exploatera dem kräver stora teknologiska framsteg
Nu när vi har en uppfattning om de siffror vi jobbar med och de skalor som fortfarande krävs för att omvända till exempel SHA-256, låt oss titta lite närmare på vilka de kvantrelaterade sårbarheterna är hos Bitcoin.
Vi börjar med ECDSA-skyddade adresser, som teoretiskt är sårbara för kvantdatorer som använder Shors algoritm[3]. Kom ihåg att det är möjligt att skicka Bitcoin direkt till offentliga nycklar, så alla mynt som finns på adresser som avslöjar den offentliga nyckeln skulle vara sårbara för stöld om någon kunde beräkna den privata nyckeln från den offentliga nyckeln. Som jämförelse pratar vi om cirka 1,9 miljoner Bitcoin, eller 9 % av tillgången.
Transaktioner i Schnorr-adresser – såsom Taproot UTXOs – är också sårbara eftersom även deras offentliga nycklar är synliga, men det adressformatet håller endast cirka 0,1 % av mynten, så vi kommer att utelämna dem från denna analys.
För att omvända en offentlig nyckel inom en dag skulle en angripare, enligt forskning, behöva en kvantdator med feltolerans och felbegränsningsprestanda som ännu inte har uppnåtts, samt 13 miljoner fysiska qubits – cirka 100 000 gånger fler än den största nuvarande kvantdatorn[4]. För att knäcka det inom en timme[5] skulle den behöva vara 3 miljoner gånger bättre än de nuvarande kvantdatorerna.
Att uppskatta den nuvarande årliga tillväxttakten för fysiska qubits är inte enkelt. Dels för att det finns många olika typer av qubits, men också för att vi inte har många datapunkter. Enligt data som sammanställts av Quantum Zeitgeist, är tillväxten av funktionella fysiska qubits liknande den för vanliga datorkretsar enligt Moores lag – med ett antal som fördubblas ungefär vartannat år. I den här takten skulle det ta mer än 15 år att nå 13 miljoner qubits.
Och det förutsätter att det ens är möjligt att skala upp qubits till den nivån samtidigt som man uppnår felfrekvenser som är lägre än vad som har uppnåtts – och då har vi inte ens diskuterat kostnaden.
Att åtgärda den primära sårbarheten kräver endast ett nytt adressformat via en mjuk gaffel (soft fork)
Men om vi antar att denna kvantöverlägsenhet kommer att inträffa vid något tillfälle, finns det fortfarande många åtgärder som kan vidtas för att säkra mynten. Dessa sträcker sig från enkla tillitsbaserade lösningar som inte kräver några förändringar i Bitcoin, till fullständig ersättning av kryptografiska verktyg.
Den enklaste åtgärden är att endast använda adressformat som är dolda bakom hashar, och sedan skicka utgående transaktioner direkt till miners eller pooler, med antagandet att de inte kör dessa typer av kvantdatorer och försöker stjäla från dig (för vilket de självklart också skulle vara brottsligt ansvariga). En annan metod är att skicka transaktioner som är tillräckligt små så att det skulle kosta mer att köra en ultra-avancerad (och troligtvis enorm och dyr) kvantdator i en timme än värdet på transaktionen.
Men den typen av åtgärder är osannolika att tillfredsställa det välkänt paranoida Bitcoin-communityt, och därför kommer en ny adresstyp som använder kvantresistent kryptografi troligtvis behövas. Faktiskt har ett utkast till en Bitcoin Improvement Proposal (BIP) för ett nytt kvantsäkert adressformat redan föreslagits och diskuteras just nu. Även om införandet av ett nytt adressformat uppenbart inte är en liten förändring, skulle det endast kräva en mjuk gaffel (soft fork), vilket gör att det troligtvis inte orsakar mycket kontrovers.
De huvudsakliga problemen som minskar viljan för en snabb åtgärd just nu är att de flesta eller alla föreslagna kvantsäkra alternativ har signaturstorlekar som är mycket större än de nuvarande Bitcoin-signaturerna. Detta är något problematiskt eftersom Bitcoin har en absolut gräns för blockstorlek, så om transaktioner kräver mer data minskas därmed antalet transaktioner som kan få plats i ett block. Även detta kan lösas genom att öka vittnesdelen av Bitcoin-blocken – som tekniskt sett inte är föremål för blockstorleken – men denna diskussion skulle troligtvis kräva en egen artikel för att täckas ordentligt.
När det väl är implementerat, måste mynt som för närvarande finns på sårbara adresser flyttas till nya, säkra adresser. Ansvaret för detta skulle ligga på ägaren av varje adress. Intressant nog är majoriteten av de mest sårbara mynten sådana som allmänt tros tillhöra Satoshi Nakamoto. Det betyder att dessa mynt antingen måste flyttas, vilket skulle bevisa att Satoshi fortfarande är vid liv, eller så kommer de i praktiken att fungera som en ”honeypot”-belöning för byggare av kvantdatorer.
Sammanfattningsvis: Kvantdatorer utgör ett hot, men varken ett aktuellt eller särskilt problematiskt sådant
Problematiska kvantdatorer, om vi antar att de kommer att vara möjliga att skapa, är fortfarande långt bort, vilket betyder att det finns gott om tid att diskutera och implementera nödvändiga förändringar. Men även om de vid något tillfälle skulle komma, kan Bitcoin relativt enkelt modifieras för att mildra den risk de utgör.
Den primära risken för Bitcoin är stöld av mynt från adresser med synliga offentliga nycklar. Dessa adresser utgör lite mindre än 10 % av alla mynt. För att förbli säkra när tillräckligt stora praktiska kvantdatorer skapats, måste mynt på sådana adresser flyttas till ett nytt kvantsäkert adressformat.
Vidare skulle, givet en tillräckligt stor och kapabel kvantdator, alla adresser som använder ECDSA eller Schnorr – även de som är dolda av en hash – vara sårbara, eftersom deras nycklar teoretiskt sett skulle kunna omvändas under den korta tid då deras signerade transaktioner ligger och väntar i mempoolen. Vid den tidpunkten måste alla mynt flyttas till kvantsäkra adresser.
Ett kvantsäkert adressformat kan läggas till Bitcoin via en mjuk gaffel (soft fork), vilket innebär att det kan implementeras frivilligt av de som vill ha det, och ignoreras av de som inte vill. Det gör att förändringen skulle vara relativt enkel att implementera och osannolikt skulle ses som tillräckligt problematisk för att försena implementeringen.
[1] Det är 340 282 366 920 938 463 463 374 607 431 768 211 456 gånger.
[2] Det är ~10^78 eller 115 792 089 237 316 195 423 570 985 008 687 907 853 269 984 665 640 564 039 457 584 007 913 129 639 936 gånger.
[3] Vilket, som påminnelse, beror på att den elliptiska kurvmultiplikation de använder på secp256k1-kurvan är sårbar.
[4] Det är svårt att uppskatta mängden av ”fysiska qubits”, eftersom det finns många olika typer av qubits, och de har inte alla samma prestanda eller egenskaper. Med vår målgrupps kunskapsnivå i åtanke har vi därför valt att prioritera läsbarhet, förenkling och generalisering framför strikt noggrannhet i denna text.
[5] Detta anses vara en viktig tidsram avseende sårbarhet, eftersom även offentliga nycklar som är dolda bakom SHA-256 är synliga för nätverket under en kort period när de är på väg att spenderas men fortfarande väntar på att läggas till i ett block av en miner.