Van blockchain naar DAG: het wegwerken van tussenpersonen

In dit artikel zal ik je vertellen over DAG (Directed Acyclic Graph) en de toepassing ervan in gedistribueerde grootboeken, en we zullen het vergelijken met blockchain.

Van blockchain naar DAG: het wegwerken van tussenpersonen

DAG is niets nieuws in de wereld van cryptocurrencies. Je hebt er misschien wel eens van gehoord als een oplossing voor problemen met de schaalbaarheid van blockchain. Maar vandaag zullen we het niet hebben over schaalbaarheid, maar over wat cryptocurrencies anders maakt dan al het andere: decentralisatie, gebrek aan tussenpersonen en weerstand tegen censuur.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Ik zal je ook laten zien dat DAG feitelijk beter bestand is tegen censuur en dat er geen tussenpersonen zijn die toegang hebben tot het grootboek.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Bij de blockchains die wij kennen, hebben gebruikers geen directe toegang tot het grootboek zelf. Wanneer u een transactie aan het grootboek wilt toevoegen, moet u de blokproducent (ook wel ‘miner’ genoemd) ‘vragen’ om dit te doen. Het zijn de miners die beslissen welke transactie ze aan het volgende blok toevoegen en welke niet. Het zijn de mijnwerkers die exclusieve toegang hebben tot blokken en het recht om te beslissen wiens transactie wordt geaccepteerd voor opname in het grootboek.

Mijnwerkers zijn tussenpersonen die tussen u en het gedistribueerde grootboek staan.

Van blockchain naar DAG: het wegwerken van tussenpersonen

In de praktijk controleert meestal een klein aantal minerpools gezamenlijk meer dan de helft van de rekenkracht van het netwerk. Voor Bitcoin zijn dit vier pools, voor Ethereum twee. Als ze samenspannen, kunnen ze elke gewenste transactie blokkeren.

Van blockchain naar DAG: het wegwerken van tussenpersonen

De afgelopen jaren zijn er veel varianten van blockchains voorgesteld, die verschillen in de principes van het kiezen van blokproducenten. Maar de blokproducenten zelf gaan nergens heen, ze staan ​​nog steeds “aan de barrière”: elke transactie moet via de blokproducent gaan, en als hij deze niet accepteert, bestaat de transactie feitelijk niet.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Dit is een onvermijdelijk probleem met blockchain. En als we het willen oplossen, moeten we het ontwerp radicaal veranderen en volledig afstappen van blokken en blokproducenten. En in plaats van een keten van blokken te bouwen, zullen we de transacties zelf met elkaar verbinden, inclusief de hashes van verschillende voorgaande transacties in elke transactie. Als resultaat krijgen we een structuur die in de wiskunde bekend staat als een gerichte acyclische grafiek - DAG.

Nu heeft iedereen directe toegang tot het register, zonder tussenpersonen. Wanneer u een transactie aan het grootboek wilt toevoegen, voegt u deze eenvoudig toe. U selecteert meerdere bovenliggende transacties, voegt uw gegevens toe, ondertekent en verzendt uw transactie naar peers op het netwerk. Klaar. Er is niemand die u ervan weerhoudt dit te doen, dus uw transactie staat al in het grootboek.

Dit is de meest gedecentraliseerde en meest censuurbestendige manier om transacties zonder tussenpersonen aan het grootboek toe te voegen. Omdat iedereen simpelweg zijn transacties aan het register toevoegt, zonder aan iemand toestemming te vragen.

Van blockchain naar DAG: het wegwerken van tussenpersonen

DAG's kunnen worden beschouwd als de derde fase in de evolutie van registers. Eerst waren er gecentraliseerde registers, waar één partij de toegang daartoe controleerde. Toen kwamen blockchains, die al verschillende controllers hadden die transacties in het grootboek registreerden. En ten slotte zijn er helemaal geen controllers in de DAG; gebruikers voegen hun transacties rechtstreeks toe.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Nu we deze vrijheid hebben, mag dit niet tot chaos leiden. We moeten overeenstemming hebben over de staat van het register. En deze overeenstemming, of consensus, betekent meestal overeenstemming over twee dingen:

  1. Wat is er gebeurd?
  2. In welke volgorde gebeurde dit?

De eerste vraag kunnen we eenvoudig beantwoorden: zodra een correct aangemaakte transactie aan het grootboek is toegevoegd, heeft deze plaatsgevonden. En punt. Informatie hierover kan alle deelnemers op verschillende tijdstippen bereiken, maar uiteindelijk zullen alle knooppunten deze transactie ontvangen en weten dat deze heeft plaatsgevonden.

Als het een blockchain zou zijn, zouden mijnwerkers beslissen wat er gebeurt. Wat de mijnwerker ook besluit op te nemen in een blok, dat is wat er gebeurt. Alles wat hij niet in het blok opneemt, gebeurt niet.

In blockchains lossen mijnwerkers ook een tweede consensusprobleem op: orde. Zij mogen de transacties binnen het blok naar eigen inzicht ordenen.

Hoe bepaal ik de volgorde van transacties in een DAG?

Van blockchain naar DAG: het wegwerken van tussenpersonen

Alleen omdat onze grafiek gericht is, hebben we al enige orde. Elke transactie verwijst naar een of meer voorgaande bovenliggende transacties. Ouders verwijzen op hun beurt naar hun ouders, enzovoort. Ouders verschijnen uiteraard vóór kindtransacties. Als een van de transacties kan worden bereikt via ouder-kind-linkovergangen, weten we precies de volgorde tussen de transacties in die keten van transacties.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Maar de volgorde tussen transacties kan niet altijd alleen op basis van de vorm van de grafiek worden bepaald. Bijvoorbeeld wanneer twee transacties op parallelle takken van de grafiek liggen.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Om onduidelijkheden in dergelijke gevallen op te lossen, doen wij een beroep op zogenaamde orderaanbieders. We noemen ze ook wel ‘getuigen’. Dit zijn gewone gebruikers wiens taak het is om voortdurend op een ordelijke manier transacties naar het netwerk te verzenden, d.w.z. zodat elk van hun eerdere transacties kan worden bereikt via overgangen langs de ouder-kind-links. Orderaanbieders zijn vertrouwde gebruikers en het hele netwerk vertrouwt erop dat ze deze regel niet overtreden. Om te rationeel Als u hen vertrouwt, eisen we dat elke orderaanbieder een bekende (niet-anonieme) persoon of organisatie is en iets te verliezen heeft als hij de regels overtreedt, zoals reputatie of zakendoen op basis van vertrouwen.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Orderproviders worden door gebruikers gekozen en elke gebruiker neemt een lijst met vertrouwde providers op bij elke transactie die hij naar het netwerk verzendt. Deze lijst bestaat uit 12 aanbieders. Dit aantal is klein genoeg om de identiteit en reputatie van elk van hen te kunnen verifiëren, en voldoende om ervoor te zorgen dat het netwerk blijft functioneren in het geval van onvermijdelijke problemen met een minderheid van de orderaanbieders.

Deze lijst met aanbieders varieert van gebruiker tot gebruiker, maar de lijsten met aangrenzende transacties kunnen per aanbieder verschillen.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Nu we orderaanbieders hebben, kunnen we hun transacties isoleren in een DAG en alle andere transacties ordenen rond de door hen aangemaakte order. Het is mogelijk om een ​​dergelijk algoritme te maken (zie. Obyte-witboek voor technische details).

Maar de volgorde van het hele netwerk kan niet onmiddellijk worden bepaald; we hebben tijd nodig voor de orderaanbieders om een ​​voldoende aantal van hun transacties te verzenden om de definitieve volgorde van eerdere transacties te verifiëren.

En omdat de volgorde alleen wordt bepaald door de posities van de transacties van de providers in de DAG, zullen alle knooppunten op het netwerk vroeg of laat alle transacties ontvangen en tot dezelfde conclusie komen met betrekking tot de volgorde van de transacties.

Van blockchain naar DAG: het wegwerken van tussenpersonen

We zijn het dus eens over wat volgens ons is gebeurd: elke transactie die in de DAG terechtkomt, is gebeurd. Ook over de volgorde van de gebeurtenissen zijn we het eens: deze blijkt óf uit de relaties tussen de transacties, óf wordt afgeleid uit de volgorde van de transacties die door de orderaanbieders worden verzonden. We hebben dus een consensus.

Van blockchain naar DAG: het wegwerken van tussenpersonen

We hebben deze versie van consensus in Obyte. Hoewel de toegang tot het Obyte-grootboek volledig gedecentraliseerd is, is de consensus over de volgorde van transacties nog steeds gecentraliseerd Tien van de twaalf aanbieders worden gecontroleerd door de maker (Anton Churyumov), en slechts twee daarvan zijn onafhankelijk. We zijn op zoek naar kandidaten die bereid zijn een van de onafhankelijke orderaanbieders te worden om ons te helpen de bestelling van het grootboek te decentraliseren.

Onlangs is er een derde onafhankelijke kandidaat naar voren gekomen die bereid is een knooppunt voor orderaanbieders te installeren en te onderhouden: de Universiteit van Nicosia.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Hoe kunnen we dubbele uitgaven onder controle houden?

Volgens de regels wint de transactie die als eerste komt in de uiteindelijke volgorde van alle transacties als twee transacties dezelfde munt uitgeven. De tweede wordt ongeldig verklaard door het consensusalgoritme.

Van blockchain naar DAG: het wegwerken van tussenpersonen
Als het mogelijk is om orde te scheppen tussen twee transacties waarbij dezelfde munt wordt uitgegeven (via ouder-kindverbindingen), dan wijzen alle knooppunten een dergelijke poging om de uitgaven te verdubbelen onmiddellijk af.

Van blockchain naar DAG: het wegwerken van tussenpersonen

In het geval dat de order niet zichtbaar is uit de bovenliggende relaties tussen twee dergelijke transacties, worden ze beide geaccepteerd in het grootboek, en zullen we moeten wachten op consensus en vaststelling van de order tussen hen met behulp van de orderaanbieders. Dan wint de eerdere transactie en wordt de tweede ongeldig.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Ook al wordt de tweede transactie ongeldig, deze blijft nog steeds in het register staan ​​omdat er al daaropvolgende transacties zijn die ernaar verwijzen, die niets overtreden en niet wisten dat deze transactie in de toekomst ongeldig zou worden. Anders zouden we de ouder van goede daaropvolgende transacties moeten verwijderen, wat in strijd zou zijn met het hoofdprincipe van het netwerk: elke correcte transactie wordt in het grootboek geaccepteerd.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Dit is een zeer belangrijke regel die ervoor zorgt dat het hele systeem bestand is tegen censuurpogingen. 

Laten we ons voorstellen dat alle orderaanbieders samenspannen in een poging één specifieke transactie te ‘censureren’. Ze kunnen het negeren en het nooit als 'ouder' voor hun transacties kiezen, maar dat is niet genoeg. De transactie kan nog steeds indirect worden opgenomen als de moedermaatschappij van een andere transactie die wordt uitgegeven door een gebruiker op het netwerk die niet samenspant. In de loop van de tijd zal een dergelijke transactie steeds meer kinderen, kleinkinderen en achterkleinkinderen van gewone gebruikers opleveren, die als een sneeuwbal zullen groeien, en alle overeengekomen orderaanbieders zullen deze transacties ook moeten negeren. Uiteindelijk zullen ze het hele netwerk moeten censureren, wat neerkomt op sabotage.

Van blockchain naar DAG: het wegwerken van tussenpersonen

Op deze manier blijft de DAG censuurbestendig, zelfs als er sprake is van samenspanning tussen orderaanbieders, en overtreft daarmee de censuurbestendige blockchain waarin we niets kunnen doen als de mijnwerkers besluiten geen van de transacties op te nemen. En dit volgt uit de belangrijkste eigenschap van DAG: deelname aan het register is volledig onafhankelijk en zonder tussenpersonen, en transacties zijn onomkeerbaar.

Bron: www.habr.com

Voeg een reactie