Bitcoin is niet kwantumveilig en hoe we het kunnen repareren wanneer nodig_[en-nl]_2018-05-30 13-50-09–023

Bitcoin en Quantum-Safe

Bitcoin is niet kwantumveilig en hoe we het kunnen repareren wanneer nodig_[en-nl]_2018-05-30 13-50-09--023 In werkelijkheid is de moeilijkheid

In het laatste jaar of zo is het een bekende waarheid geworden in Bitcoin-gespecialiseerde kringen dat Bitcoin, in zijn huidige vorm, gedeeltelijk kwantumveilig is. De claim is dat xe2x80x9cusedxe2x80x9d Bitcoin adressen xe2x80x93 heeft, dat zijn adressen die zowel bitcoins hebben ontvangen en verzonden, waarvan de bijbehorende openbare sleutel zichtbaar is op de blockchain, waardoor quantum-enabled tegenstanders Bitcoinxe2x80x99s elliptische curve-cryptografie kunnen breken, terwijl xe2x80x9cunusedxe2x80x9d Bitcoin-adressen, die mogelijk verkregen bitcoins maar zijn niet uitgegeven, laten hun sleutels niet zien, waardoor ze kunnen profiteren van de aanzienlijk sterkere cryptografische beloften van SHA256 en RIPEMD-160. Op voorwaarde dat de eerste handelsuitgaven van een Bitcoin-adres alle geld dat in die toespraak is opgeslagen naar nieuwe adressen als verandering wegvloeit, moet Bitcoin net zo veilig blijven als voorheen. In werkelijkheid, omdat de meeste portefeuilles al moeite doen om adressen niet opnieuw te gebruiken om de privacy te verbeteren, zullen voor de meeste gebruikers slechts kleine softwarewijzigingen nodig zijn om aan de strengere veiligheidsconditie te voldoen. Daarom zou aanpassing aan quantum computing een koud kunstje zijn. Dit argument is door veel mensen in de Bitcoin-gemeenschap gemaakt, vooral zoals ikzelf. In werkelijkheid, maar het argument heeft een fatale fout.

Om te beginnen de gespecialiseerde achtergrond. De openbare sleutel komt van de private sleutel door middel van elliptische curve-vermenigvuldiging en, gegeven alleen klassieke computers zoals die nu bestaan, is het herstellen van de private sleutel uit een publieke sleutel in principe onmogelijk. De spraak komt van de publieke sleutel door een reeks van drie stappen: het toepassen van de SHA256-hashfunctie op het publieke geheim, waarbij de RIPEMD-160 hash-functie hierop wordt toegepast en tenslotte een waarde wordt toegevoegd die een controlesom wordt genoemd voor foutcorrectiedoeleinden (zodat als je per ongeluk een personage verkeerd typeert bij het sturen naar een Bitcoin-speech, dan verdwijnt je geld niet in een zwart gat). Het doel van hash-functies is dat ze, net als elliptische curve-vermenigvuldiging, in de rekenkunde niet haalbaar zijn om om te keren; Als je een adres hebt gegeven, kun je, afgezien van de brute force-benadering van het proberen van alle mogelijke openbare sleutels, niet de openbare sleutel vinden die de spraak is afgeleid.

Het algoritme van Shorxe2x80x99s is vooral handig voor het tellen van cijfers xe2x80x93 bij wijze van voorbeeld, gegeven het nummer 1728499, waarbij wordt vastgesteld dat het getal bestaat uit de variabelen 1129 * 1531. Met zevencijferige getallen kan het probleem zelfs met voldoende geduld worden opgelost, maar als de cijfers zijn honderden cijfers lang en er worden quantumcomputers gevraagd. In werkelijkheid is de moeilijkheid om zeer lange getallen te factureren gebaseerd op RSA, het vroegste coderingsalgoritme voor openbare sleutels dat nu nog in gebruik is. Het algoritme van Groverxe2x80x99s is veel algemener xe2x80x93, gegeven een lijst met getallen en een wiskundige eigenschap, het kan erachter komen dat een van die getallen voldoet aan uw property. Een gewijzigde versie van het Shorxe2x80x99s-algoritme kan ook elliptische curve-cryptografie laten kraken, en het algoritme van Groverxe2x80x99s raakt in wezen alles, zoals SHA256 en RIPEMD-160.

Aan de andere kant verschillen beide berekeningen radicaal in hoe efficiënt ze zijn. Het algoritme van Groverxe2x80x99s biedt daarentegen niets in de buurt van een zo drastische versnelling. In het geval van RIPEMD-160, de armere van de twee hashes die worden gebruikt om een ​​Bitcoin-adres te maken, betekent dit dat het aantal stappen dat nodig is om een ​​openbare sleutel terug te krijgen van een adres, daalt van 1,4 biljoen biljoen triljoen biljoen tot xe2x80xa6 1,2 triljoen biljoen. Iets eenvoudiger, maar nog steeds gelukkig onpraktisch. Zoals hierboven uitgelegd, hebben xe2x80x9cusedxe2x80x9d Bitcoin-adressen een openbaar geheim. Daarom is het de eenvoudige uitdaging om elliptische curve-cryptografie te verdelen met het Shorxe2x80x99s-algoritme dat de bottleneck is. Xe2x80x9cUnusedxe2x80x9d Bitcoin-adressen tonen daarentegen alleen de spraak zelf, daarom is het het RIPEMD-160 Grover-probleem dat het verzwakte, maar nog steeds onoverkomelijke obstakel vormt.

Dus Whatxe2x80x99s het probleem?

Bitcoin is niet kwantumveilig en hoe we het kunnen repareren wanneer nodig_[en-nl]_2018-05-30 13-50-09--023 te koppelen, zonder

Hier gaat de bovengenoemde logica fout. Hoe zit het met kwantumcomputers in de bovenstaande twee paragrafen is ook, gezien de publieke expertise, in principe correct, en als een Bitcoin-spraak echt ongebruikt is, dan zijn het echt, zelfs toegekende kwantumcomputers, alle bitcoins die erin liggen allemaal prima. Aan de andere kant is de vraag, hoe kun je echt het geld uitgeven? Om de bitcoins die naar dit adres zijn verzonden, te kunnen vrijgeven, is het noodzakelijk om een ​​Bitcoin-transactie uit te voeren, welke transactie een handtekening en een openbare sleutel moet hebben om te verifiëren dat de persoon de eigenaar is van de privésleutel die deze heeft ondertekend. Maar hier is het probleem. Door die handel te maken, heb je zojuist alle informatie vrijgegeven dat iemand met een kwantumcomputer je volledig zou moeten nabootsen, ter plekke. Met quantum computing zijn elliptische curve-handtekeningen net zo dun als een elektronisch vel papier.

Als u 100 BTC-uitgaven in spraak 13ign verzendt, waarbij 10 BTC naar 1v1tal gaat om goederen te dekken en 90 BTC-shift teruggaat naar uw nieuwe adres bij 1mcqmmnx, kan het eerste knooppunt waarnaar u de transactie verzendt, het adres vervangen door wat dan ook ze willen, herwinnen de private sleutel van je publieke sleutel en smeden je handtekening. De enige manier om het probleem te vermijden, is in wezen om de handel rechtstreeks naar een mijnbouwpool, zoals BTCGuild of Slush, te verzenden en ik hoop dat de mijnbouwpool eerlijk zal zijn en de handel direct in de blockchain zal plaatsen. Zelfs daarna echter, word je blootgesteld aan een Finney-aanval xe2x80x93, een oneerlijke mijnwerker kan je handtekening smeden, en een geldig blok maken, bestaande uit zijn vervalste handel die de blockchain voortzet van één voorafgaand aan het meest recente blok (degene die je handel bevat), en omdat de lengte van de nieuwe en oude blockchains dan gelijk zou zijn, zou de aanvaller een kans van 50% hebben dat zijn blokkade voorrang krijgt. Veilige transacties zijn dus in principe onmogelijk.

Lamport-handtekeningen: een optie.

Kort gezegd, het doel van hash-functies zou zijn om ons het wiskundige equivalent van een slot te geven. Het publiceren van de hash van een waarde lijkt sterk op het uitsluiten van een openbare vergrendeling en het vrijgeven van de oorspronkelijke waarde lijkt op het openen van de vergrendeling. Maar zodra het slot open is, kan het niet opnieuw worden gesloten. Het probleem is echter dat vergrendelingen onafhankelijk geen veilig systeem voor digitale handtekeningen kunnen maken. Wat elliptische curve-cryptografie levert, en SHA256 en RIPEMD-160 niet, is een middel om aan te tonen dat je de geheime waarde hebt achter een cyber-lock, en dit bewijs ook aan een bepaalde boodschap te koppelen, zonder de oorspronkelijke waarde of zelfs maar te onthullen bewijsmateriaal geldig maken voor elk ander bericht dan het bericht dat u hebt bijgevoegd. In Bitcoin is het bericht in kwestie een transactie. Telkens wanneer uw Bitcoin-klant een transactie naar de community verzendt, is wat het echt doet een wiskundig bewijs van de volgende waarheid: deze transactie, waarin staat dat ik deze som geld stuur voor deze speech, is samengesteld door iemand die verantwoordelijk is voor het privégeheim dat de Bitcoin-speech ondersteunt, Ixe2x80x99m die verzendt van. Dit is de basis voor de transactionele kant van Bitcoinxe2x80x99s veiligheid.

Maar er is een constructie die ons in staat stelt om dit probleem op te lossen zonder RSA, elliptische krommen of een ander traditioneel cryptografisch systeem met openbare sleutels: Lamport-handtekeningen. Een Lamport-handtekening is een eenmalige handtekening die het lockbox-probleem op de volgende manier omzeilt: er zijn meerdere vergrendelingen en het is de inhoud van dit bericht (of beter, de hash van het bericht) dat bepaalt welke sloten moeten worden geopend. Als een persoon probeert je bericht uit te vinden, is het bijna zeker (lees: dat de zon vóór een andere situatie uit waterstof zal lopen) dat het Lamport-handtekeningschema hen zal verplichten om ten minste één slot te openen dat je niet al hebt geopend xe2x80x93 waarvan ze, zonder de niet-vrijgegeven geheime waarden, zal niet kunnen presteren.

Lamport-handtekeningen kunnen technisch ingewikkeld lijken, maar omdat ze simpelweg één component xe2x80x93 de hash-functie hebben (in dit geval gebruiken wexe2x80x99ll RIPEMD-160), behoren ze in feite tot de meest toegankelijke cryptografische protocollen die de normale persoon kan begrijpen. Het algoritme werkt als volgt:

Al deze waarden, of in een bepaalde implementatie die het zaad gebruikt om ze te maken, zijn uw privésleutel. Al deze zijn uw belangrijkste sleutel, en zullen ook van de gemeenschap worden verlangd om uw handtekening later te verifiëren. Om een ​​bericht te ondertekenen, bereken de RIPEMD-160-hash van dit bericht en laat vervolgens, afhankelijk van elk stukje hash, het sleutelnummer achter de eerste of tweede hash in elk paar los. Als het bit nul is, opent u de hash en als het bit een is, opent u de tweede decoratie.

Onder deze strategie zal een Bitcoin-spraak nog steeds de SHA256 RIPEMD-160-hash van de openbare sleutel zijn; het enige onderscheid is dat de publieke sleutel zal bestaan ​​uit 320 hashes in plaats van een elliptisch curvepunt. Een transactie omvat de openbare sleutel samen met de handtekening, net als nu, en net als nu zullen verificateurs controleren of de openbare sleutel overeenkomt met de spraak, samen met de handtekeningovereenkomsten met het bericht, samen met de openbare sleutel. De handtekeningen zijn onvergeeflijk; niettemin met het algoritme van Groverxe2x80x99s, dus het vereist 2 80 stappen voor een tegenstander om een ​​frauduleuze transactie te bouwen die vereist dat ze de specifieke dezelfde 160 geheime nummers onthullen die je al hebt aangetoond, of zelfs een tegenstander kan twee 80 * 80 stappen nemen om gewoon te kraken alle hashes. Beide nummers zijn in de triljoenen triljoenen van beide berekeningen.

De enige gedragsverandering die nodig is, is dat mensen maar één keer adressen beginnen te gebruiken; na twee gebruiksdoeleinden daalt de veiligheid van het Lamport-schema tot twee keer 40, een waarde die in eerste instantie nog steeds veilig is tegen kwantumcomputers, maar amper, en na drie toepassingen is itxe2x80x99s net zo zwak als elliptische curve-cryptografie. Theoretisch, maar zelfs dit kan gedeeltelijk worden overwonnen; het Merkle-signatuurschema is gebaseerd op het idee van Lamportxe2x80x99 om handtekeningen te maken die honderden of tientallen of zelfs potentieel zelfs duizenden keren kunnen worden gebruikt voordat de privésleutel moet worden stopgezet. De enige beperking tot het maximale aantal transacties per spraak is in wezen een kwestie van het beperken van blockchain-bloat.

Gegeven wat nu publieke expertise is, zijn quantumcomputers nog ver weg; de meest effectieve quantumcomputer tot nu toe is erin geslaagd om Shorxe2x80x99s algoritme te gebruiken om het getal 21 te factoriseren. Maar plotselinge vooruitgang is altijd mogelijk, en we moeten constant een strategie hebben van wat we kunnen doen als Edward Snowden besluit uit te lekken dat de NSA heeft volledig functionele kwantumcomputers verstoppen zich in een geheim datacenter. We kunnen zo’n verrassende gebeurtenis waarschijnlijk niet aan, maar we kunnen zeker zaken afhandelen waarbij we een maand vooraf gewaarschuwd worden. De oplossing is: zodra een quantum-pre-noodtoestand wordt uitgeroepen, moet iedereen zijn rijkdommen verplaatsen naar een 1-van-2 multisignatuurhandel tussen een ongebruikte, oude stijl Bitcoin-toespraak, samen met een adres dat is gegenereerd met de nieuwe Lamport regeling. Daarna moeten ontwikkelaars snel de Lamport-patch maken voor zo veel Bitcoin-clients als je kunt en iedereen uitnodigen om bij te werken. Als de hele procedure binnen veertien dagen wordt uitgevoerd, zijn tegen de tijd dat kwantumcomputers een bedreiging worden, het grootste deel van bitcoins van peoplexe2x80x99s in Lamrump-adressen in nieuwe stijl en ook veilig. Voor mensen die hun welvaart in oude stijl toespraken tegen die tijd hebben (ongebruikte oude-stijl-adressen is dat, vanaf dat punt kunnen munten in oude ouderwetse adressen triviaal worden gestolen), zullen een aantal gevestigde organisaties ermee instemmen om als betrouwbare knooppunten te dienen, gebruikmakend van het Merkle-signatuurschema om een ​​extra handtekening te brengen in transacties die van oude toespraken naar nieuwe-stijl-adressen verzenden. Om communityfraude en Finney-aanvallen te stoppen, zullen de nieuwe Bitcoin-regels alle transacties van ouder naar nieuw vereisen na een specifieke fase die door deze autoriteiten moet worden ondertekend. Het voedingssysteem zal centralisatie introduceren, maar het zal slechts een tijdelijke noodmaatregel zijn en na een paar jaar kan het systeem volledig worden uitgeschakeld. Van daaruit likken we onze wonden, selecteren we onze verliezen en gaan we verder met het waarderen van enkele van de mooiere items die quantum computing u te bieden heeft.