POW-basierte Blockchain-Systeme Majority Attack

TL;DR: Mit nur 30% Netzwerkleistung ist ein Majority Attack möglich und profitabel. Vermisse ich etwas?


Im Allgemeinen verwenden Blockchains, die auf Proof-of-Work-Authentifizierungen basieren, den Arbeitsaufwand als das Gewicht der eigenen Stimme.

Ich werde speziell über Bitcoin sprechen, um die Diskussion zu vereinfachen (obwohl ich es hasse, Leute zu lesen, die hier über Kryptowährung sprechen).

Eine Transaktion gilt normalerweise als bestätigt, nachdem 6 Blöcke darüber abgebaut wurden. Meistens werden sogar 2 Blöcke als ausreichend angesehen, aber betrachten wir die sichere Entscheidung von 6 Block. Nehmen wir nun an, ich habe 30 % der Netzwerkleistung.

Ich und das Netzwerk haben das gleiche Blockchain-Präfix. An diesem Punkt fange ich an zu arbeiten und meine eigenen Blöcke daran anzuhängen, wobei ich den Rest des Netzwerks ignoriere. Die Chancen, dass ich es schaffe, eine Blockchain aufzubauen, die mindestens so lang ist wie die längste Kette im Netzwerk, bis die Transaktion „bestätigt“ ist, liegt bei etwa 15 % (Referenz unten).

Das bedeutet, dass ich meine bestätigten Transaktionen in 15 % der Fälle rückgängig machen kann. Jetzt muss ich nur noch mehr Geld mit einem rückgängig gemachten Block verdienen, als ich für die gesamte Rechenleistung bezahle. Dies ist nicht unmöglich. Wenn ein "bestätigter" Block mit meinen Transaktionen auch nur halb voll ist, kann der Gesamtbetrag leicht 2 Millionen USD betragen (Referenz unten). Bei einer Erfolgsquote von 15 % zurückzukehren, bedeutet mindestens einen Block alle zwei Stunden (einen Block alle zehn Minuten).

Aber 2 Stunden Arbeit haben mich nur etwa 140.000 USD gekostet.

Oder noch wichtiger: Faires Spielen scheint nicht unbedingt profitabler zu sein.

Das Spielen nach den Regeln für zwei Stunden entspricht heute etwa 1,2 Millionen USD Einkommen (wenn Sie 30% der Netzwerkleistung besitzen).

Es scheint rentabel, das System hin und wieder anzugreifen, selbst mit 30 % der Netzwerkleistung.

(Offensichtlich mache ich lieber viele "kleine" Transaktionen rückgängig als eine große, damit niemand misstrauisch wird und auf weitere Bestätigungen wartet.)

Was vermisse ich?

Ein paar Punkte: - Auf Themen wie "ein Angreifer ist leicht zu finden" gehe ich eher nicht ein. Dies kann wahr sein oder auch nicht. Aber es ist nicht relevant für die Frage: Ist es möglich und rentabel, das Netzwerk mit 30% Netzwerkleistung anzugreifen? - Wenn Sie behaupten, dass ich mich nicht irre und dies wahr ist (was ich bezweifle), geben Sie bitte Ihren Grad an Vertrautheit mit dem Protokoll und der Sicherheit des Systems an.

Referenzen:

Nennen sie das nicht „egoistisches Mining“?
@OsiasJota: Nein. Der egoistische Mining-Angriff ist ein anderer Angriff, der im entsprechenden Artikel beschrieben wird . Der egoistische Mining-Angriff ist ein Angriff auf die Kettenqualität, dh er ermöglicht es einem Miner, mehr Blöcke in die Blockchain zu bekommen als die ehrliche Strategie. Das hat nichts mit Doppelausgaben zu tun.

Antworten (1)

Der Angriff, den Sie beschreiben, ist richtig. Dies ist ein Angriff auf die „Common Prefix“-Eigenschaft der Blockchain, die grob besagt, dass es für einen Gegner schwierig sein sollte, zwei ehrliche Parteien dazu zu bringen, zwei verschiedene Blockchains gleichzeitig zu übernehmen, wenn sie sich für mehr als kBlöcke voneinander entfernt haben, wo kist ein Parameter. In Ihrem Fall haben Sie eingestellt k = 6.

Tatsächlich wurde der Angriff, den Sie beschreiben, in Satoshis Originalpapier analysiert . Wenn Sie sich den letzten Abschnitt (11. Berechnungen) ansehen, berechnet Satoshi die Erfolgswahrscheinlichkeit des von Ihnen beschriebenen Angriffs. Insbesondere untersucht er die Wahrscheinlichkeit des gegnerischen Erfolgs für verschiedene Werte der Variablen, die er nennt q, die die gegnerische Mining-Macht angibt. Für Ihren Fall, q = 0.3. Dann verwendet er die Variable z, um die Anzahl der Blöcke anzugeben, die gewartet wird, bevor eine Transaktion als bestätigt akzeptiert wird, in Ihrem Fall z = 6. In Satoshis Analyse folgt dies einer Poisson-Verteilung und ungefähr beträgt die Wahrscheinlichkeit eines gegnerischen Erfolgs tatsächlich p ~= 0.15. Tatsächlich berechnet Satoshi den Fall genau z = 5und q = 0.3erhält p = 0.1773.

In der Originalarbeit gibt es bestimmte zEmpfehlungen dafür, wie viele Blöcke man warten sollte, um eine gegnerische Wahrscheinlichkeitsschranke von zu erreichen p < 0.1%. Denn q = 0.3das Minimum z, das dies erreicht, ist z = 24. Wenn Sie also einem Gegner von 30 % standhalten wollen, müssen Sie 24 Bestätigungen abwarten.

Satoshis Analyse ist etwas grob, da sie nur einen bestimmten Angriff berücksichtigt. Nachfolgende Analysen haben es uns ermöglicht, diese Wahrscheinlichkeiten gegen willkürliche , sogar unbekannte Gegner zu quantifizieren. Die primäre Referenz ist hier die Backbone-Analyse . In diesem Papier wird die Common Prefix-Eigenschaft genau angegeben und bewiesen, dass sie gegen willkürliche Gegner gilt.

Die Backbone-Analyse ist aus mehreren Gründen eine Verbesserung gegenüber der von Satoshi. Ich nenne einige:

  • Die Wahrscheinlichkeitsverteilungen werden genau (als Binomial- und Bernoulli-Verteilungen) und nicht näherungsweise (als Poisson-Verteilungen) angegeben.
  • Der Gegner ist willkürlich und folgt nicht unbedingt einer Strategie, die wir vorhergesagt haben oder von der wir wissen.
  • Die Sicherheit ist bewiesen und nicht einfach intuitiv vermutet.
  • Mit theoretischen Informatikwerkzeugen bis hin zu interaktiven Turing-Maschinen wird das System exakt modelliert und analysiert.

Um die Common Prefix-Anweisung genau zu sehen, schauen Sie sich Definition 3 (Common Prefix) unter Abschnitt 3.2 (Gewünschte Eigenschaften des Protokolls) an. Dass Bitcoin diese Eigenschaft hat, wird in Abschnitt 4.2 (Common-Prefix-Eigenschaft) unter Theorem 15 (Common Prefix) bewiesen. Dort ist eine genaue Formel für angegeben k, die Anzahl der Blöcke, die Sie warten müssen, um zu wissen, dass die Kette nicht bis zu diesem Punkt reorganisiert werden kann: k = ηκf. Die Variablen η, κ, fwerden in Abschnitt 4 (Analyse) unter Tabelle 1 (Die Parameter in unserer Analyse) präzisiert. Es ist schwierig, diesen Variablen konkrete Zahlen zu geben, da sie vom Zustand und der Leistung des Netzwerks sowie vom Schwierigkeitsgrad des Minings abhängen. Für Bitcoin haben wir dasκ = 256ist die Bitlänge der (Mining-)Hash-Funktion. Ich schätze die Rundendauer optimistisch auf etwa 10 Sekunden (Zeit, die ein großer Teil, sagen wir 90 % des Netzwerks benötigt, um von einem neu abgebauten Block-Header zu erfahren) und da ein Block im Durchschnitt alle 10 Minuten gefunden wird, Wir haben das ffür 0.0003Bitcoin. Ich weiß nicht, wie ich das ηgenau abschätzen soll.

Der Punkt ist, dass das Common Prefix Theorem erreicht wird, kwenn "die Ausführung typisch ist" (Typizität wird in Theorem 10 festgelegt), was von den Parametern abhängt ηκ. Voraussetzung für die Typizität ist, dass die untersuchten Sequenzen aufeinanderfolgender Runden mindestens ηκlang sind. Die Annahme, dass diese Menge groß ist, ist notwendig, um die Chernoff-Grenzen auf die Binomialverteilung anzuwenden: Typizität wird mit überwältigender Wahrscheinlichkeit in dieser Zahl erreicht. Wenn diese Zahl klein ist, ist die Wahrscheinlichkeit nicht mehr überwältigend und die Sicherheit des Systems kann versagen.

Solche Analysen sind typisch für kryptografische Systeme, einschließlich digitaler Signaturen, Verschlüsselungsschemata, Zero-Knowledge-Beweise und so weiter. Der Gegner ist in der Lage, mit einer Wahrscheinlichkeit erfolgreich zu sein, die durch eine Funktion mit einer freien Variablen begrenzt ist: Diese freie Variable ist der Sicherheitsparameter ( ηκim Fall von Backbone) und die Funktion ist in diesem Parameter vernachlässigbar, was bedeutet, dass die Wahrscheinlichkeit exponentiell abfällt Parameter steigt. Im Fall von Bitcoin sinkt die Wahrscheinlichkeit doppelter Ausgaben exponentiell mit zunehmender Blockchain-Größe, ist aber für Bitcoin nicht zu vernachlässigen k = 6, insbesondere wenn der Gegner mächtig ist.

Um Ihren konkreteren Punkt anzusprechen, dass dies wirtschaftlich machbar ist: Sie haben Recht, dass Sie 2 Millionen Dollar in einer einzigen Bitcoin-Transaktion überweisen können. Ich halte es jedoch für unwahrscheinlich, dass der Empfänger einer solchen Transaktion diese nachher für sicher hält k = 6; es muss ein Wert nahe bei k = 25verwendet werden. Es ist sinnvoll, kfür kleinere Beträge niedrigere Werte von zu akzeptieren und größere Werte von zu fordernkfür größere Beträge. Obwohl die genaue Wahrscheinlichkeit schwer zu berechnen ist, wenden die meisten Börsen und andere automatisierte Dienste, die Kryptowährungszahlungen akzeptieren, dennoch angemessene Grenzen an, und ich gehe davon aus, dass sie diese für Beträge in Millionenhöhe erhöhen (normalerweise geschieht dies, indem eine menschliche Genehmigung einer Transaktion erforderlich ist). für extrem hochwertige Transaktionen, die definitiv viel Zeit für einen ordnungsgemäßen Proof-of-Work obendrauf lassen). Die wirtschaftlichen Kosten einer Verzweigung der Kette, um einen Blockabbruch zu verursachen, werden in dem Artikel „ On bitcoin as a public randomness source “ kurz analysiert. Angesichts dieser Analyse kann man die Kosten für das Forken der Blockchain gegen die potenziellen Gewinne abwägen, die man durch erfolgreiches Double Spend erzielen könnte, multipliziert mit der gegnerischen Erfolgswahrscheinlichkeit, die aus Backbone berechnet wird. Dies kann es einer Partei ermöglichen, ihren gewünschten Wert von kfür verschiedene monetäre Parameter genau zu bestimmen, wenn präzise gegnerische Grenzen gegeben sind, wie z q = 0.3.

Ich weiß, dass diese Antwort ein bisschen technisch war und nicht viele konkrete Zahlen enthielt, aber ich hoffe, sie hat etwas Aufschluss darüber gegeben, warum der von Ihnen beschriebene Angriff tatsächlich möglich ist, obwohl wir ihn immer noch als „vernachlässigbar“ bezeichnen würden. Da Sie nach meinen Zeugnissen gefragt haben, bin ich ein PhD-Student in Kryptographie mit Schwerpunkt auf den Grundlagen von Blockchain-Protokollen an der Informatikfakultät der Universität Athen. Aggelos Kiayias, der das Backbone-Papier geschrieben hat, ist mein Berater (ich habe zu diesem Papier nicht beigetragen). Da er mein Lehrer ist, bin ich mit seiner Arbeit bestens vertraut, insbesondere weil wir das in Backbone entwickelte Modell für die spätere Arbeit verwenden. Ich bin wissenschaftlicher Mitarbeiter bei IOHK, wo wir die Grundlagen einer Kryptowährung, die wir Cardano nennen, aufbauen und sie aus mathematischer Sicht analysieren. Wahrscheinlichkeiten des kontradiktorischen Erfolgs bei Versuchen, Blockchain-Forks durchzuführen, sowie deren Analyse tauchen in meiner eigenen Arbeit auf, in der ich versuche, Sidechains zu konstruieren, die mehrere Blockchains verbinden. Wir beweisen oft Vernachlässigbarkeitsgrenzen in diesen Einstellungen.