Van blockchain naar DAG: afscheid van tussenpersonen

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

Van blockchain naar DAG: afscheid van tussenpersonen

DAG is niet iets nieuws in de wereld van cryptocurrency. Misschien heb je erover gehoord als een oplossing voor de schaalbaarheidsproblemen van blockchains. Maar vandaag zullen we het niet over schaalbaarheid hebben, maar over wat cryptocurrencies onderscheidt van alles: decentralisatie, het ontbreken van tussenpersonen en weerstand tegen censuur.

Van blockchain naar DAG: afscheid van tussenpersonen

Ook zal ik je laten zien dat DAG in feite weerstandiger is tegen censuur, en dat er geen tussenpersonen zijn voor toegang tot het register.

Van blockchain naar DAG: afscheid van tussenpersonen

In de gebruikelijke blockchains hebben gebruikers geen directe toegang tot het register zelf. Wanneer je een transactie aan het register wilt toevoegen, moet je de blokproducent (block producer, ook wel 'miner' genoemd) vragen dit te doen. Het zijn de miners die beslissen welke transactie aan de volgende block kan worden toegevoegd en welke niet. Slechts zij hebben exclusieve toegang tot de blocks en het recht om te bepalen wiens transactie wordt geaccepteerd voor toevoeging aan het register.

Miners zijn de tussenpersonen die tussen jou en het gedistribueerde register staan.

Van blockchain naar DAG: afscheid van tussenpersonen

In de praktijk controleert meestal een klein aantal mijnpoolen gezamenlijk meer dan de helft van de rekenkracht van het netwerk. Voor Bitcoin zijn dat vier pools, voor Ethereum zijn dat er twee. In het geval van samenspanning kunnen zij elke gewenste transactie blokkeren.

Van blockchain naar DAG: afscheid van tussenpersonen

In de afgelopen jaren zijn er tal van variaties van blockchains voorgesteld, die verschillen in de principes van de keuze van blokproducenten. Maar de blokproducenten zelf zijn er nog steeds, zij staan nog steeds 'aan de slagboom': elke transactie moet door de blokproducent gaan, en als hij deze niet accepteert, bestaat de transactie in feite niet.

Van blockchain naar DAG: afscheid van tussenpersonen

Dit is een onvermijdelijk probleem bij blockchain. En als we dit willen oplossen, moeten we het ontwerp radicaal veranderen en volledig afzien van blocks en blokproducenten. In plaats van een keten van blocks op te bouwen, zullen we de transacties zelf verbinden, waarbij we in elke transactie hashes van verschillende voorgaande transacties opnemen. Uiteindelijk 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 je een transactie aan het register wilt toevoegen, voeg je deze eenvoudigweg toe. Je kiest enkele oudertransacties, voegt je gegevens toe, ondertekent en verstuurt je transactie in het netwerk. Klaar. Er is niemand die je hierin kan tegenhouden, dus je transactie staat al in het register.

Dit is de meest gedecentraliseerde, meest ongevoelige tegen censuur manier om transacties toe te voegen aan het register zonder tussenpersonen. Want elke geĆÆnteresseerde kan gewoon zijn transacties aan het register toevoegen, zonder iemand om toestemming te vragen.

Van blockchain naar DAG: afscheid van tussenpersonen

DAG kan worden beschouwd als de derde fase van de evolutie van registraties. Eerst waren er gecentraliseerde registers, waar ƩƩn partij de toegang controleerde. Toen kwamen de blockchains, waarin meerdere controleurs waren die transacties in het register opschreven. En ten slotte is er in DAG helemaal geen controleur, gebruikers voegen hun transacties direct toe.

Van blockchain naar DAG: afscheid van tussenpersonen

Nu we deze vrijheid hebben, mag dit geen chaos leiden. We moeten overeenstemming hebben over de staat van het register. Deze overeenstemming, of consensus, betekent meestal overeenstemming over twee zaken:

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

Op de eerste vraag kunnen we gemakkelijk antwoorden: zodra een correct gemaakte transactie in het register is toegevoegd, vond deze plaats. En dat is het. Informatie hierover kan op verschillende tijden bij alle deelnemers aankomen, maar uiteindelijk zullen alle knooppunten deze transactie ontvangen en weten dat deze heeft plaatsgevonden.

Als het een blockchain was, zouden miners bepalen wat er gebeurt. Alles wat de miner besluit op te nemen in de blok, gebeurt. Alles wat hij niet opneemt in het blok, gebeurt niet.

In blockchains lossen miners ook het tweede probleem van consensus op: de volgorde. Ze mogen transacties binnen het blok op elke gewenste manier ordenen.

Hoe bepalen we de volgorde van transacties in DAG?

Van blockchain naar DAG: afscheid van tussenpersonen

Slechts omdat onze graf gericht is, hebben we al een bepaalde ordening. Elke transactie verwijst naar een of meer eerdere, oudertransacties. Ouders verwijzen op hun beurt naar hun ouders, en zo verder. Ouders verschijnen uiteraard vóór hun kinderen. Als een van de transacties kan worden bereikt via de "ouder-kind"-links, weten we precies de volgorde tussen de transacties in deze transactieketen.

Van blockchain naar DAG: afscheid van tussenpersonen

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

Van blockchain naar DAG: afscheid van tussenpersonen

Om ambiguĆÆteit in dergelijke gevallen op te lossen, vertrouwen we op zogenaamde volgordeproviders. We noemen ze ook wel 'getuigen'. Dit zijn gewone gebruikers wiens taak het is om voortdurend transacties in het netwerk te verzenden in een bepaalde volgorde, dat wil zeggen, zodat elke eerdere transactie kan worden bereikt via de "ouder-kind"-links. Volgordeproviders zijn betrouwe gebruikers, en het hele netwerk vertrouwt erop dat zij deze regel niet zullen overtreden. Om hen redelijk te vertrouwen, eisen we dat elke volgordeprovider een bekende (niet-anonieme) persoon of organisatie is en iets heeft dat ze kunnen verliezen als ze de regels overtreden, zoals een reputatie of een vertrouwensbasis in hun bedrijf.

Van blockchain naar DAG: afscheid van tussenpersonen

Volgordeproviders worden gekozen door de gebruikers, en elke gebruiker voegt een lijst van zijn vertrouwde providers toe aan elke transactie die hij naar het netwerk verzendt. Deze lijst bestaat uit 12 providers. Dit is een redelijk klein aantal, zodat iemand de identiteiten en reputaties van elk van hen kan controleren, en groot genoeg om ervoor te zorgen dat het netwerk blijft functioneren in geval van onvermijdelijke problemen met een minderheid van de volgordeproviders.

Deze lijst van providers varieert van gebruiker tot gebruiker, maar de lijsten van aangrenzende transacties kunnen maximaal ƩƩn provider van elkaar verschillen.

Van blockchain naar DAG: afscheid van tussenpersonen

Nu we volgordeproviders hebben, kunnen we hun transacties in de DAG identificeren en alle andere transacties ordenen rond de volgorde die door hen is gecreƫerd. Er is een mogelijkheid om zo'n algoritme te creƫren (zie Obyte White Paper voor technische details).

Maar de volgorde in het netwerk kan niet onmiddellijk worden vastgesteld; we hebben tijd nodig zodat de ordeningsproviders voldoende van hun transacties kunnen verzenden om de uiteindelijke volgorde van eerdere transacties te bevestigen.

En aangezien de volgorde alleen wordt bepaald door de posities van de transacties van de providers in de DAG, zullen alle nodes in het netwerk vroeg of laat alle transacties ontvangen en tot dezelfde conclusie komen over de volgorde van de transacties.

Van blockchain naar DAG: afscheid van tussenpersonen

Dus we hebben overeenstemming over wat er is gebeurd: elke transactie die in de DAG is gekomen, heeft plaatsgevonden. We hebben ook overeenstemming over de volgorde van gebeurtenissen: deze is ofwel zichtbaar vanuit de ouder-kindrelaties van transacties, of wordt afgeleid uit de volgorde van transacties die door de ordeningsproviders zijn verzonden. Dit betekent dat we consensus hebben.

Van blockchain naar DAG: afscheid van tussenpersonen

Dit type consensus hebben we in Obyte. Ondanks dat de toegang tot het Obyte-register volledig gedecentraliseerd is, is de consensus over de volgorde van transacties nog steeds gecentraliseerd, aangezien 10 van de 12 providers worden gecontroleerd door de oprichter (Anton Churiumov), en slechts twee van hen zijn onafhankelijk. We zoeken kandidaten die willen fungeren als een van de onafhankelijke ordeningsproviders om ons te helpen de ordening in het register te decentraliseren.

Onlangs is er een derde onafhankelijke kandidaat opgekomen die een node van een ordeningsprovider wil opzetten en onderhouden - de Universiteit van Nicosia.

Van blockchain naar DAG: afscheid van tussenpersonen

Hoe controleren we nu dubbele uitgaven (double-spends)?

Volgens de regels, wanneer twee transacties worden ontdekt die dezelfde munt spenderen, wint de transactie die eerder in de uiteindelijke volgorde van alle transacties staat. De tweede wordt ongeldig gemaakt door het consensusalgoritme.

Van blockchain naar DAG: afscheid van tussenpersonen
Als het mogelijk is om de volgorde tussen twee transacties die dezelfde munt spenderen vast te stellen (op basis van ouder-kindrelaties), dan wijzen alle nodes onmiddellijk zo'n poging tot dubbele uitgave af.

Van blockchain naar DAG: afscheid van tussenpersonen

In het geval dat de volgorde niet zichtbaar is vanuit de ouderrelaties tussen dergelijke transacties, worden beide geaccepteerd in het register, en moeten we wachten op consensus en de vaststelling van de volgorde tussen hen door de ordeningsproviders. Dan wint de vroegere transactie, en de tweede wordt ongeldig.

Van blockchain naar DAG: afscheid van tussenpersonen

Hoewel de tweede transactie ongeldig wordt, blijft deze toch in het register staan omdat deze al opvolgende transacties heeft die naar haar verwijzen, welke niets hebben geschonden en niet wisten dat deze transactie in de toekomst ongeldig zou worden. Anders zouden we het ouderrecord van goede opvolgende transacties moeten verwijderen, wat het belangrijkste principe van het netwerk zou schenden: elke geldige transactie wordt in het register geaccepteerd.

Van blockchain naar DAG: afscheid van tussenpersonen

Dit is een zeer belangrijke regel die het hele systeem in staat stelt om bestand te zijn tegen pogingen tot censuur.Ā 

Laten we ons voorstellen dat alle orderproviders in een samenzwering samenkomen om ƩƩn specifieke transactie te 'censureren'. Ze kunnen deze negeren en nooit 'ouder' kiezen voor hun transacties, maar dat is niet genoeg; deze transactie kan nog steeds indirect worden opgenomen als ouder van een andere transactie die is uitgebracht door een gebruiker van het netwerk die niet betrokken is bij de samenzwering. Na verloop van tijd zal zo'n transactie steeds meer kinderen, kleinkinderen en achterkleinkinderen krijgen van gewone gebruikers, zich uitbreidend als een sneeuwbal, en alle samengekomen orderproviders zullen ook deze transacties moeten negeren. Uiteindelijk zullen ze de hele netwerk moeten censureren, wat gelijkstaat aan sabotage.

Van blockchain naar DAG: afscheid van tussenpersonen

Hierdoor blijft de DAG bestand tegen censuur, zelfs als er een samenzwering van orderproviders plaatsvindt, waardoor het superieur is aan de blockchain in de weerstand tegen censuur, waarbij we niets kunnen doen als miners besluiten enige van de transacties niet op te nemen. Dit volgt uit de belangrijkste eigenschap van de DAG: deelname aan het register is volledig onafhankelijk en zonder tussenpersonen, terwijl transacties onomkeerbaar zijn.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster