Attacke auf Bitcoin mit dem Quantencomputer

Die Aussage, Quantencomputer werden Bitcoin bald wertlos machen, kommt nur von Leuten, die weder Quantencomputer noch Bitcoin verstanden haben.

Bei einem Wert von 1,3 Billionen Dollar vergeht keine Sekunde, in der niemand versucht Bitcoin anzugreifen.

In der Theorie sind Angriffe auf Mining- bzw. Transaktions-Ebene (Manipulation von Blocks) sowie auf Adress-Ebene (Diebstahl) denkbar. Heute möchte ich ein paar Worte zu technischen Attacken auf Adress-Ebene verlieren.

Wie generiere ich eine Adresse, auf die ich mir Bitcoin schicken lasse?

Schritt 1:

Mein Wallet generiert eine 256-bit Zufallszahl. Also eine Zahl, die in binärer Schreibweise 256 Stellen aufweist.

Software ist schlecht darin, Zufallszahlen zu generieren. Daher werden physische Komponenten ergänzt, z.B. die aktuelle CPU-Temperatur, oder die Frequenz mit der Strom in dein Gerät fließt, oder du wirst aufgefordert deine Maus einige Sekunden zu bewegen.

Krypto-Wallets verwenden häufig eine Kombination aus ca. 5 Methoden.

Wenn du der Zufallszahlen-Generierung deines Wallets nicht vertraust, gibt es 2 Möglichkeiten:

1) Du entscheidest dich für ein Wallet mit Open Source Code, und prüfst die Zufallszahlen-Generierung selbst, oder vertraust darauf dass einer von 8 Milliarden Menschen bereits gemeldet hätte wenn dort etwas nicht ganz koscher ist.

2) Du generierst selbst eine 256-bit Zahl, bspw. indem du 256x eine Münze wirfst. Diese kannst du bei den meisten Wallets eingeben.

Hier braucht man keine Angst zu haben, dass ein anderer Bitcoiner dieselbe Wallet erstellt hat, denn 2^256 in Dezimal ist: 115792089237316195423570985008687907853269984665640564039457584007913129639936

Die Wahrscheinlichkeit dass 2 Bitcoiner dieselbe Wallet generiert haben ist als würden 2 Menschen sich 1 von 10000 Erden aussuchen und auf diesem (selben) Planeten dann dasselbe Sandkorn auswählen.

Schritt 2:

Die große Zahl aus Schritt 1 wird in 24 (oder 12) englische Wörter aus einer Liste mit 2048 Wörtern übersetzt, nach dem BIP39 (Bitcoin Improvement Proposal). Wie das genau geschieht, soll hier keine Rolle spielen, weil es nichts mit der Sicherheit zu tun hat.

Aus diesen 24 (oder 12 je nach Wallet) Wörtern kann man alles weitere ableiten. Das nennt sich auch Mnemonic Phrase oder auch (Recovery) Seed Phrase.

Schritt 3:

Aus der 256-bit Zahl werden private Schlüssel abgeleitet.

Schritt 4:

Über ECDSA (Elliptic Curve Digital Signature Algorithm) erhält man öffentliche Schlüssel zu den privaten Schlüsseln.

Schritt 5:

Die öffentlichen Schlüssel werden gehashed mit SHA-256 (256-bit Secure Hash Algorithm).

Schritt 6:

Die Hashes aus Schritt 5 werden nochmal gehashed, diesmal mit RIPEMD-160.

Schritt 7:

Die Hashes aus Schritt 6 werden Base58-codiert (zur kürzeren Schreibweise) und das Ergebnis sind die Bitcoin-Adressen.

Was muss ein Angreifer leisten?

Das ist ein wahnsinniger Grad an Verschlüsselung.

Das ist auch nicht „Stand 2008“ (Veröffentlichung des Bitcoin Whitepaper), denn einige dieser Schritte sind über die Jahre hinzugekommen zur Erhöhung der Sicherheit.

Jeder Nutzer hat jedoch die Flexibilität, das Adressformat zu nutzen, welches ihm am besten gefällt. Natürlich kann man sich auch jederzeit seine Coins von einem alten Adressformat auf ein neueres Adressformat schicken.

Auf den neuesten Adressformaten muss ein Angreifer also, um auf dein Wallet zuzugreifen:

  • den Input des Hashwertes der Hashfunktion RIPEMD-160 zurückrechnen
  • sowie den Input des Hashwertes der Hashfunktion SHA-256 zurückrechnen
  • sowie die elliptische Kurve brechen

Was ist ein Quantencomputer?

Ein Quantencomputer arbeitet mit Qbits, die alle Zustände zwischen 0 und 1 annehmen können, während ein gewöhnlicher Computer binär arbeitet.

Mit jedem zusätzlichen Qbit steigt zwar die Rechenleistung exponentiell, doch ebenso die Fehler die es auszumerzen gilt.

Ein Quantencomputer wird immer für ein ganz spezielles Problem entwickelt.

Wie wahrscheinlich ist ein erfolgreicher Angriff?

Erstens: Es ist unklar ob überhaupt einer der 3 erforderlichen Schritte (ECDSA plus SHA-256 plus RIPEMD-160 brechen) in den nächsten Jahrzehnten bewältigt werden kann.

Zweitens: So weit ich weiß, werden Quantencomputer vielleicht irgendwann mal bei der Ermittlung des Private Keys aus dem Public Key schneller sein als gewöhnliche Computer, aber nicht beim Zurückrechnen von Hashing-Algorithmen. Hier helfen Qbits nicht.

Drittens: Selbst wenn das Wunder irgendwann gelingt, kann die Sicherheit von Bitcoin jederzeit erhöht (mit SHA-512 oder was auch immer) und die alten Coins auf die neuen, sichereren Adressen gesendet werden. Und so ein Wunder passiert nicht von heute auf morgen, sondern man nähert sich über Jahre / Jahrzehnte immer weiter an.

Viertens: Wenn dieses Wunder gelingt, dann ist nichts sicher, und Bitcoin ist vermutlich nicht das erste Angriffsziel, sondern eher die Kommunikation von Geheimdiensten und Militärs, Regierungschefs, CEOs usw.

Also: Stay humble and stack sats.

2 Gedanken zu „Attacke auf Bitcoin mit dem Quantencomputer

  1. Hallo Stefan.

    Drittens: Selbst wenn das Wunder irgendwann gelingt, kann die Sicherheit von Bitcoin jederzeit erhöht (mit SHA-512 oder was auch immer) und die alten Coins auf die neuen, sichereren Adressen gesendet werden. Und so ein Wunder passiert nicht von heute auf morgen, sondern man nähert sich über Jahre / Jahrzehnte immer weiter an.

    Wäre dazu eine Hardfork nötig? Vermutlich.

    Mit SHA-512 o.ä. werden die Schlüssel länger, insofern muss vermutlich das Transaktionsformat geändert werden. D.h. eine Softfork reicht dann nicht.

    Gruß Walter

    Like

    • Hallo Walter,

      Ich denke ein Softfork würde ausreichen. Segwit und Taproot waren ebenfalls Softforks und haben neue Adressformate generiert, die ich nutzen kann, aber nicht muss (Rückwärtskompatibilität).

      Wenn nur die Hashfunktion aus Schritt 5 geändert wird, nicht aber die aus Schritt 6, dann sollte sich die Länge der Bitcoin-Adresse nicht ändern.

      Wenn auch beim Hashen der Blocks die Hashfunktion geändert wird, sieht es wahrscheinlich anders aus.

      Viele Grüße

      Stefan

      Like

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..