Was ist eine DAG?


Wenn wir uns für die Funktionsweise von Blockchains und insbesondere für die Innovationen, die Projekte oder neue Formen des Konsenses mit sich bringen, interessieren, werden wir vielleicht mit dem Begriff DAG konfrontiert. Wir möchten Ihnen gerne erklären, was eine DAG ist und wie sie funktioniert! Am Ende werden wir über den Zusammenhang zwischen DAGs und Blockchain sprechen und welche Vorteile diese Verbindung hat.

DAG


Ein DAG (kurz für Directed Acylic Graph) ist eine alte mathematische Struktur, die häufig in der Informatik verwendet wird. Diese Graphen sind Modelle von Netzwerken, die die Knoten, aus denen sie bestehen, miteinander verbinden. In diesen Graphen können Sie verschiedene Arten von "Bäumen" finden, aber auch Ketten von Knoten (Nodes), oder Blöcke im Zusammenhang mit Bitcoin. Ein DAG ist eine Struktur, die nur direkte Verbindungen zwischen ihren Knoten und keine Zyklen hat. Das heißt, man kann nicht auf denselben Knoten zurückgreifen, wenn man im Graphen navigiert. Dies ermöglicht eine direkte Navigation von Knoten zu Knoten durch die Knotenbeziehungen.

DAGs haben nicht unbedingt etwas mit Blockchains zu tun und wurden, wie viele andere Technologien, schon lange vor dem Aufkommen von Kryptoprojekten verwendet. Sie werden in der Organisation von vielen Daten verwendet, wie zum Beispiel Git.

Wie funktionieren DAGs?


DAGs sind Strukturen, die aus zwei verschiedenen Arten von Elementen bestehen: den Knoten und den Verbindungen zwischen diesen Knoten. Dies kann verwendet werden, um eine Historie von Daten wie Softwareversionen oder Interaktionen zwischen Benutzern zu führen. Dadurch werden die Konflikte vermieden, die mit der Verwendung einer linearen Historie verbunden sind, bei der das Hinzufügen eines neuen Elements direkt mit dem ältesten Element (und nur mit diesem) verknüpft sein muss. Im Kontext von Software-Versionen kann Version 5 nur mit Version 4 in einem linearen Rahmen verknüpft werden. Durch die Verwendung einer DAG kann diese Version mit Version 3 verknüpft werden, während Version 6 die Versionen 4 und 5 verknüpft.

Bezüglich des Weges einer DAG gibt es mehrere Algorithmen, von denen jeder seine eigenen spezifischen Eigenschaften hat. Die Verwendung von DAGs erleichtert die Anwendung bestimmter Algorithmen im Vergleich zu anderen, eher generalistischen Graphen, wie z. B. die Suche nach den kürzesten oder längsten Wegen zwischen zwei bestimmten Knoten.

DAGs im Kontext von Blockchains


Ein DAG wird auch in der Kryptowelt verwendet, obwohl es relativ wenige Blockchains gibt, die eine DAG in ihrer Architektur verwenden. Nichtsdestotrotz könnte ihre Verwendung Probleme mit der Skalierbarkeit von Blockchains lösen. Es ist wichtig zu verstehen, was durch eine DAG ersetzt werden kann und welche Operationen irrelevant sind.

Entgegen der landläufigen Meinung ist die Verwendung einer DAG nicht mit der Transaktionsverifizierung, der Ausgabe oder anderen Arten von Protokollen, wie sie derzeit existieren, verbunden. Im Zusammenhang mit der Skalierbarkeit von Blockchains gibt es viele Engpässe und Beschränkungen, die durch technische Mittel wie die Leistung der Maschinen oder durch die Funktionsweise der Protokolle auferlegt werden. Die Propagierung von Transaktionen über das Netzwerk ist eine davon. Denn was nützt es, die Größe der Blöcke oder den Fluss der Transaktionen zu erhöhen, wenn sie nicht korrekt über das Netzwerk verteilt werden können? Dies kann Nebeneffekte haben und das Netzwerk mit der Zeit immer zentraler werden lassen.

Die Verwendung einer DAG ersetzt nicht das Netzwerk des Miners, da der Proof of Work-Mechanismus Funktionen bietet, die direkt mit seiner genauen Funktionsweise zusammenhängen, wie z. B. die Unveränderlichkeit.

Vorteile und Nachteile der Verwendung einer DAG


Obwohl einige Kryptowährungsnetzwerke wie z.B. Bitcoin Stringsysteme verwenden, ist es auch möglich, Transaktionen in einer DAG zu organisieren: Das machen z. B. die Projekte IOTA oder Nano. Aber das sind nicht die einzigen Änderungen in der Blockchain-Architektur: Einige Protokolle verwenden Konsensprotokolle für Proof of Stake oder Proof of Authority, um Transaktionen zu validieren, bevor sie zur DAG hinzugefügt werden. Wenn sich das Netzwerk nicht auf Proof of Work verlässt, um Transaktionen zu validieren, braucht es keine Blöcke und somit keine Blockchain. Daher ist die Verwendung von DAGs interessant, weil sie viele Vorteile für deren Verwaltung bietet.

Die Verwendung einer DAG bietet Vorteile in Bezug auf die Geschwindigkeit der Ausführung von Transaktionen. Wie oben erläutert, sind es jedoch nicht die DAGs, die den größten Nutzen bringen, sondern andere Parameter, die die Benutzerfreundlichkeit erhöhen, wie z. B. Gebühren, die nahe bei Null liegen. Dies mag die Verwirrung in der Community über das Wesen der DAGs erklären, die keine "Blockchains 3.0" darstellen und nicht unbedingt auf einer Validierung von Transaktionen durch Proof of Work basieren.

Die BlockDAGs


Bitcoin hat eine Architektur zur Verfügung gestellt, die die Entwicklung eines völlig offenen Netzwerks ermöglicht, auf dem der Austausch von Werten durch die Anwendung verschiedener Mechanismen möglich ist, die die Historie von Transaktionen unveränderbar machen. Allerdings verliert diese Architektur ihre Sicherheitseigenschaften, wenn die Blockgröße vergrößert wird oder der Fluss der Blöcke in gewissem Maße erschwert wird. Daher versuchen viele Projekte, entweder durch Modifikation der Architektur oder durch die Arbeit an Second Layern wie dem Lightning Network, Bitcoin zu verbessern. Dies ist bei BlockDAGs der Fall, die von Projekten wie SPECTRE vertreten werden.

Die Idee ist es nicht mehr, Blöcke von Transaktionen in Ketten zu gruppieren, von denen die längste durch Konsens ausgewählt würde, sondern sie in DAGs zu gruppieren. Jeder Block würde historisch organisiert sein. Das heißt, jeder Block würde sich in den Hashes seiner Header immer auf seine Vorgänger beziehen. Das Hauptproblem dabei wäre, dass die Miner nicht notwendigerweise die gleiche Version der DAG zur gleichen Zeit haben würden, da neue Blöcke viel häufiger hinzugefügt werden. Dies könnte zu widersprüchlichen Transaktionen führen, da sie parallel validiert werden, ohne dass die Miner dies bemerken.

Diese strukturelle Änderung im Systemdesign kann das System schneller machen, da die Bestätigung von Transaktionen in Sekundenschnelle erfolgen kann. Außerdem ist der Fluss dieser Transaktionen nicht auf eine bestimmte Anzahl von Blöcken pro Minute beschränkt, sondern wird nur durch die Netzwerkbandbreite begrenzt, was die Transaktionskosten reduziert.