NSA lieferte Blaupause für Bitcoin?

Ich denke es gibt einige Missverständnisse hier zum Thema SHA-3 Algorithmus und der allgemeinen Software Sicherheit.

Korrekt ist dass eine US Behörde namens National Institute of Standards and Technology (NIST), die für Standardisierungsprozesse zuständig ist, ein Wettbewerb organisiert hat um den Nachfolger für SHA-2 zu bestimmen. Es nahmen viele Teams an der Ausschreibung teil. Der Algorihtmus namens Keccak, der von Guido Bertoni, Michaël Peeters und Gilles Van Assche entwickelt wurde, setzte sich durch. Der NIST hat einige Parameter von Keccak verändert und diese veränderte Version zum neuen SHA-3 Standard erklärt. Hierzu kann man im Buch Mastering Ethereum folgendes lesen:

However, during the period when Ethereum was developed, the NIST standardization was not yet finalized. NIST adjusted some of the parameters of Keccak after the completion of the standards process, allegedly to improve its efficiency. This was occurring at the same time as heroic whistleblower Edward Snowden revealed documents that imply that NIST may have been improperly influenced by the National Security Agency to intentionally weaken the Dual_EC_DRBG random-number generator standard, effectively placing a backdoor in the standard random number generator. The result of this controversy was a backlash against the proposed changes and a significant delay in the standardization of SHA-3. At the time, the Ethereum Foundation decided to implement the original Keccak algorithm, as proposed by its inventors, rather than the SHA-3 standard as modified by NIST.

Da aber diverse Kontroversen um diese US Behörden existieren entstand eine Spaltung. Obwohl der NIST ihre eigene Keccak Version zum SHA-3 Standard erklärt haben, nutzen viele heute immer noch die ursprüngliche Keccak Variante. Beide Varianten produzierten anhand eines gleichen Strings unterschiedliche Hashes. Bei der Implementierung müssen sich die Entwickler also immer zwischen SHA-3 und Keccak entscheiden. Und so wie ich das verstehe nutzt Bitcoin den SHA-3 Standard, also die vom NIST veränderte Keccak Version während z.B. Ethereum die unveränderte Keccak Variante nutzt.

Heißt das nun der SHA-3 Standard von NIST enthält eine Hintertür? Nein. Es geht einfach darum dass der NIST den Algorihtmus verändert hat. Diese Änderungen beeinträchtigen offiziell die Sicherheit des Algorithmus nicht oder nur vernachlässigbar gering. Offiziell bedeutet dass bisher niemand beweisen konnte dass durch die NIST Änderungen der Algorihtmus geknackt werden kann.

Die Aussage dass eine mögliche Schwachstelle in SHA-3 von Informatikern bisher längst bemerkt worden wäre ist in mehrerer Hinsicht falsch. Das Alter einer Software und dessen Verbreitung stellt keine Garantie gegen Sicherheitslücken dar. Es gibt immer wieder Fälle wo in Jahrzehnte altem Code Sicherheitslücken gefunden werden. Hier ein Beispiel für ein 17 Jahre alte Sicherheitslücke in einer weit verbreiteten Software:

Sicherheitslücken die zu einer Manipulation der Software führen muss man von kryptographischen Prozessen unterscheiden. Ein Bitcoin Programm, das den Bitcoin Protokoll implementiert, kann Sicherheitslücken haben. Das ist nicht so kritisch. Wenn man in so einer Software unerlaubte Operationen ausführt, die kryptographische Vorgaben missachten, dann wird das übrige Netzwerk diese nicht umsetzen. Kritisch wäre es nur wenn das gesamte Bitcoin Netzwerk die selbe Software nutzt. Dann wäre es theoretisch denkbar das alle Netzteilnehmer das Bitcoin Protokoll verletzen. Es wäre dann ein Art ungewollter Hardfork das die Bitcoin Regeln verletzt bzw. verändert. Dieses Szenario ist aber äußerst unwahrscheinlich.

Was die mathematische Sicherheit kryptographischer Funktionen wie SHA-3 angeht ist es nochmal anders. Das schauen sich dann auch eher Mathematiker an und weniger die Informatiker. Und in der Mathematik ist es so dass das Wissen über mathematische Strukturen und Gesetzmäßigkeiten sich mit der Zeit wandelt. Neue Erkenntnisse ermöglichen neue Wege mit Zahlen umzugehen. Und kein Mathematiker kann prinzipiell ausschließen dass der SHA-3 Algorithmus eine mathematische Schwachstelle enthält. Oder um genauer zu sein bisher gab es keinen solchen mathematischen Beweis. Die Mathematik ist wie ein unendlicher Dschungel wo man immer wieder was neues entdecken kann. Und manche Erkenntnisse führen dazu das einst als sicher betrachtete Konstrukte nicht mehr sicher sind.

Und an diesem Punkt kommen die Zweifel an offiziellen Standards. Die NSA gehört zu den größten Arbeitgebern für Mathematiker und Kryptographen. Wie wahrscheinlich ist es dass die NSA trotz massiver Kapazitäten an Köpfen und Technik auf dem selben Stand ist wie das öffentliche Wissen? Es ist durchaus möglich dass die NSA in einigen Bereichen exklusives Wissen angesammelt hat.
Aber niemand weiß in welchen Bereichen die NSA mehr weiß und welche Algorithmen davon wirklich betroffen sind. Man muss auch beachten das die NIST Standards auch US Behörden betreffen. Man kann sich fragen inwiefern die USA unsichere Algorithmen empfehlen, in einer Zeit wo auch Mächte wie China große Kapazitäten besitzen. Man will den eigenen Behörden und Unternehmen ja auch kein Standard aufdrücken was die Spionage für ausländische Mächte ebenfalls vereinfacht.
Einfach zu behaupten der SHA-3 Standard von NIST sei unsicher ist eine sehr gewagte Behauptung.

Wie kommt man eigentlich zu so einer Gewissheit? Wenn die NSA einen leistungsfähigen Quantencomputer entwickelt hat und diesen geheim hält, wie sollen wir davon erfahren? Man kann nicht einfach davon ausgehen dass dieses Wissen einfach so in die Öffentlichkeit schwappt.
Und solange es keinen massiven Angriff auf Bitcoin gibt wird man die Existenz einer solchen Technik vorerst auch nicht bemerken.

Ich glaube die Fähigkeiten von Quantencomputern sind so kritisch. Bevor diese Technologie offiziell zur Verfügung steht, wird es zuerst eine ganze Weile exklusive Technologie weniger Staaten bleiben. Mit technologischem Fortschritt von großer Tragweite ist es oft so. Der Staat besitzt es zuerst und erst später die Öffentlichkeit. Da wo heute Google oder IBM stehen im Bezug auf Quantencomputer stand die NSA vielleicht in den 80er oder 90er.

Als die Allierten damals die Enigma Verschlüsselt geknackt haben, haben sie auch nicht sämtliche entschlüsselte Botschaften militärisch verwertet. Denn sonst hätte der Feind bemerkt dass ihre Verschlüssel geknackt ist und nichts mehr taugt. Ich denke heute wäre das nicht anders. Wenn man etablierte kryptographische Methoden knackt, wird man das so nutzen dass es möglichst nicht auffällt.

1 „Gefällt mir“

Ganz einfach, ich glaube nicht dass es jemals einen Technologiesprung geben wird, der von heute auf morgen die gesammte Rechenkapazität des Bitcoinnetzwerkes mal eben nebenbei Simulieren kann bzw übernemen kann. Solche Technologie zu entwickeln braucht Zeit und Prototypen, die Stück für Stück besser werden. Sieh dir alleine mal die Entwicklung der Bitcoin-Asics an. Die Effizienz geht von Jahr zu Jahr hoch, aber es wird immer genügend alte Hardware geben sodass der Effizienzvorsprung der neusten Miner nicht das Netzwerk angreift. Auch ein Technologiewechsel wird daran nichts ändern.

Selbst wenn die Erfolge von Quantencomputern geheim gehalten werden sind sie erstens noch immer Meilenweit davon entfernt genügend Quantenteilchen zu verschränken (Qbits zu erzeugen) die nötig währen um annähernd gefährlich zu werden. Zweitens (zumindest meines Wissens) ist nichtmal geklärt ob der benutzte Sha-Algorithmus mit Quantentechniken knackbar ist. Ein Geschwindigkeitsvorteil in den Berechnungen kann physikalisch nicht in Größenordnungen besser sein, Quantencomputer erlauben nur Berechnungsparalelitäten, die herkömmlichen Rechnern verwehrt sind. Gehen wir davon aus, dass alle 32-Bit der nonsense werte eines Bitcoinheaders auf einmal durchgegangen werden können. Das erfordert dann wenigstens 32 QBit für einen „Rechenschritt“. Herkömmliche Miner haben dann einfach 2³² parallele Transistorwege die alle Werte in einem Rechenschritt durchlaufen werden.
Es mag sein dass Quantencomputer das also beschleunigen können, sie müssen aber in der Größenordnung von aktuell 200 Exahashes pro Sekunde ankommen um Bitcoin institutionell Angreifen zu können. Ansonsten wird sich die Hashrate früher oder später mit den neuen Quantencomputern noch weiter vergrößern sodass zukünftige bessere Maschinen es noch schweerer haben werden.
Heutige Institutionelle Quantencomputer werden aber nicht in diesen Taktraten verschaltet und stellen mit den aktuellen und in aussicht gestellten Qbits keine Gefahr dar.

Also kann nur eine verbesserte Quantenalgorithmik den Miningprozess bzw. die Hashrate beschleunigen. Und dagegen gibt es wie gesagt eine riesige Menge an Altlasgeräten die die Hashrate halt auf herkömlicher Art hoch halten. Sollte sich herrausstellen, dass Quantengeräte den Miningprozess effektiver gestallten als herkömmliche Hardware, dann wird diese sich Stück für Stück durchsetzen. Aber sie wird keinen so gigantischen Sprung machen wie du das beschriebst. Auch wenn man in die Vergangenheit schaut, die Rechenmaschinen sind auch nur Stück für Stück schneller, kleiner und leistungsstarker geworden. Selbst ein exponentielles Wachstum kann man so vorhersehen und abschätzen ob und wann die Quantencomputerentwicklung Bitcoin gefährlich werden könnte. Und sollte das der Fall sein dann wird sich mit Sicherheit eine Mehrheit finden die einen Fork betreibt der Bitcoin gegen solche Angriffe schützt.

Also im Miningbereich sehe ich absolut keine Gefahr durch Quantencomputer. Eventuell könnte es aber in anderen Bereichen zu Problemen kommen, zB. sollte es einen Quantenalgorithmus geben der die Hashwerte auf ihren ursprünglichen Klartext abbilden kann. Darauf kann Bitcoin dann nur mit einem Hardfork auf eine andere Hashfunktion reagieren. Aber auch das ist keine Technologiefrage sondern eine Algorithmik frage und kann, wie du schon gut ausgeführt hast auch heute schon ohne Quantencomputer zutreffen.

1 „Gefällt mir“

Kann man das aber wissen? Können wir wirklich realistisch einschätzen welchen Vorsprung Nachrichtendienste haben?
Wenn es der NSA gelingt eine bestimmte Anzahl an Qubits für ihre Berechnungen zu nutzen dann werden sie theoretisch mehr Rechenkapazität besitzen als das Bitcoin-Netzwerk. Egal was man glaubt.

Wie kannst du das wissen? Unsere Einschätzung orientiert sich doch am Stand der mehr oder weniger öffentlichen Forschung. Wie sollen wir wissen wann die NSA angefangen hat und welche Ressourcen sie in dem Bereich einsetzen? Beispielsweise war die Entwicklung der Atombombe ein technologischer Sprung, der die bis dahin sich langsam entwickelnde konventionelle Sprengkraft in den Schatten stellte. Sind die grundlegenden Probleme der Quantencomputer einmal weitgehend gelöst wird es denke ich einen großen Sprung geben. Aber ich kann mich auch irren und das ist es eben, wir können bestimmte mögliche Entwicklungen nicht wirklich ausschließen.

Das stimmt, Quantencomputer sind keine Universalrechner. Und da vieles nicht geklärt ist bleibt das Risiko bestehen.

1 „Gefällt mir“

Nein :slight_smile: Selbst wenn man bei der NSA arbeitet und genau weiß was deren stand ist sagt einem keiner ob nicht China, Nord Korea, Deutschland,… weiter in der Forschung ist.

Ja. Natürlich gibt es auch keine 100%tige Sicherheit. Aber die Grundlagenforschung an Universitäten und Universitätsnahen Firmen wird veröffentlicht. Also selbst wenn man davon ausgeht dass die Geheimdienste 10 Jahre Forschungsvorsprung haben als die Grundlagenforschung sind sie physikalisch immernoch nicht in der Lage die Hashrate des Rests der Welt anzugreifen. Dafür brauchen die Quantencomputer einfach zu viel Energie (um die Kühlung zu vollziehen die benötigt wird die Quantenzustände einigermaßen stabil zu halten).

Nein. Quantencomputer sind nicht einfach schnelle Computer. Die meisten existierenden Quantencomputer sind auch nur Asics, also in Hardware gegossene Algorithmen die dann auch nur diese eine spezielle Aufgabe erledigen können. Außerdem ist ihre Taktrate deutlich den herkömmlichen Computern unterlegen, da die Eingangszustände der Qubits erst präpariert werden müssen. Nur durch die Physikalische Ausnutzung von Qbits können Rechenoperationen effektiver ausgeführt werden als es herkömmliche Algorithmen es könnten.
Einfaches Beispiel Fouriertransformation. Einfach gesagt, während herkömmliche Algorithmen bestenfalls N log(N) Rechenschritte für eine N x N Matrix benötigen so kommt der Quantenalgorithmus mit log N * log N Rechenschritte aus. Das Verhältnis von herkömmlichen zum Quantenalgorithmus wächst also exponentiell besser in N.

Die Quantencomputer sind also Maschinen die spezielle Aufgaben einfacher (ungleich schneller!) lösen. Einfacher ist hier wichtig, denn sie sind nicht schneller, sie müssen nur nicht so viele Rechenschritte machen um die speziellen Aufgaben zu lösen. Für alle anderen Aufgaben sind herkömmliche Computer aber immer noch schneller und effizienter.

Für die ferne Zukunft werden vielleicht alle Computer auf Quantencomputer umsteigen, so wie x86 so langsam auf x64 umgestellt wird. Für die nahe Zukunft wird es aber noch Algortihmen geben die effizienter auf herhömmlichen Computern laufen und Algortihmen die auf Quantencomputern schneller sind. Es wird also erstmal weiterhin eine CPU geben, die man dann wie mit Grafikkarten erweitern kann mit einer Quantenplatine. Softwarehersteller (vielleicht auch Compiler) können dann selber entscheiden wann ihr Programm die CPU verwendet und wann die QPU, genauso wie sie jetzt schon die GPU mit in das Programm einbeziehen können. Das entscheiden sie jeh nachdem welche der Prozessingeinheit die jeweilige Aufgabe am schnellsten oder effizientesten lösen kann.

In noch näherer Zukunft sind die Quantencomputer aber so groß und schwer, dass sie nur von Institutionellen betrieben werden können. Größtenteils für Forschung und Machbarkeitstests. Aber sie brauchen viel Platz, viel Energie und vorallem individuelle Programierung, eventuell auch einhergehend mit einem Hardwareumbau für jede Rechenaufgabe.

Ich glaube nicht, dass so eine Maschine Hashrates in Exahashes bereich leisten kann um mit der gesamten restlichen Welt mithalten zu können. Und sollte sie einigermaßen Energieeffizient werden, dann wird es einen großen Markt geben diese Dinger zu bauen und zu verkaufen, und schon steigt die Hashrate wieder an die die Forschung Übersteien muss um Bitcoin angreifen zu können.

Es ist doch das gleiche wie zB. der Festplattenmarkt. Wenn du zu beginn Festplatten mit einem KB Speicherplatz baust, dann verkaufst du davon vielleicht 1000. Insgesammt gibt es also schon 1 MB Datenspeicher. Jetzt wird die Technologie besser und du verkaufst Festplatten mit 10 KB. Verkaufst du wieder nur 1000 davon hast du trotsdem schon 11 MB maximalen Festplattenplatz. Und das geht immer so weiter nur dass meist nicht nur 1000 sondern Millionen stück verkauft werden. Also nur wenn der Technologiesprung in der Größenordnung ist wie die Verkaufszahlen der Vorgänger kannst du in Bereiche des maximalen Vorrats kommen. Natürlich gehen auch einige Geräte wieder kaputt oder verloren, sodass der Vorrat auch wieder schrumpfen kann, aber tendentiell geht die Hashrate ja immer weiter hoch, genauso wie die Speicehrkapazität aller Festplatten auf der Erde.

Und genau so einen Technologiesprung ist momentan in der Forschung nicht abzusehen. Die herkömmliche Technik ist schon auf Nanoebene angekommen und ohne lokalen Quanteneffekte läuft schon jetzt keine aktuelle Hardware. Mag sein, dass die higend-Quantencomputer den Normalen Computern im Faktor 100 oder 1000 überlegen sein werden. Bezogen auf das Mining würde es dann Mininghardware statt 100 TH auf 100PH kommen. Damit müsste es aber immernoch 2000 dieser Quantencomputer geben um Bitcoin mit der aktuellen Hashrate zu übernemen.

Ich halte es schon für unrealistisch dass es zu beginn einen Faktor 10 geben wird. Und wie gesagt, sobald es solche Mininghardware geben wird müssen zukünftige Forschungen ja wieder um diesen Faktor besser werden, ansonsten sichern sie das Netzwerk auch „nur“ ab.