Auswirkungen einer 51% Attacke

Hallo zusammen

Was wären die Auswirkungen einer 51% Attacke und wie würde man damit umgehen?

Soweit ich es verstanden habe, kann man mit der Mehrheit der Hashpower höchstens einen Double Spend durchführen, was zum Vertrauensverlust führt. Mehr liegt da nicht drin, oder?

Vielen Dank und liebe Grüsse

Naja, ich denke, es würde bedeuten, dass Bitcoin und die ganze Idee dahinter gescheitert wäre… und damit mehr oder weniger auch die Menschheit. Wir müssten dann einen Weg finden, in ein Paralleluniversum auszuwandern, in dem die 51%-Attacke noch nicht erfolgt ist und diese verhindern. Das wäre aber auch schon alles. Zum Glück ist es auch in diesem Universum ziemlich unwahrscheinlich, dass das passiert.

1 „Gefällt mir“

Naja ganz so tragisch ist es nicht. Eine double spend Attacke ist natürlich möglich aber Ökonomisch ziemlich Sinnlos. Hab jetzt gerade keine genauen Zahlen, ab wann ein double spend Ökonomisch Sinnvoll wäre, aber das liegt sicherlich im Milliarden Bereich. Nehmen wir an, du sendest mir Bitcoins im Gegenwert für einige Milliarden ich übergebe dir etwas in Gegenwert von Milliarden und du verschwindest dann damit und gibst diese Milliarden an anderer stelle nochmal aus. Das dies so einfach nicht möglich ist sollte Einleuchten. Für Bezahlungen im niedrigen Millionen Bereich sind double spends also Sinnlos. Ein realerer Angriff wäre, dass Netzwerk zu Attackieren. Wenn ich 51% der Hashing Power habe, könnte ich neue Leere Blöcke Minen und sobald ich die längste Kette habe, was unter umständen sehr lange dauern kann, diese ans Netzwerk publishen. Alle Blöcke und die ganze Ökonomische Aktivität, welche in den Blöcken vom start der Attacke stattgefunden hat, würde dann für ungültig erklärt. Dies würde natürlich mit einen Vertrauenverlust in die Sicherheit einhergehen, allerdings stellt sich dann trotzdem noch die Frage, ob die (staatlichen) Entitäten damit an vertrauen Gewinnen würden, wenn sie Milliarden an Steuergeldern verbrennen um einem Netzwerk welches ihnen ein Dorn im Auge ist zu attackieren. Am Ende des Tages ist ein double spend ökonomisch sinnlos und eine Attacke auf das Netzwerk von Staatlichen Entitäten würde deren Gesinnung entblössen und schlussendlich würde sich wahrscheinlich ein Sozialer Konsens finden, diese Attacke entsprechend Rückgängig zu machen.

2 „Gefällt mir“

Über die 51% Attacke habe ich mir neulich auch Gedanken gemacht.

Ich kam erstmal zu dem Schluss, dass 51% oder mehr Hashpower doch gar nichts bringen dürfte, weil es nur bedeutet, dass man von den 100 nächsten Blöcken 51 findet. Aber 49 Blöcke finden die anderen Miner.

Wir sind hier ja nicht bei Proof of Stake, wo man mit 51% die Mehrheit hält und alles kontrollieren kann, sondern der Anteil der Rechenleistung steht einfach dafür, wie hoch der Anteil der demnächst gefundenen Blöcke sein wird.

@Leue21
Wie passt da jetzt die double spend attacke rein? Das ist mir nicht ganz klar.

Du kannst durch die Varianz auch mit 45% der Hashleistung kurzfristig mehr als die Hälfte der Blöcke minen. Und 51% ist ja nicht die Obergrenze. Wenn man an 70% oder 80% kommt, kann es sicher problematisch werden. Zumindest würde man dann mehrere Blöcke abwarten als heute, bevor man eine Transaktion als gültig ansieht.

Double Spend kann man durchführen, wenn man eine längere Kette parallel mined als die anderen Miner zusammen. Während alle anderen Miner zwei Blöcke minen (ich nenne sie mal Block A und Block B), mined man selber „versteckt im Hintergrund“ drei Blöcke (also X, Y und Z). Wenn man die längere Kette jetzt veröffentlicht, dann wird die eigene Blockchain von anderen Teilnehmern als „gültige“ Kette akzeptiert.

Obwohl man jetzt seine Bitcoin in Block A oder B verkauft und in Euro getauscht haben könnte, hat man seine Bitcoin jetzt wieder, da Block Z gültig ist und man in dieser Kette seine Bitcoin nie verkauft hat. Die Euro hätte man trotzdem.

Deswegen wartet man bei wichtigen Transaktionen ein paar Blöcke ab, da es oft parallele Ketten über einen Block gibt, wenn zwei Miner gleichzeitig einen Block finden. Erst der nächste gefundene Block entscheidet dann darüber, welche Kette valide ist. (Also eigentlich sind beide valide.)

3 „Gefällt mir“

An sich ist die 51% Attacke eher eine theoretische Attacke als ein wirklich mögliches Szenario.

Wenn jemand aber Millionen EUR in Bitcoin rein steckt um eben diese 51% zu erreichen, dann hat diese Person auch ein Interesse daran, dass Bitcoin wertstabil bleibt oder sogar mehr wert wird. Weil warum würde ich Unmengen Geld dafür einsetzen, um ein Netzwerk zu sabotieren, wo auch mein eigenes Vermögen drin steckt? 51% bedeutet nämlich auch irgendwie, dass ich mehr Geld & Fortschritt in Bitcoin investiere als andere anderen auf der Welt.


Was kann ich mit 51% machen?

  • teilw. Transaktionen zensieren (gezielt Tx nicht aufnehmen)
  • Double Spend (durch längere Blockchain)

Um jedoch die Vergangenheit zu verändern, musst Du jedoch 2 Faktoren besitzen:

  • über 51% der aktuellen Hash-Rate
  • Genügend weitere Hashrate um die Vergangenheit schneller zu verarbeiten als die Zukunft kommt.

Der folgende Absatz ist sehr kontrovers und wird von vielen Bitcoiner abgelehnt, trotzdem ist es in der Theorie mögl.:

So ein Anstieg der Hashrate im Netzwerk erhöht aber auch immer die Schwierigkeit was dem entgegen wirkt. Außerdem fällt sowas auf. Wenn man den Zeitpunkt fix machen kann, kann man mit einem HardFork auch die Blockchain theoretisch zurückdatieren und den Angreifer ausschließen.

2 „Gefällt mir“

Wie bereits geschrieben kannst du mit 51 deine BTC doppelt ausgeben! Nehmen wir an du gibts deine BTC auf der aktuell gültigen chain aus, tauscht diese in Euro und betreibst mining im versteckten. Wenn du die längste chain hast wird diese von den Nodes als gültige chain anerkannt und deine utxos wurden noch nicht ausgegeben.

Beispiel du hast eine Blockhöhe von 100 und besitzt 10 BTC. Nun startest du mining im Hintergrund und gibst deine 10 BTC auf der aktuellen chain in Block 101 aus. In deiner selbst geminten chain allerdings nicht. Statistisch ist es nur eine Frage der Zeit bis du die längere chain hast! Z.b hat die main chain 106 Blöcke deine aber 107. Diesen Status veröffentlicht du das Netzwerk sieht, die chain mit 107 Blöcken also als die neue Wahrheit an. Ökonomisch allerdings nicht sinnvoll, da du ja irgendetwas von Gegenwert für deine 10 BTC im Block 101 erhalten musst bevor du Block 107 veröffentlichen kannst.

Umtauschen in Euro, Immobilien Geschäfte etc fallen da ja schon mal raus, weil du Geschäfte dieser Grössenordnung nicht innerhalb von Minuten bis Stunden abwickeln kannst.

Eventuell würde ein swap über einen dezentralisierten Exchange in einen andern coin funktionieren, aber wahrscheinlich auch nicht.

Ausserdem kann es wie gesagt mit 51 Prozent lange dauern bis du die längere chain hast. Theoretisch kannst du ja sogar mit einem 0,0000001 Prozent oder weniger einen double spend machen, allerdings ist die Wahrscheinlichkeit dazu praktisch 0.

Das zensieren von bestimmten Transaktionen ist sinnlos, da solange du auf der Hauptchain weiter Mining betreibst, diese trotzdem noch gemint werden, es würde halt nur länger dauern, da sie bei 51 Prozent nur in 49 Prozent der Blöcke aufgenommen würden.

Die einzig nachvollziehbare Attacke wäre, nicht ökonomisch motiviert. Wenn Staaten den Netzwerk schaden zufügen wollen, wie oben beschrieben. Allerdings könnte das mit einem Fork wieder Rückgängig gemacht werden und die Staaten würden ihrem vertrauen mehr schaden zufügen als dem BTC Netzwerk.

Bitcoin lässt sich bei der aktuellen hashing power also ökonomisch nicht attackieren.

3 „Gefällt mir“

Danke für deinen sehr ausfürlichen Kommentar. Was mir noch nicht ganz klar ist, wie man den Angriff mittels Fork rückgängig machen kann. Der Staat, der den Angriff ausgeführt hat, hat ja immer noch die Hardware und könnte den Angriff einfach erneut durchführen.

Ich bezweifle, dass es in einem solchen Szenario einfach wäre, alle von einem Fork zu überzeugen, da ein Double Spend ja eigentlich keine Verletzung des Regelwerks darstellt

Ja richtig theoretisch, kann der Angreifer nach einem Fork eine erneute Attacke durchführen.

Sowas müsste aber global organisiert sein. Wenn z.B. Europa sagen würde, Bitcoin ist uns ein Dorn im Auge, wir wollen keine alternative zu unserer Währung und einen Angriff starten würde, müssten sie schon fast die Komplette Industrie Produktion einstellen und die Bevölkerung hätte extrem gestiegene Strompreise. Andere Staaten könnten dann sogar das Mining hochfahren um Wirtschaftlich von der Selbstzerstörung Europas zu profitieren.

Am Ende des Tages ist alles möglich, die Bestrafung gegen das Bitcoin Protokoll zu spielen, aber höher als was man gewinnen kann.

Antonopoulos erklärt die Funktionsweise eines Fairness Protokoll ganz gut mit einer Anekdotischen Erzählung.

2 Kinder Lieben Pommes und streiten sich um die Grössere Portion.
Wenn die Mutter die Aufteilung der Portionen vornimmt, beschweren sich die Kinder über ungleiche Portionen, versuchen die Mutter ggf. zu bestehen etc.

Mit dem Fairness Protokoll Teile und wähle, hat man ein Anreiz System was denjenigen bestraft der versucht zu betrügen.

Wie funktioniert es? Ein Kind muss die Portion aufteilen, das andere Kind darf sich eine Portion aussuchen.

1 „Gefällt mir“

Könnte daher kommen, dass er mehrere verschiedene Aussagen enthält.

Wenn die Hashrate nur steigt, weil ein Angreifer dazu kommt, wirkt das diesem Angreifer nicht entgegen.

Kommt auch wieder darauf an.

Falls die Hashrate plötzlich dazu kommt, ja.

Falls ein großer Teil der Hashrate plötzlich fehlt, weil an einer parallelen Kette gearbeitet wird, auch.

Falls ein großer Teil der Hashrate, z.B. ein oder mehrere Pools „zensieren“, kann es etwas dauern bis das auffällt, wenn überhaupt. Siehe Diskussionen zu Ocean.

Wäre theoretisch möglich. In der Praxis aber nicht, insbesondere bei voranschreitender Adoption. Zumindest fällt mir kein machbarer Weg ein.

Alle Transaktionen bis zum Zeitpunkt des Forks hätten schlagartig nie stattgefunden. Stell dir vor, es hätten Millionen Bezahl-, Einzahl- oder Auszahlvorgänge stattgefunden. Die Empfänger würden dann praktisch enteignet.

Dasselbe Problem hätte man zwar durch den eigentlichen Angriff mit der parallelen Chain auch schon, aber sehr wahrscheinlich nur über einen kürzeren Zeitraum.

Beim Ethereum Classic Fork war das Projekt ja noch wesentlich kleiner als Bitcoin heute.

Das geht leider nicht.

Sollte ein Poolbetreiber die Hashrate des Pools für einen Angriff missbraucht haben, springen höchstens die Miner ab.

Angreifer mit eigener Hashrate kann man aber nicht ausschließen, da man Blöcke anonym veröffentlichen kann.

Ja das kontrovers ist eben bezogen auf
„Ethereum und Ethereum Classic“, was die Community durchaus gespalten hatte.


Vielleicht meine Gedanken etwas ausführlicher dargestellt:

Wenn die Schwierigkeit steigt, ist es grundsätzlich schwere Blöcke zu Minen → Ändert aber an meiner Rechenleistung per se nichts.

Was aber schwieriger wird, ist ausreichend weitere Rechenleistung bereitzustellen um die Vergangenheit z.B. zu manipulieren und die Blockchain aufzuarbeiten, z.b. die eben 10 Blöcke die man häufig abwartet.

Die Schwierigkeit stellt sich ja so ein, dass in einem Netzwerk, wo eine Rechenleistung von x EH vorherrscht, ungefähr alle 10 Minuten 1 Block gefunden wird. Je weiter ich die Schwierigkeit und Gesamtrechenleistung erhöhe im Netzwerk, umso mehr Rechenleistung muss ich aufwenden um schneller zu sein als das Netzwerk, damit ich die längere gültige Blockchain aufweisen kann.


In der Theorie möglich. In der Praxis auch umsetzbar jedoch eben mit sehr viel weiteren Problemen.
Ein solcher HardFork ist auch das extrem kontroverse, wie z.B. bei Ethereum und Ethereum Classic zu sehen war.

Die Frage in diesem hypothetischen Szenario ist:
Was ist wichtiger:
„Viele unschuldige Transaktionen rückgängig machen um staatlicher Zensur zu entgehen und staatliche double spend Angriffe rückgängig zu machen“
ODER
„Die unschuldigen Transaktionen verschonen und damit die staatliche Manipulation tolerieren.“

Ich persönlich bin ein Befürworter der Unveränderlichkeit der Blockchain. Könnte mir aber einen solchen Hard-Fork noch als aller letzte Notlösung vorstellen gegen bestimmte Angriffe und Manipulationen, ähnlich einem „Great Reset“.


Auch eine kontroverse These, da eben Bitcoin ein öffentliches, für jeden verfügbares Tool sein soll.

Das Ausgrenzen des Angreifers, muss hierbei auch nicht auf Protokollebene erfolgen. Eine solch riesige Menge an Mining Geräten, kann nicht einfach so aus dem Nichts auftauchen, außerdem müssen diese auch irgendwo betrieben werden, mit einer entsprechenden Internet und Strom Anbindung. Zumal sich der Akteur auch um die Abwärme kümmern muss.

Sehr viele Menschen sind in diesem Angriffs-Szenario involviert und könnten diesen Prozess stören oder ggf. sogar verhindern.

Schon richtig. Damals hat sich ja sogar der Großteil für die „Rückabwicklung“ bzw. die abgeforkte Chain entschieden.

Bei Bitcoin könnte ich mir das heutzutage nicht mehr vorstellen, aber das muss natürlich nichts heißen.

Durch den Angriff selbst gäbe es schon Geschädigte. Was dann passieren würde, kann man eh schlecht vorhersagen. Evtl. würden die Börsen erstmal dicht machen und damit Millionen von Panikverkäufen verhindern. Auch Zahlungen mit Bitcoin würden vorerst nicht mehr angenommen. Es gäbe also evtl. weniger Transaktionen nach dem Angriff als man denkt.

Wie das bei einer globalen Währung BTC ablaufen würde, keine Ahnung. :sweat_smile:

Den „Rettungs-Fork“ an sich gäbe es übrigens wahrscheinlich sowieso immer. Die Frage ist nur, welche Chain sich als dominante durchsetzt.

Ich verstehe nicht was du damit meinst?

Wenn jemand einen Double Spend durchführen möchte, mined er eine parallele Chain. Die Blockchain vor dem Start der Parallelchain muss dafür nicht geändert werden.

Du hast es oben so formuliert, als hätte der Hashrateanstieg durch einen Angriff auch Vorteile. Die sehe ich aber wie gesagt nicht.

Abgesehen davon halte ich es wenn überhaupt für wesentlich wahrscheinlicher, dass ein Poolbetreiber so einen Angriff durchführt. In diesem Szenario steigt die Hashrate in der ehrlichen Chain aber nicht, sondern fällt im Gegenteil während des Angriffs auf < 50% ab.

Hier hatten wir letzten eine Diskussion zu 51%-Angriffen:

Zensur im Bitcoin-Netzwerk? F2Pool filtert OFAC-sanktionierte Adressen!

Es bleibt zumindest immer eine mächtige Drohung, das ist richtig.

Ich frage mich allerdings wie das in dem Fall laufen würde, dass Bitcoin als staatliche Währung akzeptiert wird, beispielsweise zur Bezahlung der Steuern.

Entscheidet z.B. dann die Regierung von El Salvador, welche Kette nachher die akzeptierte bleibt? Ich denke schon.

Das glaube ich ehrlich gesagt nicht. Noch dazu wo der Angriff doch eher durch einen Poolbetreiber durchgeführt würde.

Und selbst wenn jemand komplett unabhängig und versteckt Hardware hortet, evtl. mit einer neuen effizienteren Technologie, muss man diese Hardware erstmal finden. Intelligenterweise würde man sich bei hohem Strombedarf global verteilt positionieren.

Die Hardware, die man nicht direkt nach dem Angriff findet und beschlagnahmt, würde auch weiterhin verwendet werden.

Ja, El Salvador kann ihren Bürgern natürlich vorschreiben, auf welcher Kette sie die Steuern haben möchten, genau so wie sie vorschreiben, ob sie USD, EUR oder sonst eine Währung erhalten möchten.

Ist halt die Frage ob es sich für El Salvador dann lohnen würde, die Steuern in „Bitcoin Cash Salvador’s Vision“ zu erhalten, wenn die Mehrheit der Menschheit auf einen anderen Bitcoin Fork setzt. Das was wir einfach nur „Bitcoin“ nennen, ist einfach die Fork, die sich ökonomisch durchgesetzt hat.

Eventuell hab ich deine Aussage falsch verstanden, aber ums nochmal klarzustellen: wenn du einen Hardfork machst sind die Transaktionen die *vor dem Zeitpunkt des Angriffs stattgefunden haben natürlich nicht weg.

1 „Gefällt mir“

Schon klar, aber du hast recht, ich habe das missverständlich formuliert.

Ich hätte ergänzen sollen:

Alle Transaktionen vom Start-Zeitpunkt des Angriffs bis zum Zeitpunkt des Forks hätten schlagartig nie stattgefunden.

Mit dem Zeitpunkt des Forks meine ich den Zeitpunkt der Fork-Durchführung, also des entsprechenden Software-Updates. Nicht den Block, ab dem sich die Chain dann im Nachhinein forkt.

Ich dachte das wäre aus dem Kontext heraus klar.

Der Start-Zeitpunkt des Angriffs entspricht dem Block, ab dem die parallele Chain gemined wurde. Also auch der Block, ab dem später geforkt würde, um den Angriff rückgängig zu machen.

Wie man das übrigens „üblicherweise“ umsetzt weiß ich auch nicht. Ich würde wahrscheinlich einfach den Hash des ersten Angriffsblocks als ungültig hardcodieren.

Ok, dann hab ich das falsch verstanden. War halt etwas irritiert von den Millionen Transaktionen die verloren gehen.

Nicht das Mining der Parallel chain zählt.

Ab dem Zeitpunkt an dem eine Parallel chain veröffentlicht wird welche einen >=6 reorg auslöst würde Chaos herrschen, da ökonomische Aktivität sozusagen rückgängig gemacht wurde.
Ich würde ab diesen Zeitpunkt erstmal keine Transaktionen durchführen. Der fork würde die Angriffschain ausschliessen ab den Zeitpunkt an dem sie veröffentlicht wurde. Die ökonomische Aktivität auf der original chain wäre dann zurück, die Aktivität auf der Angriffs chain (nach Angriff )allerdings, verschwunden.

Schwer vorherzusagen. Dazu hatte ich meine Meinung ja oben auch schon erläutert.

Nach dem Reorg herrscht Panik, das ist wohl klar. Deshalb vermute ich, dass es tagelang massenweise Transaktionen auf die Börsen geben wird, da Leute in Panik verkaufen wollen. Nach ein paar Tagen hat man dann eine Million Transaktionen zusammen.

Falls die Börsen direkt nach dem Reorg verkünden, den Handel vorerst auszusetzen und keine Einzahlungsadressen anzubieten, könnte es natürlich anders laufen. Je mehr ich darüber nachdenke, desto wahrscheinlicher ist dieses Szenario. Solange nicht klar ist, wie es weiter geht, wollen die Börsen sicher keine on-chain Transaktionen akzeptieren, die später evtl. rückgängig gemacht werden.

Hängt natürlich davon ab, worauf man sich einigt. Aber ich würde ab dem Block forken, auf dem die parallele Angriffschain aufgesetzt hat. Eben z.B. indem man in der neuen Software den Hash des ersten Blocks der Parallelchain nicht als gültig akzeptiert.

Damit würde der Fork die Angriffschain ausschließen, das ist richtig. Aber nicht ab dem Zeitpunkt, an dem sie veröffentlicht wurde (also nur die Folgeblöcke), sondern ab dem Zeitpunkt, an dem sie beginnt.
Wenn man es wie du schreibst ab dem Zeitpunkt machen würde, an dem sie veröffentlicht wurde, dann würde ja gerade die Angriffschain gültig bleiben, nicht die ursprünglichen Blöcke, die währenddessen auf der ehrlichen Chain gemined wurden.

„Zeitpunkt“ ist hier überall im Sinne von „Blockhöhe“ gemeint.

Aber vielleicht habe ich dieses Mal dich falsch verstanden. Ist ja auch egal, ich denke die Grundlagen kennen wir beide.