Hacking Verge: wie es war (Teil 1)

Time Warps, Mining-Schwachstellen, DOS-Angriffe und mehr.

Krypto-Enthusiasten erzählen gewöhnlichen Leuten gerne von der Zuverlässigkeit und Sicherheit der Blockchain-Protokolle, auf denen ihre Lieblingscoins laufen. Tatsächlich bieten die größten Kryptowährungen wie Bitcoin oder Ethereum ein angemessenes Maß an Sicherheit und machen es vielleicht besser als jedes andere digitale Asset oder Zahlungssystem in der Geschichte. Dies ist eine ziemlich große Leistung, wenn man bedenkt, dass diese Kryptowährungen durch nichts gedeckt sind und von niemandem kontrolliert werden.

Viele wagen jedoch zu argumentieren, dass die genannten Kryptowährungen grundsätzlich nicht gehackt werden können. Dies ist zumindest eine taktische Fehleinschätzung, da solche Aussagen in manchen Fällen eine Person in eine missliche Lage bringen können. Zum Beispiel, wenn die Währung noch gehackt wird.

In solchen Fällen, wenn nichts anderes übrig bleibt, müssen Sie sich vielleicht zumindest erklären.

Im vergangenen Monat hackte ein noch nicht identifizierter Hacker Verge, eine relativ kleine Kryptowährung mit Fokus auf die Anonymität der Benutzer. Zwischen dem 4. und 6. April gelang es einem unbekannten Hacker dreimal, mehrere Stunden lang die Kontrolle über das Verge-Netzwerk zu übernehmen, während andere Benutzer keine Zahlungen leisten konnten. Zu allem Überfluss gab der Hacker in diesen Intervallen gefälschte Verge-Coins mit einer Rate von 1 Coins (ca. 560 US-Dollar) pro Sekunde aus. Infolgedessen prägte der Hacker Kryptowährungen im Wert von über 80 Million US-Dollar.

Diese Situation kann ohne Übertreibung als katastrophal bezeichnet werden. Verge wurde im großen Stil gehackt.

Aber wer ist schuld? War es ein Fehler der Verge-Entwickler, eine grundlegende Schwachstelle des Kryptoprotokolls oder etwas anderes? Könnte dies bei größeren Kryptowährungen passieren und wenn ja, wie kann man es vermeiden?

Bei dieser Art von Hack sind viele Details immer unklar. In diesem Fall können jedoch die wichtigsten Schwachstellen identifiziert werden:

Timestamp-Spoofing: Unbeabsichtigte Fehler oder gefährliche Lügen?

Auf den ersten Blick mag diese Schwachstelle wie ein Bug erscheinen, tatsächlich handelt es sich jedoch um eine spezielle Funktion zum Erstellen von „ungenauen“ Zeitstempeln. Bei Blockchain-Protokollen werden einzelne Transaktionen (normalerweise Übertragungen zwischen Netzwerkteilnehmern) zu einem einzigen Block zusammengefasst, der dann verifiziert wird. Jeder Block hat einen Zeitstempel am Datum seiner Bildung. Selbst wenn das Blockchain-Protokoll einwandfrei funktioniert, kann die Abfolge dieser Stempel gestört sein - zum Beispiel kann Block 100 einen Zeitstempel haben, der geht nach Block 101. Dies liegt daran, dass es in dezentralen Netzen, die die Einräumung von Rechten an Dritte verweigern, gar nicht so einfach ist, eine korrekte Zeitsynchronisation herzustellen.

Angesichts der unvorhersehbaren Zeit, die für die Verbreitung von Daten über ein Peer-to-Peer-Netzwerk benötigt wird, können Blöcke durchaus als „außer Betrieb“ erscheinen, selbst wenn alle Parteien Transaktionen in gutem Glauben durchführen. Mit anderen Worten, in dieser Hinsicht muss zumindest ein wenig Flexibilität zugelassen werden; im Fall von Verge (zumindest vor dem Hack) erlaubte das Protokoll den Nodes, sich über die im Block angegebene aktuelle Zeit zu "uneinig" zu sein, und die Desynchronisierung konnte bis zu zwei Stunden dauern.

Der Hacker begann seinen Angriff, indem er Zeitstempel fälschte. Er schickte Blöcke wie aus der Vergangenheit, aber ohne die erlaubten 2 Stunden zu überschreiten, was bedeutet, dass diese Blöcke für den Rest der Netzwerkknoten akzeptabel blieben.

Der Grund, warum dies letztendlich die Sicherheit des Netzwerks beeinträchtigen könnte, liegt in der Natur des Minings für Proof-of-Work-Netzwerke.

Bergbauschwierigkeit: Mauern schützen nur, wenn sie hoch sind

Um das Verge-Netzwerk zu dezentralisieren, müssen Sie sicherstellen, dass kleine Geräte (wie MacBooks) die Netzwerksoftware ausführen können. Dies wiederum führt zu einer Begrenzung des Zahlungsvolumens im Netzwerk, d. h. zur Festlegung einer Zielzeit für eine Sperre (und in der Folge zu einer Begrenzung der Anzahl der Transaktionen pro Sekunde). Das Verge-Netzwerk lief alle 1 Sekunden um 30 Block. Da das Netzwerk dezentralisiert ist, kann eine vernünftige Frage gestellt werden: Was hindert die Teilnehmer daran, Blöcke mit einer viel höheren Geschwindigkeit zu senden? Dies ist ein nicht triviales Problem: Wenn jeder bestätigte Block demjenigen, der ihn gebildet hat, eine Belohnung bringt, dann ist es für den Miner von Vorteil, so viele Blöcke wie möglich zu bestätigen.

Kurz gesagt, die Lösung für dieses Problem ist die Lösung des Proof-of-Work-Protokolls. Damit das Netzwerk einen Block validieren kann, muss es eine Lösung für ein kryptografisch komplexes Rechenproblem enthalten, das direkt aus den Daten im Block selbst stammt. Die Natur dieses Problems ist derart, dass seine Komplexität leicht geändert werden kann. Verge zielte darauf ab, 1 Block in 30 Sekunden zu bilden, und die Mining-Schwierigkeit wurde basierend auf der aktuellen Blockbestätigungsrate ständig angepasst; Wenn Benutzer sich entschieden, dem Mining und der Generierung von Verge-Blöcken mehr Leistung zuzuweisen, und diese Blöcke schneller generiert wurden, erhöhte das Protokoll die Schwierigkeit des Minings und die Blockbestätigung verlangsamte sich. Umgekehrt, wenn die Leistung abnimmt und die Zeit zum Erzeugen eines Blocks zunimmt, Bergbau wurde einfacher. Wenn also externe Faktoren sich auch in der realen Welt ändern – wirtschaftliche Schwankungen, Marktpreise von Kryptowährungen, Energiemärkte, Aufstieg und Fall von Imperien usw. – hat das Verge-Netzwerk ständig auf Änderungen reagiert und versucht, dies zu tun die Bildung von Blöcken in Zeiteinheit zum Ziel bringen.

Der Algorithmus, den Verge verwendet, um die aktuelle Schwierigkeit eines Problems zu berechnen, heißt Dark Gravity Wave; es berechnet einen gewichteten Durchschnitt der Blockbestätigungsrate über einen Zeitraum von 2 Stunden. Dies ist ein komplexer Algorithmus, und die Details spielen hier keine Rolle. Wichtig ist, dass die Komplexität des Minings von der Geschwindigkeit der Bildung der letzten Blöcke abhängt und die Berechnung dieser Geschwindigkeit natürlich mit Zeitstempeln verbunden ist.

Hier liegt das Problem: Wer genügend fehlerhafte Zeitstempel erzeugt, gerät ins Wanken. Genau das hat der Hacker getan - Daten aus der Blockchain zeigen, dass während der gesamten Zeit des Hacks/der Hacks jeder zweite Block mit einem Zeitstempel etwa eine Stunde vor der aktuellen Uhrzeit gesendet wurde, was den Algorithmus zum Einstellen der Bergbau Schwierigkeiten. Wenn das Protokoll Intelligenz hätte und sprechen könnte, würde es so etwas sagen wie: „Oh nein! In letzter Zeit wurden nicht genügend Blöcke gebildet! Wahrscheinlich ist die Komplexität des Minings zu hoch – wir müssen sie reduzieren!“

Da Zeitstempel ständig manipuliert wurden, reduzierte das Protokoll die Schwierigkeit der Aufgaben weiter, bis das Mining lächerlich einfach wurde. Zum allgemeinen Verständnis: Die durchschnittliche Aufgabenschwierigkeit in Stunden betrug 1393093,39131 Stunden und fiel während des Angriffs auf 0,00024414, dh die Mining-Schwierigkeit verringerte sich um 99.999999 %. Je geringer die Komplexität der Aufgabe, desto mehr Blöcke können gebildet und an die Blockchain gesendet werden; Als Ergebnis des Angriffs wurde ein Block in nur 1 Sekunde gesendet.

Die Originalität des Angriffs liegt darin, dass der Hacker das Mining-Schwierigkeitslimit umgangen hat, anstatt es zu durchbrechen. Stellen Sie sich vor, das Sicherheitssystem ist eine Mauer, die das Netz umgibt, diese Mauer ist zu hoch und stark, sie kann nicht zerbrochen oder bestiegen werden. Der Hacker fand einen Weg, es tiefer zu machen - und stieg einfach darüber.

Dass diese Schwachstelle nicht offensichtlich war, ist alarmierend. Ein solcher offener Angriff auf das Protokoll führt zu einer Verschlechterung der Reputation des Netzwerks. Darüber hinaus ermöglichte die erhöhte Blockerstellungsrate die Erstellung von viel mehr Verge-Coins als im Protokoll vorgesehen. Wenn Sie ein Ökonom sind, der sich für eine zuverlässige Währung mit vorhersehbaren Stock-to-Flow-Verhältnissen einsetzt, sollte Sie diese Situation beunruhigen.

Die Reduzierung der Komplexität ist jedoch nur die halbe Miete; allein würde dies dem Angreifer eigentlich keinen Vorteil verschaffen. Mit der reduzierten Komplexität wurde die Blockbildung für den Hacker wirklich viel einfacher, aber auch für alle anderen wurde es einfacher - Miner konkurrieren wie immer miteinander. In dieser Situation gehen wir davon aus, dass, obwohl Blöcke schneller generiert werden, erfolgreiche Miner wie bisher verteilt und demokratisch bleiben sollten. Anders ausgedrückt: Unabhängig von der Komplexität des Minings muss ein Angreifer, um das Netzwerk zu übernehmen, immer noch mindestens 51 % der Systemleistung kontrollieren.

Dieser Hacker hat jedoch wirklich das gesamte Netzwerk übernommen und es mit viel weniger Ressourcen als 51% der gesamten Hashrate geschafft. Er erreichte dies, indem er die zweite Komponente der Schwachstelle ausnutzte, die mehrere Mining-Algorithmen von Verge beinhaltet.

To be continued ...

Bewerten Sie diesen Artikel
Blockchain-Medien
Kommentar hinzufügen