Häufig ist zu lesen, dass wegen Quantencomputer keine Verschlüsselung mehr sicher sein. Da Kryptowährungen vor allem auf solider Verschlüsselung basieren, stellt sich die Frage ob nicht die Quantencomputer-Hersteller von heute, die Bitcoin-Besitzer von morgen sind. Abseits der alten Klassiker gibt es auch schon einige Währungen die von sich behaupten Quantencomputer sicher zu sein, wie zB. IOTA und NEO. Heißt das, dass Bitcoin nicht mehr zu retten ist und man umsteigen sollte?

Ich meine nein, allerdings ist die ganze Problematik heikler als man denkt.

Quantencomputer – was ist das?

Ein Computer ist eine Allzweckrechenmaschine mit glorifizierten Ein- und Ausgabe. Egal ob es um World of Warcraft, Mining für Bitcoin oder Briefschreiben in Word geht, es läuft darauf hinaus, dass Bits hin und her geschoben werden und dafür nötige Berechnungen angestellt werden. Ein Quantencomputer ist konzeptionell das gleiche. Jedoch kann ein Quantencomputer durch spezielle physikalische Eigenschaften (Superpositionsprinzip und Quantenverschränkung) bestimmte Probleme performanter lösen.

Welche Probleme performanter gelöst werden können ist nicht abschließend geklärt. Allerdings wurde bereits für einige Probleme gezeigt, dass es mit Quantencomputer schneller geht als mit regulären Computern. Berühmt sind der Shor-Algorithmus und der Grover-Algorithmus. Der Shor-Algorithmus erlaubt es im Vergleich zu herkömmlichen Computern relativ schnell eine Primfaktorenzerlegung bei großen Zahlen durch zu führen. Die Verschlüsselungsalgorithmen wie sie zB. bei Bitcoin verwendet werden basieren auf diesem Prinzip: Ein Angreifer muss diese Primzahlen erraten können. Sind die Zahlen groß genug gewählt, kann ein gängiges 100€ Smartphone Daten so verschlüsseln, dass ein Supercomputer viele Hundert Jahre herumrechnen muss um die Verschlüsselung knacken zu können.

Wem das zu trocken und unverständlich klingt, dem kann ich dieses Erklärvideo für Quantenkryptographie empfehlen.

Das Video versucht Quantenkryptographie als Lösung des Problems zu präsentieren, das hat allerdings einen großen Denkfehler: Ich möchte, dass die Daten für fremde Augen unleserlich bleiben – auch nachdem ich sie von einem Computer zu einem anderen übertragen habe.

Primfaktorenzerlegung – geht’s auch ohne?

Quantum Secure Cryptography – oder zu Deutsch Quantencomputer sichere Kryptographie – ist ein heißes Thema in der Forschung. IOTA basiert auf einer verfeinerten Variante des Lamport-Einmalsignaturverfahren. Genauer gesagt handelt es sich dabei um Winternitz-Signaturen die kürzere Hashes und schnellere Hash-Berechnungen ermöglichen.

NEO setzt auf Gitter-basierte Kryptographie. Die deutsche Quellenlage ist leider sehr dünn. Im Gegensatz dazu findet man englische Literatur an der auch viel Fleisch daran ist wie zB. Lattice based cryptography for Beginners. Kurz gesagt handelt es sich bei Gitter um spezielle algebraische Strukturen. Eine algebraische Struktur, kurz auch Algebra, definiert mit was man wie rechnen kann. So wäre zB. die Menge der natürlichen Zahlen und die Grundrechenarten eine Algebra. Im Gegensatz zu dieser sehr simplen Algebra sind Gitter sehr viel anspruchsvoller betreffend der Rechenoperationen und der möglichen Ergebnisse. Dieser Anspruch, der das ganze auch abstrakter und weniger greifbar macht, hat zur Folge, dass die darauf basierte Kryptographie ohne Primfaktoren auskommt und deshalb sicher gegen Quantencomputer ist.

Bitcoin patchen – Hardfork und gut ist, oder?

Das legt den Schluss nahe, dass es relativ einfach sein sollte, dass man so etwas auch bei Bitcoin einbauen könnte. Immerhin konnte durch einen Hardfork auch relativ einfach geändert werden wie Blöcke erzeugt werden was dazu geführt hat, dass sich Bitcoin Cash Blöcke und Bitcoin Blöcke mittlerweile wesentlich unterscheiden da Informationen über Transaktionen ein- bzw. ausgegliedert sind und deutlich mehr Transaktionen in einem Bitcoin Cash Block sind. Auf Software-Ebene ist es prinzipiell einfach neue Updates ins System einzuspielen, aber …​

Bitcoin verwendet das Unspent Transaction Output Prinzip. Das bedeutet, dass man einen Kryptowährungsbetrag nicht auf bestimmte Accounts schiebt und dann der Besitzer des Accounts diesen Betrag besitzt, sondern dass man nur den Schlüssel für ein bestimmtes Asset besitzt. (Siehe auch Bitcoins Stärken) Als Besitzer des Asset-Schlüssels kann man eine neue Transaktion erstellen in dem der Schlüssel weiter gereicht wird. Damit ist der komplette Fluss eines jedes Bitcoin-Fragments nachvollziehbar bis zu dem Zeitpunkt als der Bitcoin gemined wurde. Auch wenn das vor zig tausend Transaktionen geschehen ist.

Das heißt allerdings, dass man nicht einfach das Schloss austauschen kann um zu verhindern, dass es Quantencomputer knacken – denn dann passen die alten Schlüssel nicht mehr! Man kann die alten Schlüssel auch nicht als Schablone für die neuen Schlüssel hernehmen, da Quantencomputer auf Basis des UTXO-Index in der Lage wären, diese alten Schlüssel nach zu machen. Damit könnten dann die Bösewichte sich auch die neuen Schlüssel erzeugen.

Das heißt, bevor es zum Hardfork und der Umstellung auf einen quantensicheren Algorithmus kommt, muss es eine Phase geben in dem Bitcoin-Besitzer neue Adressen und von den alten Wallets unabhängige Wallets anlegen. Dann könnten sie ihre Assets auf die neuen Adressen verschicken um sicher zu sein. Das hat eine überraschend positive Wendung: Alle „toten“ Bitcoins die auf Adressen liegen für die schon lange niemand mehr die nötigen Schlüssel besitzt, wird der Zeitpunkt kommen an dem jemand sie dank seines Quantencomputer auf ein anderes Konto schieben wird. Vermutlich sein eigens Wallet.

Kurz gesagt: Man kann Blockchains wie Bitcoin Quantensicher machen, es wird aber auch organisatorische Probleme dabei geben. Mittelfristig sollte sich also jeder Krypto-Investor überlegen ob seine Währungen dazu geeignet sind, gegen Quantencomputer abgesichert zu werden. Langfristig ist es unumgänglich auf die umzuschichten, die genau das garantieren können.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

seven + one =