Author

Topic: Welche Vor- und Nachteile bietet ein DAG/Tangle? (Read 881 times)

legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
February 23, 2018, 07:18:25 AM
#14
Danke, das ist eine nette Grundeinführung in IOTA und super um das Wissen drüber noch mal aufzufrischen, aber eigentlich waren mir die Sachen schon klar.

Das Problem, um das es mir geht, ist ja der Leistungsbedarf im Vergleich zur "normalen" Blockchain. Mit Double Spends kann der Angreifer im "Tangle", wenn er den Angriff richtig angeht wie oben geschildert, meiner Vermutung nach das Netzwerk ganz schön fordern, da ein Teil des Netzwerks eine ganze Weile lang glauben wird, dass eine falsche Transaktion die richtige ist.

Bei der Blockchain dagegen wird der Status der Chain ja seltener geändert und das Problem tritt daher nicht so oft auf. Es wäre also für mich zu analysieren, ob der Vorteil des DAG (kleine Einheiten mit wenigen Hashing-Operationen im Vergleich zu den "großen" Blocks) den Nachteil (sehr häufige Status-Änderungen) aufwiegt.
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Das System ist "Netzwerkgebunden", oder die Geschwindigkeit, mit der Transaktionen ausgeführt werden können, ist an die Topologie des Netzwerks gebunden.
Danke schon mal für die Antwort. Ich stehe aber weiter etwas auf dem Schlauch:

Quote
Netzwerkgebunden bedeutet, dass Iota sich nicht vollständig auf PoW verlässt, um bösartige Transaktionen zu verhindern, sondern sich darauf verlassen kann, dass man nicht gleichzeitig das gesamte Netzwerk durch Überflutung mit Transaktionen beeinflussen kann. Man kann einen einzelnen Knoten mit Transaktionen überschwemmen, wodurch dieser Knoten möglicherweise gestört wird, aber andere Knoten erhalten nur sekundäre Effekte von dem Spam und der Spam selbst wird länger und länger zur Bestätigung benötigen.
Grundsätzlich lese ich hier heraus, dass rein theoretisch ohne Koordinator eine Spam-Attacke möglich ist, die das ganze System sozusagen zum Halten (also in einen Zustand des längeren Nicht-Konsens) bringt, wie Lior schrieb. Dies läge aber nur daran, dass es noch zu wenig (schnelle?) Nodes gäbe, denn:

Quote
Die Natur der Netzwerkkommunikation besteht darin, dass, je mehr Knoten vorhanden sind, die schnelleren Knoten relevante Daten von ihren Peers erhalten (oder an diese verweisen können).

Aber bei IOTA validieren doch alle Knoten, die eine Transaktion durchführen, frühere Transaktionen mit. Der allergrößte Teil von denen werden langsame Knoten sein. Gerade diese sind doch gefährdet, auf "falsche" Transaktions-Ketten "hereinzufallen".

Stellen wir uns ein Szenario vor, in dem ein Angreifer einen Double Spend mit zwei in Konflikt stehenden Transaktionen TX1 und TX2 durchführen möchte. Er sendet also TX1 an eine große Zahl von Nodes und TX2 an eine andere große Gruppe von Nodes. Irgendwann werden die Nodes den Konflikt bemerken, dann müssen sie ihre Kette neu organisieren. Dabei müssen sie je nach Throughput aber Tausende Transaktionen "neu organisieren". Und der  Angreifer kann längst weitere "passende" (also noch mehr Verwirrung stiftende) Spam-Transaktionen herausschicken, um das Netzwerk weiter zu verlangsamen.

Wie sollen da die "schnellen" Nodes (die trotz des "Transaktions-Salats" zum Konsens kommen) eingreifen und für Ordnung sorgen? Sie sind ja selbst in einem "reifen" Netzwerk in der Minderheit. Die TX1-Gruppe wird so lange wie möglich behaupten, dass sie den "richtigen" Tangle hat, genauso wie die TX2-Gruppe. Wenn die schnellen Nodes zu dem Schluss kommen, dass TX1 früher versendet und damit "legitim" ist, dann vergrößern sie die TX1-Gruppe ja nur unwesentlich (und der Angreifer könnte vorsorgen, indem er die "objektiv" spätere TX2 an mehr Nodes schickt).

Die Schlussfolgerung wäre für mich: IOTA braucht eine ziemlich große Anzahl leistungsfähiger Nodes, die solche "Reorgs" schnell bearbeiten und die richtige Version der Kette an ihre Peers verteilen - während eine Blockchain durch die künstliche Verlangsamung der Kommunikation (Blocks) schon mit weniger auskommt. Ist dieses Fazit richtig oder falsch?
sr. member
Activity: 770
Merit: 252
https://twitter.com/iambitboy
Stimmt danke, hab ich vergessen zum aufzählen!
War noch ein wenig müde Wink
hero member
Activity: 909
Merit: 663
guter Thread, vielen Dank dafür. Den Artikel von Lior hatte ich gelesen, kann ihn aber nicht bewerten, und, er hat es ja schonend formuliert, was ich begrüße. Was patrickrn32 geschrieben hat hört sich für mich nachvollziehbar an, ob's allerdings tatsächlich so ist, vermag ich nicht zu beurteilen. Ich hoffe mal, dass tatsächlich noch ein paar von den Technikfüchsen hier Stellung beziehen und uns etwas erleuchten. Wie ist eigentlich das Verhältnis der Koordinatoren bei Byteball und IOTA, Byteball hat meines Wissens mehrere, hat IOTA wirklich "nur" einen? Und hat IOTA nicht neulich erst irgendwie einen redundante Systeme eingeführt/aufgebaut, das waren glaube ich "nur" Full Nodes?

Zu byteball dürfte das hier recht informativ sein!
https://www.coinmis.com/byteball-ng-a-new-generation-of-dag-blockchain/

Es gibt bei unseren englischen kollegen auch einen thread über byteball dag vs blockchain
https://bitcointalk.org/index.php?topic=1799665.0;all

Edit:

https://coinidol.com/designed-to-succeed-iota-raiblocks-and-byteball/

https://www.forbes.com/sites/shermanlee/2018/01/22/explaining-directed-acylic-graph-dag-the-real-blockchain-3-0/amp/

Byteball

- Die Reihenfolge der Transaktionen basiert auf der Hauptkette
- Es gibt keine Chance auf Orphan blocks
- Es gibt deterministische Kriterien, wenn eine Transaktion endgültig wird
- hat mehrere Vermögenswerte ( multi assets ) und intelligente Verträge ( smart contracts )
- Es gibt Vermögenswerte, die privat übertragen werden

Iota

-IOTA verwendet PoW
-Teile der DAG können orphaned sein
-es gibt keine genauen Kriterien, es ist immer noch probabilistisch, basierend auf Intuition
- ist nur eine einzige Token-Währung mit nur einfachen Zahlungen
- Alle Zahlungen sind öffentlich

Laut wiki Smiley


Ein wichtiges Kriterium fehlt: Iota hat im Gegensatz zu Byteball keine Gebühren (Fee). Das ist eine Grundvoraussetzung damit es sinnvoll im IOT Bereich eingesetzt werden kann und Microzahlungen möglich werden.
sr. member
Activity: 770
Merit: 252
https://twitter.com/iambitboy
guter Thread, vielen Dank dafür. Den Artikel von Lior hatte ich gelesen, kann ihn aber nicht bewerten, und, er hat es ja schonend formuliert, was ich begrüße. Was patrickrn32 geschrieben hat hört sich für mich nachvollziehbar an, ob's allerdings tatsächlich so ist, vermag ich nicht zu beurteilen. Ich hoffe mal, dass tatsächlich noch ein paar von den Technikfüchsen hier Stellung beziehen und uns etwas erleuchten. Wie ist eigentlich das Verhältnis der Koordinatoren bei Byteball und IOTA, Byteball hat meines Wissens mehrere, hat IOTA wirklich "nur" einen? Und hat IOTA nicht neulich erst irgendwie einen redundante Systeme eingeführt/aufgebaut, das waren glaube ich "nur" Full Nodes?

Zu byteball dürfte das hier recht informativ sein!
https://www.coinmis.com/byteball-ng-a-new-generation-of-dag-blockchain/

Es gibt bei unseren englischen kollegen auch einen thread über byteball dag vs blockchain
https://bitcointalk.org/index.php?topic=1799665.0;all

Edit:

https://coinidol.com/designed-to-succeed-iota-raiblocks-and-byteball/

https://www.forbes.com/sites/shermanlee/2018/01/22/explaining-directed-acylic-graph-dag-the-real-blockchain-3-0/amp/

Byteball

- Die Reihenfolge der Transaktionen basiert auf der Hauptkette
- Es gibt keine Chance auf Orphan blocks
- Es gibt deterministische Kriterien, wenn eine Transaktion endgültig wird
- hat mehrere Vermögenswerte ( multi assets ) und intelligente Verträge ( smart contracts )
- Es gibt Vermögenswerte, die privat übertragen werden

Iota

-IOTA verwendet PoW
-Teile der DAG können orphaned sein
-es gibt keine genauen Kriterien, es ist immer noch probabilistisch, basierend auf Intuition
- ist nur eine einzige Token-Währung mit nur einfachen Zahlungen
- Alle Zahlungen sind öffentlich

Laut wiki Smiley

legendary
Activity: 2562
Merit: 1452
till 25.07
guter Thread, vielen Dank dafür. Den Artikel von Lior hatte ich gelesen, kann ihn aber nicht bewerten, und, er hat es ja schonend formuliert, was ich begrüße. Was patrickrn32 geschrieben hat hört sich für mich nachvollziehbar an, ob's allerdings tatsächlich so ist, vermag ich nicht zu beurteilen. Ich hoffe mal, dass tatsächlich noch ein paar von den Technikfüchsen hier Stellung beziehen und uns etwas erleuchten. Wie ist eigentlich das Verhältnis der Koordinatoren bei Byteball und IOTA, Byteball hat meines Wissens mehrere, hat IOTA wirklich "nur" einen? Und hat IOTA nicht neulich erst irgendwie einen redundante Systeme eingeführt/aufgebaut, das waren glaube ich "nur" Full Nodes?
sr. member
Activity: 770
Merit: 252
https://twitter.com/iambitboy
Das System ist "Netzwerkgebunden", oder die Geschwindigkeit, mit der Transaktionen ausgeführt werden können, ist an die Topologie des Netzwerks gebunden.

Netzwerkgebunden bedeutet, dass Iota sich nicht vollständig auf PoW verlässt, um bösartige Transaktionen zu verhindern, sondern sich darauf verlassen kann, dass man nicht gleichzeitig das gesamte Netzwerk durch Überflutung mit Transaktionen beeinflussen kann. Man kann einen einzelnen Knoten mit Transaktionen überschwemmen, wodurch dieser Knoten möglicherweise gestört wird, aber andere Knoten erhalten nur sekundäre Effekte von dem Spam und der Spam selbst wird länger und länger zur Bestätigung benötigen.
Soweit legitime Transaktionen durch das Netzwerk gebunden sind, benötigt das DAG-System derzeit die Koordinatoren. Die Natur der Netzwerkkommunikation besteht darin, dass, je mehr Knoten vorhanden sind, die schnelleren Knoten relevante Daten von ihren Peers erhalten (oder an diese verweisen können).

Das Internet wäre extrem ineffizient, wenn es nicht so viele verteilte Server gäbe, die den Datenverkehr koordinieren. Wenn mann das Internet von Grund auf neu aufbauen wollten, bräuchte mann zentrale Server, um den Datenverkehr zu koordinieren, bis eine kritische Masse von Servern erreicht wurde, die alleine damit umgehen könnten. Iota ist in demselben Zustand wie das sehr frühe Internet, bevor wir DNS und die endlose Reihe von Backbone-Routern, die wir heute haben, bekommen haben.

Die Verlangsamung durch Übersprudeln ist Teil der wachsenden Probleme dieser Art von Netzwerk.
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Ich krame diesen alten Thread mal wieder hervor, denn auch ein Jahr später bin ich mir weiter unschlüssig, welches beider Verfahren jetzt besser / skalierbarer ist.

Anlass des Wiederbelebens ist folgender Artikel von Lior Yaffe auf Medium:

Scaling a Blockchain vs Scaling a Tangle

Der ist zwar schon ein paar Monate alt, aber ich finde schon plausibel, was er da schreibt. Er meint, dass DAGs es bei hohem Transaktionsdurchsatz (der ja u.a. von IOTA angestrebt wird) vielleicht sogar noch schwerer als Blockchains haben werden, zum Konsens zu kommen.

Grund: Bei jeder Transaktion wird der Status des DAGs verändert, und das potenziell hunderte/tausende Male per Sekunde. Das bedeutet, dass bei Angriffen oder auch Netzwerk-Partitionierungen so schnell inkompatible Versionen entstehen können, dass die Nodes kaum mit der Konsensfindung hinterherkommen. Der Leistungsbedarf wäre dann durch ständige Reorgs, die zu komplizierten Berechnungen führen, höher als bei Blockchains gleicher Transaktionsdichte.

Das steht ja diametral entgegengesetzt zu dem, was IOTA erreichen möchte. Nun kann man Yaffe vorwerfen, dass er als Entwickler eines Blockchain-Coins (Nxt/Ardor) nicht neutral ist, was die Frage angeht.

Kann hier ein IOTA- (oder auch Byteball-)Anhänger Yaffe widerlegen?
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Danke. 15 GB ist ja für einen Coin, der kaum genutzt wird und erst etwas mehr als ein Jahr alt ist, schon recht viel, finde ich. Müsste mich aber näher damit befassen, was da alles gespeichert wird und für wie lange, d.h. wann geprunt wird.

Ist IOTA, oder?

PS: Wenn es jemand weiß: Wie groß sind durchschnittlich IOTA/Byteball-Transaktionen (in Bytes)? Sie dürften ja etwas größer sein als bei BTC, da ihnen ja auch die Funktion eines Blocks (Verkettung mit vorherigen TX) zukommt.
hero member
Activity: 503
Merit: 502
Meine full-nodes (Ubuntu 16.04 64bit) mit allen daten brauchen ca. 15GB.
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Danke Randombit. Das deckt sich in etwa mit dem, was ich bei CfB damals als Antwort bekam - also quasi ein regelmäßiges Pruning bei dem die Balances verbleiben und die alte Transaktionsgeschichte gelöscht wird.

Betreibst Du (oder irgendjemand anderes hier) einen Full Node? Mich würde interessieren wie groß das Datenverzeichnis (also Tangle und andere Daten) bei IOTA ist. Gleiches auch zu Byteball.
legendary
Activity: 1447
Merit: 1028
Soweit ich weiß werden nicht alle vorran gegegangen Transaktionen gespeichert sondern lediglich der tatsächliche Stand des Tangels als Snap an alle Nodes verteilt, Konten die keine Iotas mehr haben werden nicht mehr beachtet.
Visuell kann man sich das wie eine Art vitales Netz vorstellen, welches aktive neue Knoten mit Transaktionen bildet und voranschreitet, alte Knotenpunkte ohne Iotas werden vergessen, daher wird auch geraten jede Adresse einmal zu nutzen, da eine bereits verwendete Adresse nicht mehr zwangsläufig vom Tangle "vital" gehalten wird.

Aber ich glaube die technisch versierten User und richtigen Ansprechpartner sind achimsmile und ImI die jedes Detail kennen.
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Hallo,
da es hier ja einige IOTA und Byteball-Experten gibt, möchte ich mal einen Thread zum Thema DAG aufmachen.

DAGs oder Tangles sind ja Modelle, in denen die Transaktionen nicht in Blöcken zusammengefasst werden, sondern jede Transaktion vorherige Transaktionen bestätigen muss.

Es wird zwar immer mit Skalierbarkeitsvorteilen für diese Coins geworben. Aber wobei handelt es sich dabei genau:

- geringere Bandbreitenanforderungen beim Verbreiten von Transaktionen

oder/und

- geringerer Fest-Speicherplatzverbrauch bei den Nodes?

Ich hatte mal CfB von IOTA dazu gefragt und der meinte zum zweiten Punkt, ein geringerer Speicherplatzverbrauch würde durch Pruning erzielt. Das geht aber inzwischen selbst beim guten alten Bitcoin und seinen Derivaten (glaube ab 0.11 oder so). Es werden aber auch bei den DAG-Coins immer alle Transaktionen von alle Nodes gespeichert, oder?

Den ersten Punkt dagegen kann ich mir eher vorstellen, da Blöcke ja größer sind als einzelne Transaktionen.

Hat jemand Lust Licht in das Dickicht zu bringen? Wink (Auch Nachteile des DAG können angesprochen werden).

PS: Gibt auch einen englischsprachigen Thread zu dem Thema, dort wird aber eigentlich nur rumgeflamt und zu den für mich wichtigen Punkten wurde noch nichts gesagt.
Jump to: