Hi, meine erste Frage auf dem Blocktrainer Forum. Falls ich irgendwas falsch gemacht habe, gerne sagen
Grundsätzlich hast du nichts falsch gemacht, aber was soll ein „95% Node Angriff“ sein?
Du kannst doch nicht einfach ja sagen, ohne die Frage verstanden zu haben. Das auch noch, wenn ‚Angriff‘ darin vorkommt.
Beim Keyword Bitcoin geht es wohl um selbigen. Die Zahl der Nodes kennt keiner, weil nur ein Teil im Clearnet agiert. So gesehen ist es schon mal unmöglich, 95% zu bestimmen. Warum sollten sich die, ohne voneinander zu wissen für einen Angriff gegen wen auch immer mehrheitlich zusammenrotten?
Hab mich schlecht ausgedrückt. Ich wollte eigentlich ausdrücken, dass er grundsätzlich alles richtig gemacht hat.
Wie sollen denn Nodes überhaupt das Netzwerk angreifen?
Wenn ich nicht nach den Regeln der anderen Nodes spiele, kann ich auch 100% der Nodes haben… die sind dann nämlich nichtmehr Teil des BTC Netzwerks.
Wohl mit einem suizidalen UASF. Vielleicht erhellt uns der TE noch
Bitcoin ist ein Konsens-Netzwerk.
Das bedeutet vereinfacht gesagt:
Die Miner minen die Blöcke im aktuellen Bitcoin Netzwerk.
Die Nodes validieren diese Blöcke im aktuellen Bitcoin Netzwerk.
Ändern Miner die Regeln (arbeiten mit anderer Software), werden ihre Blöcke durch die Nodes abgelehnt. Sie können somit nicht mehr an dem bestehenden Netzwerk teilnehmen.
Ändern Nodes die Regeln (Software), oder installiert jemand neue Nodes mit anderer Software, stellt sich die Frage, was validieren die nun? Und was machen die bisherigen Nodes?
Die bisherigen machen einfach weiter im aktuellen Bitcoin Netzwerk.
Die mit geänderter Software können daran nicht teilnehmen. Sie müssten Blöcke finden, die von Mineren stammen, die ebenfalls nach den neuen Regeln arbeiten. Das ist dann ein neues Netzwerk.
Das aktuelle Netzwerk läuft einfach weiter mit denjenigen Minern+Nodes, die die alten Regeln bessser finden als die neuen Regeln.
Man könnte also sagen, ein 95% Node Angriff - um bei deinem Begriff zu bleiben - läuft genauso ins leere wie ein 1000% Node Angriff (also wenn jemand 10x so viele Nodes mit anderen Regeln installiiert).
Ich würde mich auch über eine Ausführliche Frage freuen.
Nodes können nicht Angreifen.
Sie sind Reaktiv.
Sie validieren die Blöcke nach der Erstellung oder lehnen Sie ab. Somit können wir eine Node Verteidigung sehen keinen Angriff.
Anzahl Nodes ungleich Anzahl Node Betreiber
Es kommt nicht auf die Anzahl der Nodes an sondern auf die Anzahl der Betreiber.
Wenn eine Entität 95% oder 99% der Nodes betreibt, und bei sich die Regeln ändert, lehnen seine 99% Nodes die Blöcke ab, aber alle anderen laufen normal weiter. Sprich er schließt sich selbst aus.
Findet die Entität z.B. ein Faketoschi noch einen Miner, der die Regeln beim Minen ändert, dann würden nur die 99% der Nodes und der eine Miner ein neues Netzwerk Gründen. Dieses wäre aber absolut nutzlos, da sich die Entität nur selbst coins hin und her schicken kann die von niemandem akzeptiert werden.
Das alte Netzwerk würde unbeschadet weiterlaufen, genau wie vorher.
ahh ok danke dir. Mit dem Wort Faketoshi habe ichs verstanden. Danke dir
aber können die Nodes nicht Anreize setzten, die die Miner dazu veranlassen, nach den neuen Regeln zu arbeiten? Bsp. höhere Blockrewards.
Ich glaube meine größte Verständnislücke liegt darin, zu verstehen, wie es zu Abstimmung und Durchsetzung von neuen Regeln durch eine Mehrheit kommt. Wie kann ich diese Mehrheit verstehen?
Das entscheidende ist, dass die Nodes Reaktiv sind.
Wenn neue Regeln mit einem Update verteilt werden, gelten sie nur und erst, wenn diese sowohl von den Minern als auch von einer Mehrheit an Node Betreibern (nicht Anzahl Nodes) akzept wurden. Somit sind Änderungen zum Glück nur sehr träge möglich.
Des mit dem Abstimmungen ist unglücklich formuliert. Es gibt nicht eine Abstimmung in klassischen Sinn, das du irgendwo angibst ob ich eine neue Regel haben möchte oder nicht. Die einzige Möglichkeit „abzustimmen“ ist ein Update auf deiner Node zu installieren die deine gewünschte Regeln umsetzt und sobald genügen Teilnehmer auch das Update installieren wird die neue Regel aktivert. Ist jetzt alles bisschen vereinfacht geschrieben aber so funktioniert es ungefähr
Nicht „Anzahl Nodes“ ist klar, aber „Mehrheit an Node Betreibern“ klingt auch falsch. Viele Leute hier fühlen sich ja sehr wichtig mit ihren Wohnzimmernodes, aber wenn aus irgendeinem Grund mal alle Wohnzimmernodes der Welt und Coinbase auf unterschiedlichen Seiten einer UASF stehen, was denkst du werden die Miner machen?
Also keine Ahnung, was ein 95% Node Angriff sein solll, aber manche Nodes haben definitiv mehr Macht als andere.
Das hatten wir ja on den Blocksize wars. Das Ergebnis ist das eine Coinbase Node oder auch 100.000 Coin Base Nodes nicht mehr gewicht haben wie deine Wohnzimmer Node
Das wären aber meinen Berechnungen nach 11x so viele. Weil 100% ist eine Verdoppelung, 200% Verdreifachung, … ,10000% demnach iterativ der Faktor 11.
Klugscheißmodus off.
Zur (vermeintlichen) Frage:
Zwei Dinge, die wichtig sind für eine Diskussion für Node-Angriffe:
- Was für Angriffsmöglichkeiten habe ich mit einer Node (Majority-Attacke z.B.)?
- Wie kommunizieren die Nodes untereinander?
Zu 1): Generell hat man schlechte Erfolgschancen, wenn man gegen die Regeln des Netzwerks spielt. Erfolg erhöht man durch Majorität, Glück oder eben durch Angriffe, die nach den Regeln spielen (Zensur durch Unterdrückung von Transaktionen bestimmter ID).
Zu 2) Wenn eine neue Node das Licht der Internetwelt erblickt, so gibt es drei Wege der Vernetzung. Es hat eine fest einprogrammierte Adressliste von Nodes. Dabei sind diese Listen von Hand programmiert, oder verweisen auf eine dynamische Liste von Nodes. Zudem kann man als Nodebetreiber selbst Adressen eingeben. Nach einem ersten anklopfen kann deine frische Node nach weiteren Adressen fragen. [1]
Nach dem Vernetzten wird die Chain von den verknüpften Nodes geladen, geprüft und ein eigener State aufgebaut. [1]
Vielleicht ahnt ihr schon, worauf die Reise führen wird.
Ein wesentlich wichtiger Teil von Nodes ist der Austausch untereinander. Dabei werden noch nicht validierte Transaktionen (oder auch offenen Transaktionen) und fertige und valide Blöcke ausgetauscht. Diese Informationen sind für den Konsens eines gemeinsamen Ledgers wichtig.
Mit einem Spamming an Nodes unter meiner Kontrolle, könnte ich versuchen genau an dieser Stelle einzugreifen. Dabei ist die genaue Zahl unerheblich. Ähnlich wie beim Mining erhöht das jedoch meine Wahrscheinlichkeiten auf Erfolg, wenn ich im Verhältnis zum Netzwerk mehr Nodes kontrolliere. Meinen Nodes könnte ich dann so einstellen, dass sie versuchen das Netzwerk zu spalten, indem die offenen Transaktionen gezielt weitergeleitet werden. Ganz salopp formuliert würden die einen Nodes nur die Transaktionen mit einer geraden ID Nummer und die anderen die einer ungeraden Nummer erhalten. Bei Erfolg würde man das Netzwerk spalten und somit insgesamt gefährden können. Die Miner würden sich dann irgendwie auf die beiden Teilnetze verteilen und untereinander konkurrieren, ohne dass ich auch nur einen Miner einschalten müsste. Als Angreifer könnte ich diese Situation dann für mich nutzen.
Was bei einer solchen Konzentration an Nodes höchstwahrscheinlich passieren wird, sind sogenannte isolierte Nodes. Anstatt das Netzwerk zu spalten, was eine geringere Erfolgswahrscheinlichkeit hat, kann ich auch versuchen gezielt einzelne Nodes vom Netz zu isolieren und vollständig von mir abhängig zu machen. Dabei werden dann alle offenen Transaktionen als Eingang in die isolierte Node von mir kontrolliert. Ein solcher Angriff ist in der Literatur als Eclipse-Angriff bekannt. [2]
Weitere Angriffsszenarien mit einem erfolgreichem Eclipse sind [2]:
- Engineering Block Race (gezieltes Ausnutzen von gleichzeitig gefundenen Blöcken)
- Splitting mining power (Oben beschrieben)
- Selfish Mining (Durch zunächst Zurückhalten der längeren Chain ein nachträglichen Fork induzieren)
- 0 and n-Confirmation Double spend (Einmal bezahlte Coins nochmal ausgeben)
Aber es gibt ja Maßnahmen, die den Erfolg einer solchen Attacke minimieren. Es sind ja Adressen fest einprogrammiert. Eine vollständige Isolation ist dadurch deutlich erschwert und setzt ein (kurzfristiges) Abschalten oder Wechsel der IP dieser Maschinen voraus. Zudem kann eine Node sich mit bis zu 125 anderen Nodes verbinden [3]. Da wird es schwer, eine Isolation erfolgreich durchzuführen.
Quellen:
[1] P2P Networks in Bitcoin - Developer.Bitcoin.org - Betrachtet am 23.02.2023
[2] Eclipse Attacks on {Bitcoin{\textquoteright}s} {Peer-to-Peer} Network, Journal: 24th USENIX Security Symposium (USENIX Security 15), Jahr 2015, Autoren: Ethan Heilman and Alison Kendler, Boston University; Aviv Zohar, The Hebrew University of Jerusalem and MSR Israel; Sharon Goldberg, Boston University
[3] Bitcoin Github Pull Request - Betrachtet am 24.02.2023
Nicht wirklich. Die meisten ökonomisch relevanten Entitäten haben sich möglichst neutral gehalten, und entscheidend war am Ende eigentlich die ungleiche Kompetenzverteilung.
Sollten sich die ökonomisch relevanten Nodebetreiber irgendwann wirklich auf eine Seite eines Konflikts schlagen, kannst du mit deinem Wohnzimmernode Ponyreiten gehen. Ich bin Miner, und relevante Nodebetreiber wie Coinbase, die z.B. 2M BTC halten, drohen mir an, meine Blöcke nicht mehr zu akzeptieren, wenn ich ein flag nicht signalisiere? Und auf der anderen Seite sind da 10000 Halsbärte, die mir androhen, sich selbst aus dem Netzwerk auszuschlieißen, wenn ich es schon mache? Hm, schwierige Entscheidung.
LMAO
btw … gebe dir teilweise Recht. Glaube auch, dass ein UASF heute nichtmehr funktionieren würde, wenn es hart auf hart kommt.
Deine Nodes, egal wie viele es sind, repräsentieren keine Nutzer (dich mal ausgenommen). Die einzige „Spaltung“ die du provozieren könntest wäre zwischen deinen Nodes und dem restlichen Netzwerk, was weder dir noch sonst irgendjemandem etwas bringt.
Du solltest auch klar unterscheiden zwischen unterschiedlicher Policy (also welche Transaktionen von einer Node weitergeleitet werden) und Konsensregeln (also welche Transaktionen gültig sind).
Die Zensur von bestimmten Transaktionen bzw. dieses Beispiel mit geraden und ungeraden TXIDs hat mit letzteren nichts zu tun. Eine Node die aus welchem Grund auch immer z.B. nur Transaktionen mit gerader TXID kennt würde solche mit ungerader TXID natürlich weiterhin akzeptieren wenn sie in einem Block auftauchen.
@MessierEightySeven Die Frage eines „95% Node Angriff“ ist in sich schon widersprüchlich. Wenn 95% der Nutzer etwas wollen, was hat das dann noch mit einem „Angriff“ zu tun? Du solltest etwas genauer beschreiben was du überhaupt meinst…
Siehe auch:
Ich glaube er meint tatsächlich Nodes. Wie du weiter oben ja geschrieben hattest:
Also ein Nutzer kann beliebig viele Nodes haben. Damit hat er aber kein „Stimmgewicht“ für irgendwelche Abstimmung zu Forks oder ähnlichem. Ich vermute, und da müssten wir eigentlich auf den TE für eine Klarstellung warten, dass ein theoretischer Angriff unter der Kontrolle von einer Person mehrerer Nodes gemeint ist.