In den letzten Wochen habe ich mich mit IOTA beschäftigt. Ich wollte besser verstehen wie diese Technologie aktuell funktioniert und wie sie in Zukunft funktionieren soll. Ich habe nach wie vor zwei große Fragezeichen über mir schweben wenn ich an die langfristige Funktionstüchtigkeit des Tangle denke. Das eine beschäftigt sich mit der Aufgabe den Coordinator los zu werden.
Die zweite und einfachere Frage ist: Warum sollte die Community IOTA Full-Nodes bereitstellen? Es gibt keinerlei finanzielle Anreize dafür. Im Gegenteil, die dafür notwendigen Investitionen sind eine Kostenstelle und ein Anreiz darauf zu verzichten.
Der folgende Artikel beschäftigt sich vor allem mit den Fragen:
- Wieviele Full Nodes gibt es?
- Wieviele Full Nodes braucht es?
- Wofür braucht es diese Menge?
Spieltheorie gegen Idealismus
Spieltheorie ist eine Teildisziplin der Mathematik. Sie beschäftigt sich damit optimale Gewinnstrategien für Spiele zu entwickeln. Mit Spiel ist dabei kein Spiel im Sinne von Brettspiel gemeint, sondern eine jede Interaktion zwischen zwei oder mehreren autonom handelnden Spielern. Ein Spieler ist ein sgn. Agent und kann ein Mensch, ein Stück Software wie zB. ein Robo-Trader, ein Unternehmen oder eine ganze Nation repräsentieren.
Damit das funktioniert, ist es wichtig, dass das Spiel im Sinne der Mathematik formal definiert wird. Dazu gehören, dass auch Aktionen und deren Auswirkungen definiert werden. Danach kann geklärt werden, wie sich die Agenten verhalten würden wenn sie ihren Profit maximieren sowie das Risiko minimieren wollen. Das führt zu überraschenden Ergebnissen, wie das Beispiel des Gefangenendilemma zeigt. Dabei kommt heraus, dass sich die Spieler in eine suboptimale Position manövrieren, wenn die Chance auf das optimale Ergebnis ebenso das Risiko des Worst-Case in sich trägt und dessen Schaden deutlich über dem Nutzen des optimalen Ergebnis steht.
Kritiker versuchen diese Analysen mit dem Argument weg zu wischen, dass es sich bei Menschen um keine Homo Oeconimci handelt. Aus 10 Jahren Berufspraxis als Informatiker halte ich dagegen, dass es schon reicht dass eine kleine Minderheit automatisiert Schwachstellen im System sucht und ausnutzt.
Alles, was schiefgehen kann, wird auch schiefgehen.
Deshalb sind auch spieltheoretische Analysen ein wichtiges Werkzeug um zu verstehen, welche Mechanismen ausgenutzt werden könnten um Worst-Case-Szenarien zu verstehen, da durch die Modellierung auch solche Möglichkeiten explizit sichtbar gemacht werden.
Ein ausgezeichneter Artikel der das beleuchtet ist von Mr. Ethereum himself (Vitalik Buterin): Understanding Serentiy Part 2 – Casper. In diesem Artikel beleuchtet er die Angriffszenarien und wie das Proof of Stake System Casper darauf reagiert. Spannend ist auch, dass er es mit Python-Programmen simuliert. Diese Art der über-pedantisch erscheindenden Genauigkeit lassen mir das Informatikerherz aufgehen.
IOTA – Antithese zum rationalen Gewinnstreben
Ein Artikel im Tangle-Blog beschäftigt sich auch mit der Frage der Full Nodes. Dessen drei Kernthesen lassen sich so zusammen fassen:
- Menschen sind keine rationalen Agenten. Menschen handeln irrational, altruistisch und manchmal einfach nur gegen ökonomische Interessen aus reiner Begeisterung.
- Unternehmen deren Produkt auf Basis IOTA läuft, haben einen rationalen Grund Full-Nodes bereit zu stellen.
- Personen die ein Interesse daran haben, die Daten des Tangles lokal zu besitzen (zB. für Datenanalysen) werden auch Full Nodes betreiben.
Meine persönliche Einschätzung ist nicht so positiv. Auf die verschiedenen Punkte erwiedere ich:
- Das ist korrekt. Sobald die Wirtschaftslage schlecht wird, kann es aber sein, dass das Netzwerk mit Problemen zu kämpfen hat da viele Full-Nodes vom Netz genommen werden könnten.
- Der iri-Source Code ist sehr leicht zu lesen und anzupassen, was dazu führen kann, dass Unternehmen Full Nodes aufstellen, die unbestätigte Transaktionen der eigenen Anwendung bevorzugen.
- Ich bezweifle, dass dies eine kritische Masse der Full-Node-Betreiber darstellt.
Allerdings, darf man die IOTA-Community nicht unterschätzen. Meiner Erfahrung nach ist diese selbst für Kryptoszene-Verhältnisse sehr leidenschaftlich und enthusiastisch. Daher habe ich mir die Problematik angesehen und bin auf ein paar erstaunliche Dinge gestoßen:
- Es gibt Anreizprogramme die das Full Node betreiben attraktiver machen sollen.
- Es gibt bereits überraschend viele Full Nodes.
- Eine Full Node zu betreiben ist verhältnismäßig günstig.
Zerg-Rush oder schwere Artillerie?
Währungen Blockchain-Lösungen auf Mining zur Konsensgenerierung setzen, baut IOTA auf ein mehrschichtiges Protokoll zur Absicherung.
Im Falle von Blockchains gibt es eine formale Definition was eine gültige Transaktion und was ein gültiger Block ist, die von jeder Full Node (egal ob sie mined/staked/etc oder nicht) überprüft werden kann. Zum anderen gibt es einen Anreiz zum fair spielen: Transaktionsgebühren und die Belöhnung für das Erstellen von gültigen Blöcken.
Dadurch stellt das System sicher, dass es einen Profit für Fair-Play gibt. Gleichzeitig wird durch die schiere Masse der fair spielenden Miner und Full-Nodes verhindert, dass ein Angreifer einfach so das Netz lahm legt, den Geldfluss umbiegt oder den selben Bitcoin zweimal ausgibt.
Um dennoch das Netz lahm zu legen, bedarf es der Mehrheit der Rechenleistung aller Miner. Die sogenannte 51%-Attacke ist dadurch definiert, dass der Angreifer dazu in der Lage ist, einen gültigen Block schneller zu erzeugen als das gesamte, restliche Netz. Bzw. zumindestens die Wahrscheinlichkeit da ist, es schneller zu tun.
Dadurch kann der Angreifer die Blockbelohnung abgreifen und bestimmen wessen Transaktionen bestätigt werden und wessen nicht.
Im Falle von IOTA ist es – auf die Rechenleistung bezogen – ungleich leichter. Allerdings gibt es einen Unterschied …
Bitcoins kleinste Einheit für den Konsens ist der Block bzw. die Blockkette selbst. Der Block mit der längsten Kette von Vorgängerblöcken wird von den Full Nodes als aktueller bzw. wahrer Block akzeptiert.
Die Anzahl der Blöcke vor dem Block nennt man auch Blockhöhe. Damit ergibt sich ein sehr einfacher Weg um zu ermitteln welcher Block gültig ist und welcher nicht. Es kann nun vorkommen, dass sich die Blockchain auf zwei oder mehr Zweige aufteilt. Zu allem Überfluss, kann es vorkommen, dass nicht von Anfang fest steht welcher Zweig gewinnen wird.
Das kann dazu führen, dass ein paar Generationen von Blöcken lang nicht klar ist welcher Zweig gewinnen wird. Im Falle von Bitcoin passiert das spätestens vor dem vierten Block. Ein längeres Rennen ist theoretisch möglich aber praktisch sehr unwahrscheinlich.
In IOTA wird bei Konflikten anhand des Bestätigungsgewichts bzw. des Confirmation Weight entschieden. Je mehr Transaktionen direkt oder indirekt die fragliche Transaktion referenzieren, umso höher ist das Confirmation Weight.
IOTA und der Nebel des Krieges
Wie schützt sich IOTA ohne Fees und Blockbelohnungen? Ein Zyniker würde sagen, IOTAs Konzept der Absicherung ist Security by Obscurity, da IOTA auf Unwissen über die Netzwerktopologie setzt zur Absicherung.
Ein Spieltheoretiker würde sagen, dass es schwieriger sehr viele Spiele gleichzeitig zu spielen und zu gewinnen im Gegensatz zum Bündeln der Kräfte und eine einzige Schlacht zu schlagen.
Das IOTA-Netzwerk ist größtenteils intransparent und dezentral aufgebaut. Niemand weiß wieviele Full Nodes es gibt und wo diese laufen. Wenn Sie eine Full Node aufsetzen möchten und nach Nachbarn suchen, müssen sie in extra dafür aufgesetzten Sub-Reddits oder entsprechenden Chat-Gruppen nach willigen Nachbarn suchen.
Die Gefahr von Angriffen ist bekannt. Das IOTA-Whitepaper versucht seinen Kritiker vorher zu kommen und präsentiert im vierten Kapitel eine Auflistung von möglichen Attacken und mögliche Antworten darauf.
Die Erklärung kann man schön eindampfen, wie es auch der Tangle-Blog in Is A Double Spending Possible With IOTA gemacht hat. Je nach Angriff benötigt der Angreifer von dem einem der drei folgenden Punkte mehr und von dem anderen weniger, aber gänzlich ohne einander geht es nie:
- Die notwendige Rechenleistung um schneller als die anderen Knoten Transaktionen zu validieren und in den Tangle einzugliedern.
- Allgegenwart bzw. Omnipräsenz – soll heißen, dass der Angreifer in alle relevanten Subnetze seine Nodes eingegliedert hat.
- Allmacht bzw. Omnipotenz – das bedeutet, dass der Angreifer mit seinen Full Nodes eine relevante Anzahl von Subnetzen nicht nur ausspionieren kann sondern mit der verfügbaren Rechenleistung dominiert und damit die Kontrolle in der Hand hat welche Transaktionen validiert werden.
Butter bei die Fische – Zahlen auf den Tisch
Es ist schon schwer im Falle von Bitcoin zu schätzen, wie viele Full-Nodes und wie viele Mining-Knoten es gibt, im Falle von IOTA ist es unmöglich. Dementsprechend sind die folgenden Zahlen mit Vorsicht zu genießen und nur als grobe Abschätzung zu gebrauchen.
Bitcoin verfügt über mehr Full Nodes. Ich vermute, dass sich da Bitcoins reifes Alter bezahlt macht. Bitnodes findet über 10.000 Bitcoin-Full Nodes.
IOTA auf der anderen Seite hat ein ähnliches Projekt, das Karottenfeld von CarrIOTA. Dort gibt es während ich diese Zeilen tippe ca. 1.400 Full Nodes. Die Zahlen schwanken allerdings während meiner Beobachtungsperiode um bis zu 200 Nodes. Der Globus auf iotanodes zeigt ca. 850 Nodes an. In einer IOTA-Tech-Gruppe hat jemand geschätzt, dass es um die 8.000 IOTA Full Nodes gibt.
Gefühlsmäßig halte das als obere Grenze für möglich.
Bitcoin Pwnage – Bitcoin übernehmen
Um Bitcoin zu übernehmen braucht es min. 51% der verfügbaren Hash-Power. Während ich diese Zeilen tippe, bedeutet das, dass man 51% von ca. 31,000,000TH/s benötigt. Ein Antminer S9(PL) kostet ca. 1.800€. Je nach Angebot kann er auch günstiger zu haben sein. Ein Antminer S9 liefert 13,5TH/s.
Nehmen wir an, ein kapitalstarker Bösewicht nimmt sich Bitcoin an und geht all-in. Um auf die 51% der Hashleistung zu kommen benötigt er ca. 15.810.000TH/s. Um das zu stemmen, benötigt er wiederum 1.171.112 S9 Antminer.
Bei so einer großen Bestellung kann man schon von einem ordentlichen Mengenrabatt ausgehen. Gehen wir also davon aus, dass der reiche Bösewicht einen Antminer für 1.000€ bekommt. Das wären dann stolze 1,17 Mrd. Euro Angriffskosten – Miete für das Lagerhaus und die logistischen Probleme genügend Antminer oder auch nur den nötigen Strom dafür aufzutreiben außen vor gelassen.
IOTA – Feuer mit Feuer
Im Falle von IOTA hat es der Angreifer leichter. Er benötigt weder spezielle noch unüblich starke Hardware. Reguläre Consumer-Hardware reicht völlig aus – oder billige Cloud-VServer, wie zB. der zweitschwächste Cloud-Server von Hetzner. Mit knapp 6€ pro VServer hat man bereits einen ausreichend leistungsstarken Server bei der Hand.
Aus den Zahlen von vorhin ergibt sich als Obergrenze für die Anzahl der IOTA Full Nodes ca. 9.400. Das ergibt für die 34%-Attacke 3.196 Server. Da sind wir dann bei nicht ganz 20.000€ pro Monat – Stromkosten, Mehrwertssteuer und Standplatz bereits eingerechnet. Das zahlt der kapitalstarker Bösewicht aus der Portokassa. Er hat sogar genug übrig, sich 50 Praktikanten einzustellen, die auf die Suche nach Nachbarn in den dafür vorgesehenen Kanälen gehen.
Danach müssen die Nodes einige Zeit laufen um Vertrauen aufzubauen. Wenn die Stunde dann gekommen ist, kann das verteilte Cloud-Node-Netzwerk angreifen. Die kosten belaufen sich dann auf nur wenige Hundertausend Euro. Dem verteilten Netzwerk wird in diesem Szenario eine verteilte Server-Infrastruktur in der Form der unzähligen Cloud-Betreiber zum Verhängnis.
Der Umkehrschluss – wann ist es genug?
Diese Überlegung erlaubt eine interessante, umgekehrte Kalkulation. Wenn wir also die fiktiven 1,17 Mrd. Euro als Kosten für Bitcoin annehmen, kann man oben verwendete Formel verwenden um zu ermitteln wieviele Nodes nötig sind, um IOTA ähnlich sicher zu machen bzw. einen Angriff darauf ähnlich teuer.
Die Zahlen sind mit Vorsicht zu genießen, da hier mehr oder weniger das Worst Case Szenario beschrieben wird -mit Erleichterungen für den Angreifer. Folgende Annahmen liegen den Vereinfachungen zu Grunde:
- Die 6€ Cloud-Nodes sind im Schnitt genauso stark wie die ehrliche Konkurrenz.
- Es reicht wenn insgesamt 34% der Full Node Rechenleistung im Besitz des Angreifers sind um in jedem Subnetz 34% der Rechenleistung zu erlangen (sehr große Vereinfachung für den Angreifer!)
- Die Arbeit der Praktikanten, die nach Nachbarn suchen, wird weder als Angriff enttarnt noch scheitern die Praktikanten daran genügend Nachbarn aufzutreiben.
- Der Cloud-Anbieter hat genügend Rechenleistung parat.
Löst man die simple, lineare Gleichung nach x auf, erhält man eine sehr große Zahl: 573,529,412 (aufgerundet). So viele Full Nodes bräuchte man – unter den für den Angreifer vereinfachten Annahmen – um dem Angreifer den Angriff so teuer zu machen wie einen Angriff auf Bitcoin der rein an der Hash-Leistung gemessen wird. Das ist eine enorm große Zahl.
IOTA und die Community
Überraschend großartige Projekte haben sich aus den Entwicklungen rund um CarrIOTA ergeben. Open Source Tools, samt Load Balancer und IOTA Full Node Entwicklung.
Spannend neben der Anzahl der tollen Projekte die sich aus CarrIOTA ergeben haben ist auch, dass sie an einem Anreizsystem für Full Nodes gearbeitet haben. Dabei werden Spenden an die „fleißigsten“ Nodes im CarrIOTA Netzwerk ausgeteilt.
Unternehmen die Full Nodes aufstellen, so wie es CarrIOTA tut, haben auch einen Anreiz fair zu spielen: tun sie es nicht, erhalten die von ihnen validierten Transaktionen nur minimal mehr Gewichtung. Diese ist allerdings notwendig um auch die für das eigene Geschäft nötigen Transaktionen validiert zu bekommen.
IOTA und die Gerüchteküche
Neben den Leistungen der Community, gibt es auch noch dampfende Teller aus der Gerüchteküche. Insbesondere interessant ist dabei der Jinn-Prozessor. Ein Stück Hardware, dass von Grund auf, auf IOTA optimiert ist dazu führen könnte, dass ein jeder Kaffeekocher der eine IOTA-Anbindung bekommt, dazu beiträgt auf die 570 Millionen Full Nodes zu kommen.
Im Industrie 4.0 Zeitalter, könnte das, unter glücklichen Umständen, tatsächlich reichen. Kritiker könnten hier anmerken, dass nicht alles was dampft unverdaut ist, und auf harte Fakten bzw. im Handel erhältliche Produkte pochen.
Conclusio
Ich bin hin und her gerissen.
Zum einen sprechen die Zahlen eine eindeutige Sprache: Es ist unverhältnismäßig günstiger IOTA anzugreifen als eine Blockchain-Währung wie Bitcoin. Es gibt auch nur schwache, dazu gebastelte Anreizsysteme. Auf der anderen Seite ist das IOTA Netzwerk überraschend lebendig und trotz des jungen Alters schnell gewachsen.
Das aktuelle Protokoll wird noch massiv erweitert werden, wie es auch die Roadmap mit dem Punkt „Automatted Snapshots“ zeigt.
Meiner Meinung nach, offenbart der Status Quo in welchem frühen Stadium das Projekt ist. Ich bin jedenfalls gespannt wie’s weiter geht.
Join the conversation
Zum Thema 500 Mio. full-nodes: Mit dem Jinn Prozessor koennten das durchaus weniger Nodes sein. Es gibt bereits jetzt schon ein FPGA Projekt, dass mehrere Mega Hashs schafft und dadurch die Geschwindigkeit des PoW erhoeht. Wenn man sich jetzt einen full-node hinstellt, der mehrere dieser FPGAs hat, oder spaeter sogar der Jinn-Prozessoren, erhoeht sich auch die Validierungspower der nicht boesartigen full-nodes. An der Nummer sieht man aber auch, dass es wirklich erforderlich ist Unternehmen mit ins Boot zu holen, damit das Netzwerk stabil laeuft.
Ja, du magst jetzt mit dem Angriffsszenario recht haben. Dafuer gibt es momentan noch den Coordinator, der Milestones setzt. Man koennte natuerlich auch seinen eigenen betreiben, solange das Netzwerk sich selbst nicht traegt und der zentrale Coo. ausgeschaltet ist. Die Option gibt es ja.
Allerdings sehe ich das als wichtig an keine Transaktionskosten zu haben. Aehnlich wie mit dem Internet. Nur wenn etwas frei ist und ohne Grenzen kann man das komplette Potential entfalten. Darueber hinaus sollten wir es auch Menschen in Afrika und Asien ermoeglichen am globalen Finanzsystem teilnehmen zu koennen. Langfristig wollen wir doch den Mittelsmann (Bank) durch ein System abloesen koennen. Ich sehe die naechste Krise, durch lokale Immobilienblasen & den Derivaten Markt schon kommen. Das alte System ist nun einmal echt kaputt & Bitcoin + ETH sind nicht skalierbar. Lightning skaliert zwar, ist aber keine Aenderung zum aktuellen System.
[…] sollte jemand seinen Computer breitstellen um Qubics rechnen zu lassen? Jetzt stelle ich schon Full Nodes gratis zur Verfügung und jetzt wird auch noch erwartet, dass ich Oracle Machines bereitstelle? […]