Wat is een directed acyclic graph (DAG) in cryptocurrency?
Wat is een directed acyclic graph (DAG) in cryptocurrency?
StartpaginaArtikelen

Wat is een directed acyclic graph (DAG) in cryptocurrency?

Gemiddeld
1w ago
7m

Inleiding

Denk je aan cryptocurrency, dan denk je waarschijnlijk aan blockchains of zogenaamde distributed ledger technology. Sinds de lancering van Bitcoin zijn er honderden cryptocurrencies ontwikkeld, meestal op basis van dezelfde netwerkarchitectuur. Door hun gegevensstructuur kunnen gebruikers onderling waarde versturen of communiceren met gedecentraliseerde applicaties.
In een blockchain wordt er periodiek een nieuw block toegevoegd aan een steeds groter wordende keten van blocks. Elk block is via een soort cryptografische koppeling (de zogenaamde hash) verbonden met het vorige block. Elk block bevat transacties die door gebruikers naar het netwerk zijn verstuurd.
Vaak is er echter sprake van een wachttijd tussen het moment dat een transactie naar het netwerk wordt gestuurd en het in een block wordt opgenomen. Zie het als wachten op de trein als je op het perron staat. Afhankelijk van de grootte van de trein (de block size) en het aantal andere mensen dat aan boord wil gaan (de in afwachting staande transacties) kun je misschien niet eens met de eerstvolgende trein meegaan. Of de trein daarna. Het kan seconden tot uren duren voordat een transactie wordt bevestigd.
Voor veel mensen is dit een acceptabele afweging. Er is ten slotte sprake van een hoge mate van zekerheid, zonder dat er op een centrale coördinator vertrouwd hoeft te worden. Anderen vinden blockchains een technologie met een einddatum, en zijn van mening dat de problemen met schaalbaarheid uiteindelijk brede adoptie in de weg zullen staan.

Volgens sommigen ligt de toekomst van cryptocurrency-betalingen in een totaal andere architectuur, namelijk directed acyclic graphs (of DAG's).


Wat is een DAG?

Een DAG is een ander soort gegevensstructuur. Zie het als een database die verschillende stukjes informatie aan elkaar koppelt. 'Directed acyclic graph' is echter een complexe term, dus laten we bij het begin beginnen.


Een directed acyclic graph.


Conceptueel zien DAG's er ongeveer zo uit als in bovenstaande afbeelding. Ze bestaan uit punten (de blauwe bollen) en randen (de groene lijnen tussen de blauwe bollen). Ze zijn directed omdat ze, zoals in de afbeelding, in één richting bewegen. Ook zijn ze acyclisch (dat wil zeggen, niet cyclisch) omdat de punten niet naar zichzelf terugverwijzen. Als je op een bepaald punt begint en de grafiek volgt, is het niet mogelijk om weer bij dat punt te eindigen. We zullen dit dadelijk in meer detail uitleggen.

Dergelijke gegevensstructuren worden over het algemeen gebruikt voor het modelleren van data. DAG's worden op wetenschappelijk en medisch gebied gebruikt om de relatie tussen variabelen te observeren en te bepalen hoe zij elkaar beïnvloeden. Je kunt bijvoorbeeld kijken naar voeding, slaapcycli en fysieke symptomen, zodat je daar verbanden tussen kunt leggen en kunt bepalen wat de invloed ervan op de patiënt is.

Voor onze doelen zijn we meer geïnteresseerd in hoe ze ons kunnen helpen bij het bereiken van consensus in een gedistribueerd cryptocurrency-netwerk.


Hoe werkt een DAG?

In een op een DAG-gebaseerde cryptocurrency vertegenwoordigt elk punt in de structuur een transactie. Er is geen sprake van blocks of mining voor het uitbreiden van de database. In plaats van dat transacties worden verzameld in blocks, is elke transactie gebaseerd op een vorige transactie. Toch is er sprake van een klein beetje Proof of Work wanneer een node in het netwerk een transactie verstuurt. Dit garandeert dat het netwerk niet overbelast raakt en eerdere transacties gevalideerd worden.

Om een nieuwe transactie toe te voegen, moet deze op een eerdere transactie worden gebaseerd. Stel dat Alice een nieuwe transactie aanmaakt. Om deze transactie te valideren, moet er naar eerdere transacties worden verwezen. Een beetje zoals hoe blocks in Bitcoin verwijzen naar het vorige block in de blockchain, al wordt er in dit geval teruggegrepen op meerdere transacties.

In sommige systemen bepaalt een algoritme op welke transacties (of 'tips') een nieuwe transactie moet worden gebaseerd. Tips met meer 'gewicht' worden eerder geselecteerd; in dit geval verwijst gewicht naar het aantal bevestigingen dat de tip heeft.

De transacties waar Alice op voortbouwt zijn onbevestigd. Zodra Alice naar deze transacties verwijst, worden ze bevestigd. De transactie van Alice is nu onbevestigd, dus moet iemand anders naar deze transactie verwijzen om haar transactie te bevestigen.

Gebruikers zullen eerder transacties bevestigen met 'zwaarder' gewicht, zodat het systeem blijft groeien. Anders zou niets de gebruikers ervan weerhouden om voortdurend op verouderde transacties te blijven bouwen.

Met blockchains is het eenvoudig genoeg om bescherming tegen double spending te bieden. Hetzelfde bedrag kan niet twee keer in één block worden uitgegeven: nodes kunnen eenvoudig detecteren of hier sprake van is en een block met conflicterende transacties verwerpen. Omdat het erg kostbaar is voor miners om blocks te produceren, worden zij aangemoedigd om het spel eerlijk te spelen.

DAG's hebben eveneens een mechanisme voor het voorkomen van double spending. Het werkt vergelijkbaar met dat van een gewone blockchain, maar maakt geen gebruik van miners. Wanneer een node een oudere transactie bevestigt, wordt pad naar de eerste transactie in de DAG helemaal teruggevolgd om te controleren of de afzender voldoende saldo heeft. Er kan sprake zijn van meerdere paden, maar er hoeft slechts één geverifieerd te worden.



Als gebruikers doorgaan op een ongeldig pad, bestaat het risico dat hun eigen transactie genegeerd zal worden. Hoewel de transactie legitiem kan zijn, waren eerdere transacties dit niet en zal niemand dat specifieke pad verder willen verlengen.

Het lijkt op het eerste gezicht misschien niet intuïtief: kan er zo geen situatie ontstaan waarbij er sprake is van meerdere aftakkingen van de DAG, die niet van elkaars bestaan op de hoogte zijn? En kunnen mensen hun saldo dan niet meerdere keren uitgeven op verschillende aftakkingen?



Dat is inderdaad een mogelijkheid, maar dit wordt opgelost met een selectie-algoritme dat de voorkeur geeft aan tips met meer gewicht. Dit betekent dat er na verloop van tijd een aftakking ontstaat die veel sterker is dan andere aftakkingen. De zwakkere aftakkingen worden verlaten en het netwerk bouwt verder op het sterkste pad.

Net als bij blockchains is er geen sprake van absolute finaliteit: je kunt nooit 100% zeker zijn dat een transactie niet ongedaan wordt gemaakt. Het is ontzettend onwaarschijnlijk, maar theoretisch is het mogelijk om een Bitcoin- of Ethereum-block (en alle transacties die dit block bevat) uit de blockchain te verwijderen. Hoe meer blocks er na jouw transactie aan de blockchain worden toegevoegd, hoe meer je op je transactie kunt vertrouwen. Daarom wordt aanbevolen om op minstens zes bevestigingen te wachten voordat je geld uitgeeft.
In een DAG zoals de Tangle van IOTA wordt het idee van confirmation confidence of bevestigingsvertrouwen gebruikt. Het selectie-algoritme wordt 100 keer uitgevoerd en je telt hoe vaak je transactie direct of indirect is bevestigd in de geselecteerde tips. Hoe hoger het percentage, hoe meer vertrouwen je kunt hebben dat je transactie is verwerkt.

Dit lijkt misschien te leiden tot een slechte gebruikerservaring, maar dat is niet het geval. Als Alice 10 MagicDAGTokens naar Bob verstuurt, hoeft ze zich geen zorgen te maken over het selecteren van de juiste tips in de grafiek. Onder de motorkap doet haar wallet ongeveer het volgende:

  • De zware tips selecteren (dit zijn de tips met de meeste bevestigingen).
  • Het pad terugvolgen via eerdere transacties om te garanderen dat de tips voldoende saldo hebben.
  • Eenmaal tevreden wordt de transactie toegevoegd aan de DAG, waarmee eerdere transacties worden bevestigd.
Voor Alice zit dit eruit als een gewone cryptocurrency-workflow. Ze vult het adres van Bob en het bedrag dat ze uit wil geven in en drukt daarna op versturen. Bovenstaande stappen vormen de Proof of Work die iedere netwerkdeelnemer moet uitvoeren bij het creëren van een transactie.



Voor- en nadelen van directed acyclic graphs

Voordelen van DAG's

Snelheid

Omdat er geen blocks gegenereerd hoeven te worden, kan iedereen voortdurend transacties naar het netwerk sturen. Het aantal transacties dat gebruikers kunnen versturen is onbeperkt, zo lang er maar eerdere transacties worden bevestigd.


Geen mining

DAG's maken geen gebruik van PoW-consensusalgoritmes. Hun ecologische voetafdruk is dan ook slechts een fractie van die van cryptocurrencies die afhankelijk zijn van mining voor het beveiligen van hun blockchain-netwerk.


Geen transactiekosten

Omdat er geen miners zijn, hoeven gebruikers geen vergoeding te betalen om hun transacties te versturen. Dat gezegd hebbende, vereisen sommige implementaties dat er een kleine vergoeding wordt betaald aan speciale nodes. Lage kosten (of beter, geen kosten) zijn aantrekkelijk voor het doen van microbetalingen, iets dat met hogere netwerkkosten niet mogelijk zou zijn.


Geen schaalbaarheidsproblemen

Omdat er geen blocks worden gemined, kunnen DAG's veel meer transacties per seconde verrichten dan traditionele blockchain-netwerken. Voorstanders van DAG's zijn van mening dat ze hierdoor bijzonder geschikt zijn voor het Internet of Things (IoT), waarin allerlei machines met elkaar communiceren.


Nadelen van DAG's

Niet helemaal gedecentraliseerd

Protocollen die gebruik maken van DAG's bevatten verschillende elementen van centralisatie. In sommige implementaties wordt dit gepresenteerd als een kortetermijnoplossing voor het opstarten van het netwerk, maar het valt nog te bezien of DAG's ook zonder tussenkomst van derden kunnen overleven. Zo niet, dan ontstaan er tal van aanvalsvectoren die het netwerk uiteindelijk onbruikbaar kunnen maken.


Niet getest op grote schaal

Hoewel op DAG gebaseerde cryptocurrencies al een aantal jaar bestaan, hebben ze nog een lange weg te gaan voordat ze breed zullen worden gebruikt. Als zodanig is het moeilijk om te voorspellen welke redenen men in de toekomst kan hebben om het systeem te gebruiken.


Tot slot

Directed acyclic graphs zijn een interessante technologie voor het bouwen van cryptocurrency-netwerken. Tot nu toe zijn er relatief weinig projecten die deze gegevensstructuur gebruiken en vaak staan deze projecten nog in de kinderschoenen. 
Dat gezegd hebbende: als ze hun potentieel kunnen waarmaken, kunnen ze de basis vormen van enorm schaalbare systemen. DAG-technologie kan veel betekenen voor toepassingen die een hoge doorvoersnelheid en geen of lage kosten vereisen, zoals het Internet of Things en microbetalingen.