IOTA Teil 1steemCreated with Sketch.

in deutsch •  6 years ago  (edited)

"Blockchain Bottleneck"

 Bevor wir uns mit der Funktionsweise von Iota beschäftigen, werden wir erstmal darauf eingehen, welche Vorteile Iota dank des DAG als Ledger denn im Vergleich zu den normalen DLT Kryptowährungen  deren Ledger eine Blockchain ist bietet. Bei einer Blockchain gibt es das große Problem, dass eine Blockchain zwar super funktioniert (skaliert), wenn nur relativ wenige Transaktionen pro Zeit aufgegeben werden, aber, dass sobald die Anzahl an Transaktionen steigt, immer schlechter skaliert wird. Das heißt grob gesagt, dass Blockchainbasierte Projekte nicht für Anwendungsbereiche mit extrem vielen Transaktionen(pro Zeit) geeignet sind.
 Das liegt daran, dass die Blockchain nur alle x-Zeiteinheiten einen Block in die Blockchain aufnimmt (Stichwort Schwellenwert und Block-ID). Bei Bitcoin wird die durchschnittliche Zeit zur Annahme eines neuen Blocks durch Veränderung (Senkung) des Schwellenwertes (erhöhen der Difficulty) auf circa 10 Minuten gehalten. Da ein Block nicht unendlich viele Transaktionen enthalten kann, entsteht hier ein Flaschenhals. Außerdem ist diese Durchschnittszeit zur Blockannahme auch gleichzeitig der Grund für die lange Bestätigungszeit einer Transaktion. Die Durchschnittliche Bestätigungszeit einer Bitcoin Transaktion liegt zwar nicht bei 10 Minuten jedoch kann sie durchaus (über) 10 Minuten betragen. Für viele Anwendungsfälle ist das zu lange. 


 Der Tangle löst dieses Problem des Flaschenhalses, in dem jede Transaktion um valide zu sein zwei weitere Transaktionen bestätigen muss. Die einzelnen Transaktionen im Tangle, die sich gegenseitig bestätigen verbinden sich, wodurch der Tangle nicht als Kette wächst und somit parallel mehrere Transaktionen (gleichzeitig) bestätigt werden können. Sprich umso mehr Transaktionen im Tangle getätigt werden, umso mehr Transaktionen werden auch bestätigt, wodurch Iota bei steigender Nutzung besser skaliert.
 Bei Bitcoin (und anderen Blockchain-basierten Projekten) bleibt die „Bestätigungsrate“ von Transaktionen immer gleich und ändert sich auch bei steigendem Traffic nicht. Die Blockchain stellt hier per Definition immer einen Flaschenhals dar, da die Blöcke, deren Inhalt an Transaktionen natürlich begrenzt ist, nacheinander aufeinander aufbauen. Es herrscht ständig eine Art „Block Race“, bei der die Blöcke als erstes in die Blockchain kommen wollen und so teilweise Blöcke mit gleichem Transaktionsinhalt um den Platz in der Blockchain konkurrieren. Die Blockchain kann nur aus einer Kette bestehen (bzw nur eine wird als gültig angesehen). Bei der Blockchain kann also nur an einer Stelle bestätigt werden, was die Anzahl an bestätigten Transaktionen pro Zeiteinheit auf einem konstanten Level hält, sodass nur durch die Reduzierung der durchschnittlichen Blockannahmezeit oder/und eine Vergrößerung der max Anzahl an Transaktionen pro Block,  die Zahl der Bestätigten  Transaktionen pro Zeit erhöht werden kann. Und auch dann wird die Blockchain ein Flaschenhals bleiben.
 Bei Iota dagegen steigt die Bestätigung bei steigender Transaktionszahl (pro Zeit) an und es gibt keine Transaktionsgebühren.
 

Der Tangle  

Um den Tangle zu verstehen, klären wir jetzt erstmal den im letzten Artikel erwähnten Begriff DAG (directed acyclic graph) Dafür gehen wir jetzt kurz in den Bereich der Mathematik/Informatik. Ein graph (in der graphentheorie:D) ist eine Ansammlung von Objekten(vertices bzw Knoten) die untereinander verbunden sind (durch edges bzw kanten). Diese Kanten können jetzt gerichtet(directed) oder ungerichtet sein. Dem aufmerksamen Leser wird das Wort „directed“ aufgefallen sein. Wir wollen ja wissen, was ein directed! Acyclic graph ist (DAG). Das wichtige beim directed graph ist, dass die Kanten hier eine Richtung haben. Die Verbindungen zwischen den Knoten sind beim directed graph also gerichtet und können daher gut mit einem Pfeil dargestellt werden.
 Ein directed acyclic graph ist ein endlicher directed graph ohne directed cycles (Knoten die durch Pfeile verbunden sind und einen Kreis ergeben).
 Das bedeutet, dass du in einem directed acyclic graph nicht von einem Knoten starten kannst, den gerichteten Kanten folgen kannst und dann wieder zu dem Knoten kommst, an dem du begonnen hast.
 Ein directed acyclic graph baut sich also immer weiter auf und es entstehen keine „Kreise“.
 Ein Beispiel wäre hier zum Beispiel ein Stammbaum.Die Verbindungen zwischen den einzelnen Familienmitgliedern sind gerichtet (du bist der Sohn deines Vaters und nicht andersrum), der graph baut sich immer weiter auf und es entstehen keine „Kreise“ (außer man ist der Meinung, dass Gott uns alle erschaffen hat und wir wenn wir sterben zu ihm zurückkommen und wiedergeboren werden:D).
 Ein DAG ist also ein directed graph, mit einer topologischen Sortierung.
 Dem Begriff Topologie sind wir schon in meiner Artikelreihe über Bitcoin begegnet, wo wir festgestellt haben, dass die Netzwerktopologie von Bitcoin zufällig ist.
 Topologische Sortierung bezeichnet (in der Mathematik), eine Reihenfolge von Dingen durch die bestimmte Abhängigkeiten erfüllt werden.
 Vereinfacht gesagt bedeutet das, dass „A“ vor „B“ erfüllt werden muss, damit „C“ erfüllt werden kann, woraufhin „D“ erfüllt werden kann. Wenn man zuerst „C“ erfüllen könnte würde man „A“ und „B“ nicht mehr erfüllen können.
 Ein beliebtes Beispiel hierfür ist, wie man sich anzieht. Also erst Unterwäsche, dann Hose, dann Socken und dann Schuhe. Wenn man seine Schuhe vor den Socken anziehen würde könnte man diese nicht mehr anziehen. Man benötigt also eine Reihenfolge, bei der die Bedingung, dass man erst die Socken anziehen muss, bevor man sich die Schuhe anziehen kann erfüllt wird. Diese Reihenfolge nennt man topologische Sortierung der anstehenden Tätigkeiten.
 Kurz zusammengefasst haben wir mit dem Tangle (DAG) also eine neue Art eines Protokolls. Im Gegensatz zu der Blockchain, bei der die Transaktionen in Blöcken zusammengefasst werden (mehrere Transaktionen die zusammen eine Prüfsumme (hashwert) ergeben) und aneinandergereiht eine Linie ergeben (Blockchain) gibt es bei Iota keine „Blöcke“. Und im Register werden die Transaktionen nicht durch referenzieren des vorherigen Datenpakets in einem Strang (einer Linie sprich Chain)  zu einer immer länger werdenden Kette gespeichert.
 Der Name Tangle (zu deutsch „Gewirr“) beschreibt ganz gut den Aufbau des Iota Ledgers. Anstatt wie bei der Blockchain die Transaktionen in „Blöcken“ zusammenzufassen und einen Hahswert aus den zusammengefügten Transaktionen zu berechnen, auf den sich der nachfolgende Block dann referenziert, besteht der Tangle aus einem „Gewirr“ von unabhängigen einzelnen Transaktionen.
 Die einzelnen unabhängigen Transaktionen im Tangle (vertices/Knoten) sind durch mehrere Kanten (edges) miteinander verbunden.
 Mit diesem Wissen kennen wir das grobe Schema, nach dem der Tangle aufgebaut ist und können nun darauf aufbauen.

Transaktionen

Im Iota Netzwerk lassen sich Transaktionen mit dem Wert 0 tätigen. Desweiteren können an die Transaktionen beliebige Daten angehängt werden. Maschinen könnten sich also auch ohne monetären Austausch (0 Iotas) miteinander über das Iota Netzwerk austauschen bzw mit dem Verschicken von Iotas an eine Maschine könnte auch ein Datensatz usw mitgeschickt werden.

Die Iotas kommen bei Iota nicht wie bei zb Bitcoin aus dem Mining (Stichwort Coinbase Transaction) sondern aus der Genesis transaction (die erste Transaktion im Tangle; ihr erinnert euch vielleicht dunkel an den Begriff, den es bei Bitcoin usw auch gibt). Diese Anzahl an Iotas, die in der Genesis transaction festgelegt wurde wird sich nie verändern.

1.(Grundlegende)Bestandteile einer Transaktion

Eine grobe Übersicht über die Bestandteile einer Transaktion. Eine genaue Übersicht steht unten in den Literatur Quellen.

  • Input oder Output der Transaktion
  • Transaktionswert
  • Angehängte Daten
  • Zeitstempel (nicht notwendig)
  • Der Hash der ersten referenzierten (bestätigten) Transaktion, sowie der der zweiten
  • Nonce (PoW für Spam-Schutz)

Die Transaktion wird, bevor sie über das Iota Netzwerk propagiert wird mithilfe des private keys signiert. Damit wird die Transaktionslegitimität geprüft (ob der Initiiant der Transaktion wirklich der Eigentümer dieses Guthabens ist). Dann werden zwei Transaktionen ausgewählt (nach einem bestimmten Algorithmus, den wir später kennenlernen werden). Diese zwei Transaktionen werden dann in deiner Transaktion referenziert (du bestätigst sie und machst deine Transaktion damit gültig). Dann wird ein sehr kurzer PoW ausgeführt, der vor Spam schützen soll und in dem die Nonce berechnet wird.

  Damit eine neue Transaktion in den Tangle kommen kann, muss sie (wie gerade erwähnt) zwei Transaktionen, die sich bereits im Tangle befinden bestätigen. Die neue Transaktion verbindet sich daraufhin durch zwei Stränge (edges) mit den zwei Transaktionen, die sie bestätigen muss. Siehe abbildung
 Wie ausgewählt wird, welche zwei Transaktionen die neue Transaktion bestätigen muss, ist sehr wichtig, damit Iota gut läuft aber auch kompliziert weshalb wir erstmal davon ausgehen, dass zwei zufällig ausgewählte Transaktionen bestätigt werden (in Wirklichkeit gibt es einen Algorithmus, nachdem die Transaktionen ausgewählt werden). In der Abbildung wählen die Transaktionen also nach dem Zufallsprinzip zwei Transaktionen aus, die sie bestätigen. Um zu sehen, wie der Tangle (mit diesem Zufallsprinzip beim bestätigen der Transaktionen) dann bei mehr Transaktionen als im Bild gezeigt sind aussieht, könnt ihr euch hier die Iota visualization anschauen.
 Bei dieser Simulation wird euch auffallen, dass der Tangle jedesmal anders aussieht. Das Aussehen des Tangles ist logischerweise abhängig von der Anzahl der Gesamt Transaktionen und besonders von der Transaction rate. Der Rate mit der neue Transaktionen hinzukommen. Im echten Leben („Alltag“) verläuft eigentlich nichts linear. Auch die Anzahl an Transaktionen die in einem gewissen Zeitraum in den Tangle kommen wird nicht linear sein. Es wird wie in der Abbildung Momente geben, in denen sehr viele Transaktionen auf einmal kommen und dann wieder Pausen. Würde die Anzahl an Transaktionen pro Zeit konstant und klein sein, dann würde auch der Tangle eine Chain bilden: eine Transaktion bestätigt nur eine Transaktion, da neue Transaktionen so langsam kommen, dass es immer nur eine Transaktion zum bestätigen gibt.  (transaction rate in der simulation auf 0,1 stellen dann seht ihr die Chain).
 
 Wenn dagegen (am Anfang) extrem viele Transaktionen aufeinmal kommen, dann haben sie alle nur die Genesis Transaktion zum bestätigen. (die Transaktionen brauchen alle eine gewisse Zeit bis sie durch das komplette Netzwerk propagiert sind und wenn alle Transaktionen gleichzeitig kommen gibt es in der Simulation eben nur die Genesis trx zum bestätigen; extrem hohe transaction rate zu beginn)
 Wie oben beschrieben verhält sich die Anzahl der neuen Transaktionen pro Zeit nicht gleichmäßig sondern mit „Höhen und Tiefen“. Ist beispielsweise beim Stromverbrauch auch so, dass es Tageszeiten gibt, an denen Spitzenlasten benötigt werden und andere Zeiten wo weniger Strom benötigt wird. Auch in der (Iota) Simulation wurde ein Modell verwendet, nachdem die Transaktionen nicht alle gleichmäßig in bestimmten Zeitabständen kommen sondern mit Momenten, an denen es viele Transaktionen aufeinmal gibt und dann wieder eine „gemäßigtere“ Zeit:D 

2. Algorithmus zur Auswahl der Transaktionen


 Wie vorher geschrieben, sind wir bis jetzt davon ausgegangen, dass eine neue Transaktion die zwei Transaktionen die sie bestätigen muss nach dem Zufallsprinzip auswählt. Dies ist natürlich nicht sonderlich effizient, weshalb es bei Iota einen bestimmten Algorithmus gibt, nach dem die zu bestätigenden Transaktionen ausgewählt werden. Um diesen zu verstehen, werden wir jetzt erstmal den sogenannten Random Unweighted Walk kennenlernen. Auch hierfür gibt es wieder eine Simulation von Iota, mit der ihr das ganze visuell austesten könnt. Bei diesem Algorithmus gibt es einen „Walker“, der beginnend bei der Genesis Transaktion die Tips abläuft und bestätigt. In der Simulation ist der Weg, den der Walker gelaufen ist rot markiert und die verschiedenen Wege die er laufen könnte blau. Die wenigen Transaktionen, die für diesen Random walk nicht sichtbar sind, sind grau markiert. Für den Walker sind beim Unweighted Walk alle Transaktionen gleichberechtigt (komplett zufällig, welche Transaktionen ausgewählt werden).
 Doch warum brauchen wir überhaupt einen Algorithmus, nachdem die zu bestätigenden Transaktionen ausgewählt werden? Der Sinn eines solchen Algorithmus ist es, sogenannte lazy tips zu vermeiden. Ein lazy tip ist eine Transaktion, die alte bereits bestätigte Transaktionen bestätigt statt neue, die noch bestätigt werden müssen. Eine solche Transaktion hilft dem Netzwerk nicht, da so keine neuen Transaktionen bestätigt werden.
 In der Abbildung ist Transaktion 14 ein lazy tip, da diese Transaktion zwei schon bestätigte Transaktionen (1 und 3) bestätigt. Der Random unweighted walk ist hierfür keine Lösung.
 Die Lösung, die das Team um Iota sich hierfür ausgedacht hat, heißt weighted random walk (MCMC Algorithmus) und geht folgendermaßen. Diese sogenannten lazy tips, die wir aufgrund dessen, dass sie nicht dazu beitragen neue Transaktionen zu bestätigen, nicht wollen, werden von neuen Transaktionen nicht bestätigt (bzw es ist unwahrscheinlich). Es liegt also im Interesse jeder Transaktion kein lazy tip zu sein. Dies wird mithilfe des cumulative weights umgesetzt. Mit diesem cumulative weight können wir ausdrücken, wie wichtig eine Transaktion ist. Unser Walker läuft dann beim weighted random walk lieber über die wichtigen/schweren Transaktionen, die demzufolge zuerst bestätigt werden. Das weight einer Transaktion wird berechnet, indem man die Menge an approvern (Transaktionen, die die Transaktion deren cumulative weight wir berechnen wollen bestätigen) zählen und eins hinzu zählen. Das Ergebnis ist das cumulative weight der Transaktion. Auch hierfür gibt es wieder eine Simulation von Iota, bei der ihr das cumulative weight und den Lauf des Walkers sehen könnt. Das der Walker erst über eine „schwere“ Transaktion läuft (sie bestätigt wird) ist mit diesem Algorithmus wahrscheinlicher, als das er über eine „leichte Transaktion“/einen lazy tip läuft.   Wie wichtig das cumulative weight beim Lauf des Walkers  ist, hängt vom Parameter  α ab. Umso größer das α wird, umso wahrscheinlicher wird es, dass der Walker beim random weighted walk über die „schweren“ Transaktionen läuft. Wenn wir α dagegen kleiner machen, dann nähert sich der Lauf des Walkers immer mehr dem komplett zufälligen unweighted random walk an. Bei der Wahl des Wertes von  α gilt es also einen Wert zu finden, bei dem lazy tips möglichst vermieden werden, aber auch nicht zuviele Transaktionen unbestätigt bleiben, da bei einem sehr großen  α der Walker nicht mehr „random“ wäre und somit Transaktionen mit einem geringeren cumulative weight nicht mehr bestätigt werden würden, sondern nur noch die „schwersten“ Transaktionen.
 

  Hiermit wurde erreicht, dass es im Interesse jeder Transaktion liegt kein lazy tip zu sein (um bestätigt zu werden). Dies führt dazu, dass es nur wenige lazy tips gibt, wodurch neue Transaktionen vorrangig unbestätigte Transaktionen bestätigen, was der Grund für die bei steigender Nutzung besser werdende Skalierung von Iota ist. 

Bildquellen

Literaturquellen

  • Artikel zum DAG:https://en.wikipedia.org/wiki/Directed_acyclic_graph
  • Artikel zur topologischen Sortierung: https://en.wikipedia.org/wiki/Topological_sorting; https://de.wikipedia.org/wiki/Topologische_Sortierung
  • Graphentheorie:https://de.wikipedia.org/wiki/Graph_(Graphentheorie)#Teilgraphen,_Wege_und_Zyklen
  • Artikel zu Iota:https://domschiener.gitbooks.io/iota-guide/content/chapter1.html
  • Artikel von Jakob Löhnertz: https://medium.com/@loehnertz/mit-der-kryptow%C3%A4hrung-iota-in-die-zukunft-der-maschinen%C3%B6konomie-88b96e972030
  • Erste Iota Simulation: https://public-rdsdavdrpd.now.sh/
  • Zweite Iota Simulation: https://public-xnmzdqumwy.now.sh/
  • Dritte Iota Simulation: https://public-qnbiiqwyqj.now.sh/
  • Das war es auch schon mit dem ersten Teil meiner Iota Artikel Serie. Ich hoffe er hat euch gefallen und konnte euch beim Verständnis von Iota helfen. 

    Falls ihr Fragen, Anmerkungen habt oder mir einfach nur Feedback geben wollt, schreibt dies gerne in die Kommentare.

    Authors get paid when people like you upvote their post.
    If you enjoyed what you read here, create your account today and start earning FREE STEEM!
    Sort Order:  

    Hi UDCT,

    endlich ist sie da: Unsere Einführung in die IOTA-Welt. Gleich mal resteemen!

    Momentan bin ich unterwegs und schwer beschäftigt. Konnte mich deshalb noch nicht in allen Details mit dem Thema geistig auseinandersetzen. Nur ein paar Fragen zum Verständnis:

    1. Transaktionen kommen connected rein, deshalb gibt's keinen Flaschenhals wie bei BC. Wie aber prüft das Netzwerk die Korrektheit bzw. wie wird Double-Spending verhindert?

    2. Wenn alle IOTA seit der Genesis schon existieren. Wie kann man dann überhaupt noch daran teilnehmen? Theoretisch könnte doch jemand der sehr vermögend ist alle kaufen und das war's dann? Wie zentral ist IOTA?

    3. Wie wird das Netzwerk verwaltet. Sowas wie Knoten scheint es ja nicht zu geben?

    4. Ist Blockchain wegen IOTA zum Scheitern verurteilt?

    Wahrscheinlich wirst du eh die meisten Fragen im Laufe der Zeit beantworten. Du musst dir auch nicht die Finger wund tippen.

    Sie es als Steilvorlage!

    Vielen Dank und bis bald

    Chapper

    Posted using Partiko Android

    Hey Chapper,
    wie immer freue ich mich über deine Unterstützung und deine Kommentare.

    Das es bei Iota bei viel Aktivität kein Problem mit der Skalierung gibt, lässt sich am einfachsten so erklären: Die Transaktionen werden bei Iota parallel bestätigt.
    Ein Beispiel für den Tangle wäre zum Beispiel unser Gehirn. Wir besitzen ja auch Millionen von Synapsen sprich unsere einzelnen Hirnarreale sind durch viele Leitungen miteinander vernetzt. Durch jede einzelne Leitung können Informationen durch. So können viele Millionen Synapsen gleichzeitig Daten übertragen.

    Die Blockchain dagegen könnte man sich eben als einen einzelnen Kabelstrang vorstellen. Die Informationen können eben nur durch dieses eine Kabel, weshalb die "Datenübertragungsrate" limitiert ist.

    Der Tangle ist ein mit jeder neuen Transaktion wachsendes Netzwerk, indem die einzelnen Transaktionen untereinander sehr stark vernetzt sind. Sozusagen wie ein wachsendes Gehirn, dass sich immer besser vernetzt:D

    Die Blockchain dagegen ist nur ein immer länger werdendes Kabel, dass nicht schneller wird, da das Kabel immer gleich bleibt.

    Hoffe mit dieser Erklärung wird es etwas verständlicher.

    Sehr gute Fragen übrigens, man merkt, dass das Blockchain Wissen da ist:D

    Wie aber prüft das Netzwerk die Korrektheit bzw. wie wird Double-Spending verhindert?

    Wie Iota mit dem Double-Spending Problem umgeht kommt im nächsten Artikel.

    Wenn alle IOTA seit der Genesis schon existieren. Wie kann man dann überhaupt noch daran teilnehmen? Theoretisch könnte doch jemand der sehr vermögend ist alle kaufen und das war's dann?

    Die Iotas wurden nachdem sie "erschaffen" wurden auf die verschiedenen Adressen der Entwickler verteilt und dann hin und her getradet. Ich denke die Iotas sind ziemlich gut verteilt. Es gibt bestimmt ein paar "Wale" die relativ große Anteile halten aber auch insgesamt viele Investoren.

    Theoretisch könnte doch jemand der sehr vermögend ist alle kaufen und das war's dann?

    Nun das würde dann ja bei jeder Währung etc gehen:D
    Wenn irgendjemand alle Iotas kaufen wollen würde, würde er anfangen zu kaufen wie ein verrückter, worauf der Preis erstmal hochgeht...Sowas kann sich kein Mensch leisten.

    Wie zentral ist IOTA?

    Dazu kommt auch noch was. Aber "theoretisch" könnte es dezentraler werden als Bitcoin usw.

    Wie wird das Netzwerk verwaltet. Sowas wie Knoten scheint es ja nicht zu geben?

    Gute Frage, doch es gibt Knoten. Wird aber auch noch erklärt.

    Ist Blockchain wegen IOTA zum Scheitern verurteilt?

    Jein:D Meiner Meinung nach wird sich eine Kryptowährung mit so einem DAG als Ledger zwar in den Bereichen mit extrem vielen Transaktionen (IoT, Micropayments usw) durchsetzen (auch weil 0 Transaktionsgebühren), aber bei Anwendungen, die keine so große Transaktionsmenge bewältigen müssen ist die Blockchain wohl besser geignet. Meiner Ansicht nach. Das ist aber alles noch in weiter Ferne.

    Danke für deinen Kommentar, Grüße!

    Ok, super!

    Dann müssen wir nach wie vor nur noch herausfinden, welches der perfekte Coin ist.

    Achso.... natürlich STEEM.

    Freu mich auf den zweiten Teil!

    Bis dahin schöne Grüße vom Chapper

      ·  6 years ago (edited)

    juhu endlich :D
    ich muss zur Verteidigung der Blockchain eines einwenden (du hast mit den genannten Punkten natürlich recht): aber der primäre Grund warum diese nicht skaliert, ist dass in aktuellen Designs ausnahmslos jeder Knoten im Netzwerk die Transaktion prozessieren muss. Das heißt die Geschwindigkeit des einzelnen Computers limitiert. Das gibt aber maximale Redundanz (was die Sicherheit Bitcoins maximal macht, es ist die sicherste Struktur die es je gab). Deswegen kommt man soweit man aktuell weiß, ohne trade-off nicht zu stärkerer Skalierbarkeit (Scaleabilty-Trilemma)

    Was ich oft feststellen muss ist, dass in der Allgemeinheit Prozessieren/Bearbeiten einer Transaktion (zur Validierung des Ledgerstatus) und das Verifizieren nicht unterschieden werden. Der Graph bezieht sich auf das Validieren im Sinne des Verifizierens (hier doch auch oder nicht?).

    Das gilt für jeden Hash Graph (Blockchain, Tangle, was auch immer) sofern das System so designed wurde. Also auch ein DAG würde hier nicht skalieren. Will mit meiner Frage nichts vorwegnehmen, darum nur kurz: IOTAs Tangle an sich ist nur ein Graph, aus dem man keine Performance ableiten kann (abgesehen von der Latenz. Das kann man nicht bestreiten), die Implikation macht den Unterschied. Wie soll das Netzwerk also aussehen? Ansonsten ist meine Behauptung: solange im IOTA alle Fullnodes eine volle Kopie des Tangles haben und die Tx prozessieren müssen um den Status des Ledgers zu validieren, bringt der tolle datenstrukturelle Vorteil durch den DAG nichts.

    Hey @lauch3d,
    super Frage, die du da gestellt hast.

    IOTAs Tangle an sich ist nur ein Graph, aus dem man keine Performance ableiten kann (abgesehen von der Latenz. Das kann man nicht bestreiten), die Implikation macht den Unterschied. Wie soll das Netzwerk also aussehen? Ansonsten ist meine Behauptung: solange im IOTA alle Fullnodes eine volle Kopie des Tangles haben und die Tx prozessieren müssen um den Status des Ledgers zu validieren, bringt der tolle datenstrukturelle Vorteil durch den DAG nichts.

    Einleitend muss ich aber sagen, dass ich selbst noch nicht so tief im Verständnis bin, als das ich diese Frage 100% richtig beantworten könnte:D
    Bin aber auch schon auf diese Problematik gestoßen.

    Als zusammengefasst stellt sich die Fage, ob bei unseren geliebten Cryptos nicht ganz schlicht und einfach die Nodes bzw die Interenetverbindung zwischen eben diesen der Flaschenhals ist.

    Also der Tangle wäre an sich zu unglaublichen Leistungen imstande, aber machen die Nodes das überhaupt mit?(in dieser Geschwindigkeit den Ledger Zustand zu aktualisieren).

    Ich kann dir auf die Frage leider noch keine wirkliche Antwort geben.
    Habe das Problem aber wie gesagt schon selbst auf dem Schirm gehabt. Aus diesem Forum:
    Es ging darum, ob Iota 1,5Mrd Transaktionen am Tag schafft.

    Es ging um 1,5 Mrd Transaktionen am Tag. Ein bißchen Mathematik?
    1.500.000.000 tx am Tag = 62.500.000 tx / Std = 17.361 je Sekunde.
    Wie groß ist eine Transaktion bei IOTA? Sagen wir, 2 Kilobyte.
    Macht dann 34.722.222 Byte oder 35 Megabyte je Sekunde.
    Hört sich noch nicht nach viel an, oder?
    Rechnen wir es in Megabit um, um die notwendige Bandbreite rauszukriegen: 277 Mbit / Sek.
    Kein Problem, gibt ja schon Gigabit-Anschlüsse, gell?
    Nicht ganz. Jeder Node muss das nicht nur down, sondern auch uploaden. Nun wird's schon haariger, weil selbst die 500mbit bzw. 1gbit anschlüsse nur Upload mit maximal 100mbit haben.
    Aber das ist erst der Anfang. Damit das Netz nicht komplett die Latenz verliert, muss jeder Nodes es an mindestens fünf andere peers weitergeben (das ist sehr gering, bei Bitcoin geht man eher von 10 aus). Macht also ein notwendiger Upload von 1388mbit.
    Was ich nicht genau weiß, aber meine, dass es so ist: Jede Transaktion wird zweimal gesendet, einmal unbestätigt, einmal bestätigt. Also sind wir bei einem Upload von 2777mbit/s
    Dazu darfst du noch rechnen, dass jeder Full Node ja bei einem solchen transaktionsaufkommen hunderte, wenn nicht tausende oder Millionen von Ligt Nodes bedient. Keine Ahnung, inwieweit das das Datenvolumen erhöht. Kann sein "nur" um 100mbit, kann aber auch sein um 10gbit. Keine Ahnung.
    Ich nehme an, was die Bandbreite angeht, darf man ruhigen Gewissens sagen, dass die Tangle das unter keinen Umständen schafft.
    Wir könnten das noch für CPU Verbrauch berechnen - hier fehlen mir konkrete Daten, aber ich nehme an, da quanten-Krypto + PoW für jede Tx, ist der bei IOTA sehr viel höher als bei Bitcoin.
    Oder Festplattenspeicher, das ist relativ einfach: 3 Terabyte am Tag.
    Interessant wäre auch der Bedarf an Ram. Oder der an I/O Operationen. Falls eine SSD-Festplatte es schafft, mit dem Volumen mitzuhalten, darf man sie wahrscheinlich eimal die Woche / im Monat wechseln, weil sie durchbrennt.

    Quelle:https://coinforum.de/topic/6388-iota/?page=1392&tab=comments#comment-290237 Kommentar von Christoph Bergmann

    Naja, die Nodes sind eher ein Bauteil als eine Straße. Demnach hättest du ein Konzept für ein Auto, das 300 Sachen schafft, aber für das es die Bauteile noch gar nicht gibt. Oder du hättest ein Auto, das 300 Sachen schafft, aber das niemals beweisen kann, weil es auf der ganzen Welt keine Straße gibt, auf der es fahren kann ...
    Im Endeffekt können auch Blockchains beliebig skalieren, wenn man von Hardware mit einer endlosen Leistungsfähigkeit ausgeht. Da man das aber nicht macht, und da eine Blockchain wie auch eine Tangle dezentrale Systeme sind, bei denen die real existierenden Beschränkungen wegen der hohen Redundanz extrem zu spüren sind, sagt man, eine Blockchain skaliert nicht.
    Und nochmal, ich sehe nicht, wie die Tangle diese Beschränkungen aufhebt. Die hohe Redundanz besteht nach wie vor. Weder dein Vergleich mit einem Fahhrad noch der Artikel von Cointelegraph erhellt den Unterschied zwischen der Tangle und der Blockchain, was die Skalierbarkeit angeht. StefanHH hat einen guten Punkt mit der Geschwindigkeit gemacht, aber es ist mir weiterhin suspekt, warum die bandbreitenmäßigen Beschränkungen der Skalierbarkeit einer Blockchain nicht auf für IOTA gelten sollten - und eben zehnfach, da die Transaktionen zehnmal so groß sind.
    Zu sagen, es sei unsachlich oder unseriös, von einer endlichen Kapazität der Ressourcen von Nodes auszugehen, erscheint mir ebenfalls seltsam.

    Quelle:https://coinforum.de/topic/6388-iota/?page=1424&tab=comments#comment-292487 gleicher Autor wie oben.

    Also ja, die mangelnde Infrastruktur(Internet) wäre aktuell durchaus ein Problem für Iota.

    Ob die Rechnungen dieses Mannes jetzt stimmen weiß ich nicht und es kann natürlich auch sein, dass wir irgendeinen Denkfehler machen:D
    Habe bis jetzt noch keine offizielle Information von einem Iota MItarbeiter über diesen Sachverhalt gesehen.

    Fakt ist jedenfalls, dass Iota Transaktionen verhältnismäßig groß sind und Node Betreiber von Iota derzeit nicht entlohnt werden. Die Argumentation von Iota ist, dass große Firmen auch ohne Entlohnung Nodes betreiben werden, da sie so selbstständig am Iota Netzwerk teilnehmen können, was auch Sinn macht.

    Aber im Hardware Bereich und in der Geschwindigkeit des flächendeckenden Internets in Deutschland müssten (meines Wissens) noch große Schritte nach vorn gemacht werden, damit so hohe Tx pro Sekunde möglich werden.

    Müsste man jetzt ausrechnen, wie stark die Hardware der Nodes sein müsste, damit der Tangle so hohe Tx schafft, dass die Blockchain aufgrund des Blockchain Bottlenecks nicht mehr mitkommt. Sprich wo das Blockchain Bottleneck Limit von Bitcoin,... liegt und wie stark die Node Hardware für Iota sein muss, damit Iota über diese Tx Zahl pro Sekunde hinüberkommt.

    Schwierige Frage, falls du gute Infos zu dieser Problematik findest, wäre es nett wenn du mir sie hier verlinkst.
    Grüße!

      ·  6 years ago (edited)

    Ja habe auch keine sofortige Antwort erwartet. Der Kommentar geht in eine Ähnliche Richtung. In deinem Lernprozess wirst du aber ganz sicher eine Antwort finden. Also ich kenne sie theoretisch (ganz grob). Was nicht weis ist IOTAs Antwort auf das Problem.

    Es ist nicht wirklich die Hardware in dem Sinne als dass die Prozessoren zu langsam wären oder ähnliches. Parallel Slowdown kommt durch die Parallelisierung des Algorithmus an sich.

    Manche Algorithmen bzw. Probleme sind extrem parallelisierbar (embarrassingly parallel Problems) wie Mining oder Bruteforcing, andere wiederum gar nicht.

    Und Redundanz zu erzeugen naja erfordert logischerweise Parallelisierung. Dieses Problem ist trotz der thematischen Komplexität so simple dass viele es gar nicht erst wahrnehmen. Aber es ist der absolute Endgegner. In der Informatik sind Konzepte für die es keine Infrastruktur gibt, recht üblich, es muss auch Visionen geben, sie machen sich halt nur sehr sehr viel später bezahlt (quanten Algorithmen gibts ja auch schon ewig). Vielleicht findest du ja zufällig mal ne Stelle wo IOTA versucht der Farge krampfhaft aus dem Weg zu gehen :D

    Bin immer wieder beeindruckt, wie breit gefächert dein Wissen ist.

    Dann bin ich mal gespannt, was mir zu dem Problem noch klar wird:D

    Bis jetzt aufjedenfall sehr interessant.
    Grüße!

    (Experiment)
    Hier upvoten, da der Artikel nicht mehr upvotebar ist.

    Hier Upvoten, falls ihr den Artikel erst jetzt lest.

    (Experiment)

    Wirklich interessant. Und ich konnte folgen! Yay!

    Freut mich, dass der Artikel dir gefällt und verständlich ist. Falls sich noch Fragen auftun gerne stellen:)

    Sehr, sehr guter Artikel, wir würden den gerne bei uns, teilweise oder ganz, zu IOTA veröffentlichen. Ist die Nennung dieser Quelle für Dich ausreichend, oder hast Du auch eine Homepage?

    Liebe Grüße vom Kryptozwerg
    Marc und Aimée

    Danke erstmal für das Lob! Freut mich, dass der Artikel euch gefällt.

    Solange ihr diesen Artikel als Quelle angebt, dürft ihr das gerne machen.

    Auch wenn ich mir viel Mühe mit diesem Artikel gegeben habe, kann ich euch leider keine 100% Richtigkeit aller Informationen garantieren. (bin leider kein Iota Mitarbeiter:D)

    http://kryptozwerg.com/was-ist-miota-iota-eine-kurze-erklarung/
    Wärs Dir so Recht? Freuen uns schon auf den 2.Teil :-)
    Lieben Dank nochmal und liebe Grüße von Marc& Aimée





    This post has been voted on by the SteemSTEM curation team and voting trail in collaboration with @curie.

    If you appreciate the work we are doing then consider voting both projects for witness by selecting stem.witness and curie!

    For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

    UpvoteBank
    Your upvote bank
    __2.jpgThis post have been upvoted by the @UpvoteBank service. Want to know more and receive "free" upvotes click here

    Congratulations @urdreamscometrue! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

    You received more than 5000 upvotes. Your next target is to reach 6000 upvotes.

    Click here to view your Board of Honor
    If you no longer want to receive notifications, reply to this comment with the word STOP

    Support SteemitBoard's project! Vote for its witness and get one more award!

    Hi @urdreamscometrue!

    Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
    Your UA account score is currently 2.027 which ranks you at #24587 across all Steem accounts.
    Your rank has improved 24 places in the last three days (old rank 24611).

    In our last Algorithmic Curation Round, consisting of 339 contributions, your post is ranked at #220.

    Evaluation of your UA score:
    • Only a few people are following you, try to convince more people with good work.
    • The readers appreciate your great work!
    • Try to improve on your user engagement! The more interesting interaction in the comments of your post, the better!

    Feel free to join our @steem-ua Discord server

    Congratulations @urdreamscometrue! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

    You got more than 600 replies. Your next target is to reach 700 replies.

    Click here to view your Board of Honor
    If you no longer want to receive notifications, reply to this comment with the word STOP

    Do not miss the last post from @steemitboard:

    Saint Nicholas challenge for good boys and girls

    Support SteemitBoard's project! Vote for its witness and get one more award!