Bitcoin ist nicht Quantum sicher und wie wir es reparieren können, wenn nötig

Bitcoin und Quantum-Safe

Im letzten Jahr oder so ist es in Bitcoin-Fachkreisen zu einer bekannten Wahrheit geworden, dass Bitcoin in seiner jetzigen Form teilweise quantensicher ist. Die Behauptung ist, dass xe2x80x9cusedxe2x80x9d Bitcoin-Adressen xe2x80x93, dh Adressen, die Bitcoins empfangen und gesendet haben, ihren entsprechenden öffentlichen Schlüssel auf der Blockchain offen gelegt haben, wodurch quantenaktivierte Gegner Bitcoinxe2x80x99s elliptische Kurven-Kryptografie brechen können, während xe2x80x9cunusedxe2x80x9d Bitcoin-Adressen haben können Bitcoins erhalten, aber nicht ausgegeben wurden, haben ihre Schlüssel nicht ausgesetzt, so dass sie von den wesentlich stärkeren kryptographischen Versprechen von SHA256 und RIPEMD-160 profitieren können. Vorausgesetzt, dass die ersten Handelsausgaben von einer beliebigen Bitcoin-Adresse alle in dieser Rede gespeicherten Gelder an neue Adressen als Wechselgeld abführen, so lautet das Konzept, Bitcoin sollte genauso sicher bleiben wie zuvor. Da die meisten Geldbörsen sich bereits bemühen, Adressen nicht wiederzuverwenden, um die Privatsphäre zu verbessern, werden für die meisten Benutzer nur geringfügige Softwareänderungen erforderlich sein, um die strengeren Sicherheitsbedingungen zu erfüllen, so dass die Anpassung an Quantencomputer ein Kinderspiel wäre. Dieses Argument wurde von vielen Leuten in der Bitcoin-Community, besonders von mir selbst, gemacht. In Wirklichkeit, aber das Argument hat einen fatalen Fehler.

Bitcoin ist nicht Quantum sicher und wie wir es reparieren können, wenn nötig ltig machen als die

Zunächst einmal der spezialisierte Hintergrund. Der allgemeine öffentliche Schlüssel kommt vom privaten Schlüssel durch elliptische Kurvenmultiplikation, und angesichts nur klassischer Computer, wie sie jetzt existieren, ist das Wiederherstellen des privaten Schlüssels von einem öffentlichen Schlüssel im Grunde unmöglich. Die Rede kommt vom öffentlichen Schlüssel durch eine Reihe von drei Schritten: Anwenden der SHA256-Hash-Funktion auf das öffentliche Geheimnis, Verwenden der RIPEMD-160-Hash-Funktion zu diesem und schließlich Einschließen eines Wertes, der als Prüfsumme für Fehlerkorrekturzwecke bezeichnet wird (so dass Sollten Sie beim Senden einer Bitcoin-Rede zufällig einen Buchstaben vertippt haben, verschwindet Ihr Geld nicht in einem schwarzen Loch. Der Zweck der Hash-Funktionen ist, dass sie genau wie die Multiplikation mit elliptischen Kurven rechnerisch nicht reversibel sein können; Wenn man eine Adresse angibt, gibt es keinen Weg, neben dem Brute-Force-Ansatz, alle möglichen öffentlichen Schlüssel auszuprobieren, den öffentlichen Schlüssel zu finden, aus dem die Sprache abgeleitet ist.

Shorxe2x80x99s Algorithmus ist hauptsächlich nützlich für die Faktorisierung von Zahlen xe2x80x93 als Beispiel, gegeben die Nummer 1728499, herauszufinden, dass die Zahl besteht aus den Variablen 1129 * 1531. Mit siebenstelligen Zahlen kann das Problem sogar mit genug Geduld gelöst werden, aber wenn Die Zahlen sind Hunderte von Ziffern langen Quantencomputern gefordert. In Wirklichkeit basiert die Schwierigkeit, sehr lange Zahlen zu faktorisieren, auf RSA, dem frühesten Verschlüsselungsalgorithmus mit öffentlichem Schlüssel, und einer, die noch heute verwendet wird. Groverxe2x80x99s Algorithmus ist weit generischer xe2x80x93 angesichts einer Auflistung von Zahlen zusammen mit einer mathematischen Eigenschaft, kann es herausfinden, dass eine dieser Zahlen Ihre Eigenschaft erfüllt. Eine modifizierte Version des Shorxe2x80x99s-Algorithmus kann auch die Kryptografie mit elliptischen Kurven knacken, und der Groverxe2x80x99s-Algorithmus trifft grundsätzlich auf alles, wie SHA256 und RIPEMD-160.

Auf der anderen Seite unterscheiden sich beide Berechnungen radikal davon, wie effizient sie sind. Groverxe2x80x99s Algorithmus, auf der anderen Seite, bietet nicht annähernd eine so drastische Beschleunigung. Im Fall von RIPEMD-160, der ärmeren der beiden Hashes, die verwendet werden, um eine Bitcoin-Adresse zu machen, bedeutet dies, dass die Anzahl der Schritte, die benötigt werden, um einen öffentlichen Schlüssel von einer Adresse zurückzuerlangen, von 1,4 Billionen Billionen Billionen Billionen auf 1,2 Billionen Billionen xe2x80xa6 sinkt. Etwas einfacher, aber immer noch glücklicherweise unpraktisch. Wie oben erklärt, haben xe2x80x9cusedxe2x80x9d Bitcoin-Adressen ein öffentliches Geheimnis, daher ist es die einfache Aufgabe, die Kryptografie mit elliptischer Kurve unter Verwendung des Shorxe2x80x99s-Algorithmus zu teilen, der den Engpass darstellt. Xe2x80x9cUnusedxe2x80x9d Bitcoin-Adressen, auf der anderen Seite, offenbaren nur die Sprache selbst, daher ist es das RIPEMD-160 Grover-Problem, das das geschwächte, aber immer noch unüberwindbare Hindernis darstellt.

Also Whatxe2x80x99s das Problem?

Hier ist die oben erwähnte Logik falsch. Was ist mit Quantencomputern in den beiden obigen Absätzen ist auch, in Anbetracht der öffentlichen Fachkenntnisse, im Grunde korrekt, und wenn eine Bitcoin-Sprache wirklich ungenutzt ist, dann wirklich, sogar belohnt Quantencomputer, alle Bitcoins im Inneren sind alles in Ordnung. Auf der anderen Seite ist die Frage, wie können Sie wirklich die Mittel ausgeben? Um die an diese Adresse gesendeten Bitcoins freizugeben, ist es notwendig, einen Bitcoin-Handel zu betreiben, wobei der Handel eine Signatur und einen öffentlichen Schlüssel haben muss, um zu verifizieren, dass es die Person ist, die den privaten Schlüssel besitzt, der sie signiert hat. Aber hier ist das Problem. Mit diesem Handel haben Sie gerade alle Informationen veröffentlicht, dass jeder, der einen Quantencomputer besitzt, Sie sofort vor Ort ausnutzen sollte. Mit dem Quantencomputer sind elliptische Kurvensignaturen so dünn wie ein elektronisches Blatt Papier.

Wenn Sie eine Handelsausgabe 100 BTC in der Sprache 13ign senden, wobei 10 BTC an 1v1tal gehen, um Waren abzudecken, und 90 BTC shift an Ihre neue Adresse bei 1mcqmmnx zurückkehrt, kann der erste Knoten, an den Sie den Trade senden, die Shiftadresse durch was auch immer ersetzen Sie möchten den privaten Schlüssel von Ihrem öffentlichen Schlüssel zurückgewinnen und Ihre Unterschrift fälschen. Die einzige Möglichkeit, das Problem zu vermeiden, besteht im Wesentlichen darin, den Handel direkt an einen Mining-Pool wie BTCGuild oder Slush zu liefern, und hoffe, dass der Mining-Pool fair ist und den Handel direkt in die Blockchain führt. Aber selbst danach bist du einem Angriff von Finney ausgesetzt xe2x80x93 ein unehrlicher Bergarbeiter kann deine Unterschrift fälschen und einen gültigen Block bilden, der seinen gefälschten Handel umfasst und die Blockchain von einem vor dem letzten Block (dem, der deinen Handel enthält) fortsetzt, und da die Längen der neuen und alten Blockchains dann äquivalent wären, hätte der Angreifer eine 50% ige Wahrscheinlichkeit, dass sein Block Vorrang hat. Daher sind sichere Transaktionen grundsätzlich nicht möglich.

Lamport Signaturen: Eine Option.

Im Grunde wäre der Zweck von Hash-Funktionen, uns das mathematische Äquivalent einer Sperre zu liefern. Das Veröffentlichen des Hashwerts eines Werts ähnelt dem Sperren einer Sperre in der Öffentlichkeit, und das Freigeben des ursprünglichen Werts ähnelt dem Öffnen der Sperre. Aber sobald das Schloss geöffnet ist, kann es nicht wieder geschlossen werden. Das Problem besteht jedoch darin, dass Sperren unabhängig voneinander kein sicheres digitales Signaturschema erstellen können. Was Elliptische-Kurven-Kryptographie liefert, und SHA256 und RIPEMD-160 nicht, ist ein Mittel, um zu demonstrieren, dass Sie den geheimen Wert hinter einer Cyber-Sperre haben und diesen Beweis auch an eine bestimmte Nachricht anhängen, ohne den ursprünglichen Wert oder gar zu offenbaren die Beweise für jede andere Nachricht gültig machen als die, die du angehängt hast. In Bitcoin ist die fragliche Nachricht das ein Handel. Wann immer Ihr Bitcoin-Kunde einen Trade an die Community sendet, sendet er einen mathematischen Beweis für die folgende Wahrheit: Dieser Trade, der besagt, dass ich diese Geldsumme für diese Rede sende, wurde von jemandem zusammengestellt, der dafür verantwortlich ist das private Geheimnis unterstützt die Bitcoin-Sprache Ixe2x80x99m Senden von. Dies ist die Grundlage für die Transaktionsseite von Bitcoinxe2x80x99s Sicherheit.

Aber es gibt eine Konstruktion, die uns befähigt, dieses Problem ohne RSA, elliptische Kurven oder irgendein anderes herkömmliches Verschlüsselungssystem mit öffentlichem Schlüssel zu lösen: Lamport-Signaturen. Eine Lamport-Signatur ist eine einmalige Signatur, die das Lockbox-Problem auf folgende Weise umgeht: Es gibt mehrere Sperren, und es ist der Inhalt dieser Nachricht (oder vielmehr der Hash der Nachricht), der bestimmt, welche Sperren geöffnet werden müssen. Wenn eine Person versucht, Ihre Nachricht zu erfinden, ist es fast sicher (lesen Sie: dass die Sonne von Wasserstoff läuft, bevor eine andere Situation eintritt), dass das Lamport-Signaturschema sie mindestens eine Sperre öffnen muss, die Sie nicht bereits geöffnet haben ohne die unveröffentlichten geheimen Werte, wird nicht in der Lage sein zu leisten.

Lamport-Signaturen mögen technisch komplex erscheinen, aber da sie einfach eine Komponente xe2x80x93 haben, die Hash-Funktion (in diesem Beispiel wexe2x80x99ll verwendet RIPEMD-160), gehören sie tatsächlich zu den am leichtesten zugänglichen kryptografischen Protokollen für normale Personen. Der Algorithmus funktioniert wie folgt:

Alle diese Werte oder bei bestimmten Implementierungen, bei denen der Startwert für die Erstellung verwendet wird, sind Ihr privater Schlüssel. All dies ist Ihr Hauptschlüssel und wird auch von der Community benötigt, um Ihre Signatur später zu verifizieren. Um eine Nachricht zu signieren, berechnen Sie den RIPEMD-160-Hash dieser Nachricht und geben dann abhängig von jedem Bit des Hash die Schlüsselnummer hinter dem ersten oder zweiten Hash in jedem Paar frei. Wenn das Bit Null ist, öffne den Hash, und wenn das Bit eins ist, öffne die zweite Dekoration.

Bei dieser Strategie wird eine Bitcoin-Sprache immer noch der SHA256 RIPEMD-160-Hash des öffentlichen Schlüssels sein; Der einzige Unterschied besteht darin, dass der öffentliche Schlüssel aus 320 Hashwerten anstelle eines elliptischen Kurvenpunkts besteht. Ein Handel wird den öffentlichen Schlüssel zusammen mit der Signatur enthalten, genau wie jetzt, und, noch einmal wie jetzt, überprüfen Verifizierer, ob der öffentliche Schlüssel mit der Sprache übereinstimmt und die Signatur mit der Nachricht zusammen mit dem öffentlichen Schlüssel übereinstimmt. Die Signaturen sind fälschungssicher; Nichtsdestotrotz erfordert der Algorithmus von Groverxe2x80x99s 2 80 Schritte für einen Angreifer, um eine betrügerische Transaktion zu erstellen, bei der die genau gleichen 160 geheimen Zahlen aufgedeckt werden müssen, die Sie bereits demonstriert haben, oder sogar ein Gegner kann zwei 80 * 80 Schritte machen alle Hashes. Beide Zahlen liegen in den Billionen Billionen beider Berechnungen.

Die einzige Änderung im Verhalten, die erforderlich sein wird, ist, dass Leute anfangen, Adressen nur einmal zu verwenden; Nach zwei Verwendungen sinkt die Sicherheit des Lamport-Schemas auf zwei 40, ein Wert, der zunächst noch sicher gegen Quantencomputer sein könnte, aber nur knapp, und nach drei Verwendungen ist er genauso schwach wie die Elliptische-Kurven-Kryptographie. Theoretisch, aber auch das kann teilweise überwunden werden; Das Merkle-Signaturschema baut auf der Idee von Lamportxe2x80x99s auf, Signaturen zu erstellen, die Hunderte oder Zehn oder sogar möglicherweise sogar Tausende Mal verwendet werden können, bevor der private Schlüssel zurückgezogen werden muss. Die einzige Beschränkung auf die maximale Anzahl von Transaktionen pro Sprache ist im Wesentlichen eine Frage des Beschränkens von Blockchain-Blähungen.

Angesichts der heute öffentlichen Expertise sind Quantencomputer noch weit entfernt; der bisher erfolgreichste Quantencomputer schaffte es, den Algorithmus Shorxe2x80x99s zu verwenden, um die Zahl 21 zu faktorisieren. Aber plötzliche Fortschritte sind immer möglich, und wir müssen ständig eine Strategie haben, was wir tun können, wenn Edward Snowden entscheidet, dass die NSA hat völlig funktionsfähige Quantencomputer, die sich in einem geheimen Datenzentrum verstecken. Wir können solch ein überraschendes Ereignis wahrscheinlich nicht bewältigen, aber wir können sicherlich Fälle behandeln, in denen wir einen Monat Vorwarnung bekommen. Die Lösung ist folgende: Sobald ein Quanten-Vor-Notfall ausgerufen ist, sollte jeder seine Reichtümer in einen 1-aus-2-Multisignature-Handel zwischen einer unbenutzten alten Bitcoin-Rede und einer mit dem neuen Lamport erzeugten Adresse versetzen planen. Danach sollten Entwickler schnell den Lamport-Patch für so viele Bitcoin-Clients erstellen, wie Sie können, und für jeden die Aktualisierung durchführen. Wenn die ganze Prozedur innerhalb von vierzehn Tagen erledigt ist, dann werden Quantencomputer, wenn sie zur Bedrohung werden, die Mehrheit der Bitcoins von 2 x 80 x 99 in neuen Lamport-Adressen sein und auch sicher sein. Für Leute, die bis dahin ihren Wohlstand in alten Reden haben (ungenutzte Adressen im alten Stil, von denen aus Münzen in gebrauchten Adressen altmodisch gestohlen werden können), werden einige etablierte Organisationen zustimmen, als verlässliche Knoten zu dienen Verwenden Sie das Merkle-Signaturschema, um Transaktionen, die von Reden im alten Stil an Adressen im neuen Stil gesendet werden, mit einer zusätzlichen Signatur zu versehen. Um den Gemeinschaftsbetrug und Finney-Streiks zu stoppen, werden die neuen Bitcoin-Regeln alle Transaktionen von älteren zu neuen erfordern, nachdem eine bestimmte Stufe von diesen Behörden unterzeichnet wurde. Das Stromversorgungssystem wird eine Zentralisierung einführen, aber es wird nur eine vorübergehende Notfallmaßnahme sein, und nach ein paar Jahren kann das System vollständig eingestellt werden. Von dort lecken wir unsere Wunden, wählen unsere Verluste aus und gehen weiter, um einige der wundervolleren Dinge zu schätzen, die Ihnen Quantencomputer bieten können.