Unabhängig vom Proof-of-Work-PoW, dem Proof-of-Equity-PoS oder dem delegierten Proof-of-Equity-DPoS können theoretisch 51 % der Angriffe nicht vermieden werden. Der Angreifer kontrolliert das Hauptnetzwerk über 51 %. reversible Blöcke, was zu einer gefüllten Blüte führt.

Hintergrundwissen

Als dezentrales, verteiltes öffentliches Datenspeichersystem verfügt die Blockchain nicht über eine zentrale Verwaltungsorganisation, sondern wird von verteilten Knoten mithilfe kryptografischer Protokolle gemeinsam verwaltet, und jeder Knoten muss die Konsistenz des Hauptbuchs gewährleisten das zugrunde liegende Konsensprotokoll. Blockchains haben unterschiedliche praktische Verwendungsmöglichkeiten in verschiedenen realen Szenarien, wie z. B. öffentlichen Ketten, privaten Ketten und Allianzketten, wie z. B. dem von Bitcoin verwendeten PoW-Konsens und dem von Ethereum verwendeten PoW-Konsens Der von EOS verwendete Konsens und die Sicherheit der verschiedenen Konsensalgorithmen sind unterschiedlich.

In diesem Artikel werden die Angriffsrisiken detailliert beschrieben, die in den von Bitcoin und Ethereum verwendeten PoW-Konsensprotokollen bestehen.

PoW-Konsensmechanismus

Werfen wir zunächst einen Blick auf das PoW-Konsensprotokoll.

Aus der Sicht eines dezentralen Hauptbuchsystems muss jeder Knoten, der dem System beitritt, ein vollständiges Hauptbuch führen, aber nicht jeder Knoten kann gleichzeitig Konten führen, da sich die Knoten in unterschiedlichen Umgebungen befinden und unterschiedliche Informationen erhalten. Daher ist ein Konsens erforderlich Welcher Knoten hat das Recht, Konten zu führen? Die Bitcoin- und Ethereum-Blockchains lösen das Konsistenzproblem des dezentralen Buchhaltungssystems durch konkurrierende Buchhaltung, also einen Mechanismus, der die Rechenleistung jedes Knotens, also die „Rechenleistung“, nutzt, um um Buchhaltungsrechte zu konkurrieren ist „Bergbau“.​

Doch wer hat in einem dezentralen System das Recht, den Ausgang des Wettbewerbs zu bestimmen? Die Bitcoin- und Ethereum-Blockchain-Systeme werden durch einen Konsensmechanismus namens Proof of Work (PoW) erreicht.

PoW (Proof of Work), also „Proof of Work“, ist vereinfacht ausgedrückt ein Zertifikat, das bestätigt, dass das Arbeitsende eine bestimmte Menge an Arbeit geleistet hat. Das Arbeitsende muss eine bestimmte Menge schwieriger Arbeit leisten, um ein Ergebnis zu erhalten, und der Prüfer prüft anhand der Ergebnisse, ob das Arbeitsende die entsprechende Arbeit geleistet hat.

Beim Mining durch Proof-of-Work-Konsens müssen drei Regeln befolgt werden:

  • Nur eine Person kann Konten innerhalb eines bestimmten Zeitraums erfolgreich erfassen

  • Treten Sie gegeneinander an, um das alleinige Buchhaltungsrecht zu erhalten, indem Sie kryptografische Rätsel lösen (d. h. Arbeitsnachweise).

  • Andere Knoten verifizieren und kopieren die Abrechnungsergebnisse

  

Bei der gegebenen Zeichenfolge „Blockchain“ besteht die von uns angegebene Arbeitslast darin, dass wir nach dieser Zeichenfolge eine ganzzahlige Wertzeichenfolge namens „nonce“ verketten und eine SHA256-Hash-Operation für die verkettete Zeichenfolge ausführen können Formular) beginnt mit mehreren Nullen, dann ist die Verifizierung bestanden. Um dieses Proof-of-Work-Ziel zu erreichen, müssen wir den Nonce-Wert kontinuierlich erhöhen und eine SHA256-Hash-Operation für die neu erhaltene Zeichenfolge durchführen.

Hash (Wert des vorherigen Hash, Transaktionsdatensatz-Informationssatz) = 29329385BNDH749 Hash (vorheriger Hash-Wert, Transaktionsdatensatz-Informationssatz, Zufallszahl-Nonce) = 000029329385BNDH749

Der Hash der Blockhöhe 512884 in Bitcoin lautet beispielsweise:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

Der Arbeitsnachweis, der zum Generieren dieses Blocks durch Buchhaltung erforderlich ist, umfasst 16**18 Hash-Berechnungen, was einen sehr großen Rechenaufwand darstellt.

51 % Angriff

Nachdem wir kurz die einfachen Prinzipien des Packens von Blöcken durch Buchhaltung und PoW vorgestellt haben, kehren wir zu unserer Frage zurück: Was ist ein 51-Prozent-Angriff und was ist ein Double-Spend-Angriff?

Unter einem Double-Spend-Angriff versteht man einfach einen Angriff, bei dem ein Token über mehrere Zahlungsmethoden verwendet wird, was bedeutet, dass dieselbe Währung mehrmals ausgegeben wird. Es gibt viele Möglichkeiten, einen Double-Spend-Angriff zu starten, einschließlich der folgenden Formen:

  • 51 % Angriff

  • Rassenangriff

  • Vector 76-Angriff

  • alternativer Geschichtsangriff

Das heißt, wenn der Angreifer mehr als 50 % der Rechenleistung des gesamten Netzwerks kontrolliert, kann er durch einen 51 %-Angriff einen Double Spend durchführen.

Hier analysieren wir nur den 51%-Angriffsprozess.

51 %-Angriff, auch bekannt als Mehrheitsangriff. Dieser Angriff erzielt doppelte Ausgaben, indem er die Rechenleistung des Netzwerks kontrolliert. Wenn ein Angreifer mehr als 50 % der Rechenleistung im Netzwerk kontrolliert, kann er in der Zeit, in der er die Rechenleistung kontrolliert, die Blockierung rückgängig machen, umgekehrte Transaktionen durchführen und doppelte Ausgaben erzielen.

Im PoW-Konsensprotokoll ermöglicht das Blockchain-System die gleichzeitige Existenz mehrerer gespaltener Ketten, und jede Kette kann der Außenwelt gegenüber erklären, dass sie korrekt ist. Es gibt jedoch ein am längsten wirksames Prinzip im Designkonzept der Blockchain: „Egal. An welchem ​​Punkt gilt die längste Kette als die Hauptkette mit der meisten Arbeit?“

Lassen Sie uns kurz den 51 %-Angriffsprozess simulieren:

Wenn es einen solchen Angreifer gibt, sendet er absichtlich die erste Transaktion an die Hälfte des Netzwerks und die zweite Transaktion an die andere Hälfte des Netzwerks, und dann gibt es auf beiden Seiten genau zwei Miner, die fast gleichzeitig Abrechnungsrechte erhalten Zeit und ihre jeweiligen Buchhaltungsrechte werden an alle gesendet. Zu diesem Zeitpunkt ist das ursprüngliche einheitliche Hauptbuch gegabelt.

Wenn sich der nächste Miner als Nächstes dazu entschließt, die Abrechnung basierend auf A fortzusetzen, ist Zweig A länger als Zweig B. Gemäß den Regeln der Blockchain wird der längste Zweig erkannt, der kurze Zweig aufgegeben und das Hauptbuch bleibt stehen be wird zu eins zurückkehren und nur eine Transaktion ist gültig.

Zu diesem Zeitpunkt wird Zweig A erkannt und die entsprechende Transaktion bestätigt. Wenn der Angreifer das Produkt erhält, verwandelt er sich sofort in einen Miner, erhält zwei aufeinanderfolgende Abrechnungsrechte und fügt dann zwei Blöcke zu Zweig B hinzu.

Dann wird Filiale B zu einer anerkannten Filiale. Die Transaktion in Filiale A ist nicht mehr gültig, aber der Angreifer hat die Ware bereits doppelt erhalten. Der Spend-Angriff wurde erfolgreich abgeschlossen. Wenn Zweig B hinterherhinkt, ist es sehr schwierig, ihn zu zwingen, Zweig A zu übertreffen. In Wirklichkeit ist die Erfolgswahrscheinlichkeit jedoch sehr gering, wenn der Angreifer mehr als 50 % der Rechenleistung kontrolliert Das gesamte Netzwerk fällt dann stark zurück, und es ist nur eine Frage der Zeit, bis es aufholt. Dies ist der oben erwähnte „51-Prozent-Angriff“.

Fallanalyse eines Bitcoin Gold 51 %-Angriffs

In der realen Welt der Blockchain kam es aufgrund von 51 %-Angriffen häufig zu doppelten Ausgaben.

Das Double-Spending-Problem bei Bitcoin Gold (BTG-Münze) ist beispielsweise ein 51-Prozent-Angriff. Der Angriffsprozess ist wie folgt:

  1. Der Angreifer kontrolliert mehr als 51 % der Rechenleistung im Bitcoin Gold-Netzwerk. Während der Zeit, in der er die Rechenleistung kontrolliert, hat er eine bestimmte Menge BTG an seine Wallet an der Börse gesendet. Wir haben diesen Zweig Zweig A genannt.

  2. Gleichzeitig schickte er diese BTG an eine andere von ihm kontrollierte Wallet. Wir nannten diese Filiale Branch B.

  3. Nachdem die Transaktion in Filiale A bestätigt wurde, verkauft der Angreifer sofort BTG und erhält Bargeld. Zu diesem Zeitpunkt wird Zweig A zur Hauptkette.

  4. Dann schürft der Angreifer Zweig B. Da er mehr als 51 % der Rechenleistung kontrolliert, besteht eine hohe Wahrscheinlichkeit, dass der Angreifer Abrechnungsrechte erhält, sodass die Länge von Zweig B bald die Hauptkette (d. h. die Länge des Zweigs) überschreitet A), dann wird Zweig B zur Hauptkette und die Transaktionen in Zweig A werden zurückgesetzt, um die Daten im letzten korrekten Zustand wiederherzustellen.

  5. Mit anderen Worten: Zweig A wird wieder in den Zustand versetzt, in dem er sich befand, bevor der Angreifer die erste Transaktion initiierte, und die BTG, die der Angreifer zuvor in Bargeld umgewandelt hatte, sind wieder in seinen Händen.

  1. Schließlich sendet der Angreifer diese BTG an eine andere seiner Wallets. Auf diese Weise kontrollierte der Angreifer mehr als 51 % der Rechenleistung, um eine „doppelte Ausgabe“ desselben Tokens zu erreichen.

Dem Blockchain-Datenbericht dieses Angriffs zufolge hat der Angreifer 22 Blöcke erfolgreich rückgängig gemacht. Die an diesem Angriff beteiligte Bitcoin-Gold-Adresse hat mehr als 388.200 US-Dollar BTG erhalten. Unter der Annahme, dass alle diese Transaktionen mit Doppelausgaben zusammenhängen, hat der Angreifer bis zu 18,6 Millionen US-Dollar erhalten Möglicherweise wurden Gelder im Wert von der Börse gestohlen

Zusätzlich zu dem Double-Spending-Problem, das bei Bitcoin Gold auftrat, gibt es viele Fälle von Double-Spending-Angriffen, die durch 51-Prozent-Angriffe verursacht wurden:

  • Die anonyme digitale Währung Verge hat einst in nur wenigen Stunden in böswilliger Absicht mehr als 35 Millionen #xvg im Wert von etwa 1,75 Millionen US-Dollar geschürft.

  • Die japanische Kryptowährung Monacoin wurde offenbar von einem Block-Deduction-Angriff getroffen, nachdem ein Miner bis zu 57 % der Hash-Leistung des Netzwerks erlangt hatte.

  • Offizielle Nachrichten von Litecoin Cash (LCC): LCC erlitt einen 51-prozentigen Angriff.

  • Auch die digitale Währung #zen erlitt einen 51-prozentigen Angriff.

  • Kürzlich erlitt Ethereum Classic #etc einen 51-prozentigen Angriff.