Van blokketting tot DAG: ontslae te raak van tussengangers

In hierdie artikel sal ek jou vertel van DAG (Directed Acyclic Graph) en die toepassing daarvan in verspreide grootboeke, en ons sal dit vergelyk met blockchain.

Van blokketting tot DAG: ontslae te raak van tussengangers

DAG is niks nuuts in die wêreld van kripto-geldeenhede nie. Jy het dalk daarvan gehoor as 'n oplossing vir blokkettingskaalbaarheidsprobleme. Maar vandag praat ons nie oor skaalbaarheid nie, maar oor wat kripto-geldeenhede anders maak as alles anders: desentralisasie, gebrek aan tussengangers en sensuurweerstand.

Van blokketting tot DAG: ontslae te raak van tussengangers

Ek sal jou ook wys dat DAG eintlik meer sensuurbestand is en dat daar geen tussengangers is om toegang tot die grootboek te kry nie.

Van blokketting tot DAG: ontslae te raak van tussengangers

In die blokkettings waarmee ons bekend is, het gebruikers nie direkte toegang tot die grootboek self nie. Wanneer jy 'n transaksie by die grootboek wil voeg, moet jy die blokprodusent (a.k.a. "myner") "vra" om dit te doen. Dit is die mynwerkers wat besluit watter transaksie om by die volgende blok te voeg en watter nie. Dit is die mynwerkers wat eksklusiewe toegang tot blokke het en die reg om te besluit wie se transaksie vir insluiting in die grootboek aanvaar sal word.

Mynwerkers is tussengangers wat tussen jou en die verspreide grootboek staan.

Van blokketting tot DAG: ontslae te raak van tussengangers

In die praktyk beheer gewoonlik 'n klein aantal mynwerkpoele gesamentlik meer as die helfte van die netwerk se rekenaarkrag. Vir Bitcoin is dit vier poele, vir Ethereum - twee. As hulle saamspan, kan hulle enige transaksies blokkeer wat hulle wil hê.

Van blokketting tot DAG: ontslae te raak van tussengangers

Oor die afgelope paar jaar is baie variasies van blokkettings voorgestel, wat verskil in die beginsels van die keuse van blokprodusente. Maar die blokprodusente gaan self nêrens nie, hulle “staan ​​steeds by die versperring”: elke transaksie moet deur die blokprodusent gaan, en as hy dit nie aanvaar nie, dan bestaan ​​die transaksie in werklikheid nie.

Van blokketting tot DAG: ontslae te raak van tussengangers

Dit is 'n onvermydelike probleem met blockchain. En as ons dit wil oplos, moet ons die ontwerp radikaal verander en heeltemal van blokke en blokprodusente ontslae raak. En in plaas daarvan om 'n ketting van blokke te bou, sal ons die transaksies self verbind, insluitend die hashes van verskeie voriges in elke transaksie. As gevolg hiervan kry ons 'n struktuur wat in wiskunde bekend staan ​​as 'n gerigte asikliese grafiek - DAG.

Nou het almal direkte toegang tot die register, sonder tussengangers. Wanneer jy 'n transaksie by die grootboek wil voeg, voeg jy dit eenvoudig by. Jy kies verskeie ouertransaksies, voeg jou data by, teken en stuur jou transaksie aan eweknieë op die netwerk. Gereed. Daar is niemand om jou te keer om dit te doen nie, so jou transaksie is reeds op die grootboek.

Dit is die mees gedesentraliseerde, mees sensuurvaste manier om transaksies sonder tussengangers by die grootboek te voeg. Omdat almal eenvoudig hul transaksies by die register voeg sonder om toestemming van iemand te vra.

Van blokketting tot DAG: ontslae te raak van tussengangers

DAG's kan as die derde fase in die evolusie van registers beskou word. Eers was daar gesentraliseerde registers, waar een party toegang daartoe beheer het. Toe kom blokkettings, wat reeds verskeie beheerders gehad het wat transaksies in die grootboek aangeteken het. En laastens, daar is glad nie beheerders in die DAG nie; gebruikers voeg hul transaksies direk by.

Van blokketting tot DAG: ontslae te raak van tussengangers

Noudat ons hierdie vryheid het, behoort dit nie tot chaos te lei nie. Ons moet 'n ooreenkoms hê oor die stand van die register. En hierdie ooreenkoms, of konsensus, beteken gewoonlik ooreenkoms oor twee dinge:

  1. Wat het gebeur?
  2. In watter volgorde het dit gebeur?

Ons kan die eerste vraag maklik beantwoord: sodra 'n korrek geskepte transaksie by die grootboek gevoeg is, het dit plaasgevind. En tydperk. Inligting hieroor kan alle deelnemers op verskillende tye bereik, maar uiteindelik sal alle nodusse hierdie transaksie ontvang en weet dat dit gebeur het.

As dit 'n blokketting was, sou mynwerkers besluit wat gebeur. Wat ook al die mynwerker besluit om in 'n blok in te sluit, is wat gebeur. Alles wat hy nie in die blok insluit nie, gebeur nie.

In blokkettings los mynwerkers ook 'n tweede probleem van konsensus op: orde. Hulle word toegelaat om die transaksies binne die blok te bestel soos hulle wil.

Hoe om die volgorde van transaksies in 'n DAG te bepaal?

Van blokketting tot DAG: ontslae te raak van tussengangers

Net omdat ons grafiek gerig is, het ons reeds 'n orde. Elke transaksie verwys na een of meer vorige, ouer transaksies. Ouers verwys op hul beurt na hul ouers, ensovoorts. Ouers verskyn uiteraard voor kindertransaksies. As enige van die transaksies bereik kan word deur ouer-kind skakel oorgange, weet ons presies die volgorde tussen die transaksies in daardie ketting van transaksies.

Van blokketting tot DAG: ontslae te raak van tussengangers

Maar die volgorde tussen transaksies kan nie altyd uit die vorm van die grafiek alleen bepaal word nie. Byvoorbeeld, wanneer twee transaksies op parallelle takke van die grafiek lê.

Van blokketting tot DAG: ontslae te raak van tussengangers

Om dubbelsinnigheid in sulke gevalle op te los, maak ons ​​staat op sogenaamde bestellingverskaffers. Ons noem hulle ook “getuies”. Dit is gewone gebruikers wie se taak dit is om voortdurend transaksies op 'n ordelike wyse na die netwerk te stuur, m.a.w. sodat elkeen van hul vorige transaksies bereik kan word deur oorgange langs die ouer-kind-skakels. Bestellingverskaffers is vertroude gebruikers, en die hele netwerk maak daarop staat om nie hierdie reël te oortree nie. Ten einde rasioneel vertrou hulle, ons vereis dat elke bestellingverskaffer 'n bekende (nie-anonieme) persoon of organisasie moet wees en iets het om te verloor as dit die reëls oortree, soos reputasie of besigheid gebaseer op vertroue.

Van blokketting tot DAG: ontslae te raak van tussengangers

Bestellingsverskaffers word deur gebruikers gekies, en elke gebruiker sluit 'n lys van sy vertroude verskaffers in by elke transaksie wat dit na die netwerk stuur. Hierdie lys bestaan ​​uit 12 verskaffers. Dit is 'n klein genoeg getal vir 'n persoon om die identiteit en reputasie van elkeen van hulle te verifieer, en genoeg om te verseker dat die netwerk aanhou funksioneer in die geval van onvermydelike probleme met 'n minderheid van bestellingverskaffers.

Hierdie lys verskaffers verskil van gebruiker tot gebruiker, maar die lyste van naburige transaksies kan met tot een verskaffer verskil.

Van blokketting tot DAG: ontslae te raak van tussengangers

Noudat ons bestellingverskaffers het, kan ons hul transaksies in 'n DAG isoleer en alle ander transaksies bestel rondom die bestelling wat deur hulle geskep is. Dit is moontlik om so 'n algoritme te skep (sien. Obyte Witskrif vir tegniese besonderhede).

Maar die volgorde van die hele netwerk kan nie onmiddellik bepaal word nie; ons het tyd nodig vir die bestellingsverskaffers om 'n voldoende aantal van hul transaksies te stuur om die finale volgorde van vorige transaksies te verifieer.

En aangesien die volgorde slegs deur die posisies van die verskaffers se transaksies in die DAG bepaal word, sal alle nodusse op die netwerk vroeër of later al die transaksies ontvang en tot dieselfde gevolgtrekking kom oor die volgorde van die transaksies.

Van blokketting tot DAG: ontslae te raak van tussengangers

So, ons het ooreenkoms oor wat ons dink gebeur het: enige transaksie wat in die DAG beland, het plaasgevind. Ons het ook ooreenkoms oor die volgorde van gebeure: dit blyk óf uit die verhoudings van transaksies, óf word afgelei uit die volgorde van transaksies wat deur bestellingverskaffers gestuur word. Ons het dus 'n konsensus.

Van blokketting tot DAG: ontslae te raak van tussengangers

Ons het hierdie weergawe van konsensus in Obyte. Alhoewel toegang tot die Obyte grootboek heeltemal gedesentraliseerd is, is die konsensus oor die volgorde van transaksies steeds gesentraliseer omdat 10 uit 12 verskaffers word deur die skepper (Anton Churyumov) beheer, en slegs twee van hulle is onafhanklik. Ons is op soek na kandidate wat bereid is om een ​​van die onafhanklike bestellingsverskaffers te word om ons te help om die ordening van die grootboek te desentraliseer.

Onlangs het 'n derde onafhanklike kandidaat na vore gekom wat bereid is om 'n bestellingverskaffernodus te installeer en in stand te hou - die Universiteit van Nicosia.

Van blokketting tot DAG: ontslae te raak van tussengangers

Nou hoe beheer ons dubbelbesteding?

Volgens die reëls, as twee transaksies gevind word wat dieselfde munt spandeer, wen die transaksie wat eerste kom in die finale volgorde van alle transaksies. Die tweede een word ongeldig gemaak deur die konsensusalgoritme.

Van blokketting tot DAG: ontslae te raak van tussengangers
As dit moontlik is om orde tussen twee transaksies te vestig wat dieselfde muntstuk spandeer (deur ouer-kind-verbindings), dan verwerp alle nodusse onmiddellik so 'n poging om te verdubbel.

Van blokketting tot DAG: ontslae te raak van tussengangers

In die geval dat die bestelling nie sigbaar is vanaf die ouerverhoudings tussen twee sulke transaksies nie, word hulle albei in die grootboek aanvaar, en ons sal moet wag vir konsensus en vestiging van die bestelling tussen hulle deur die bestellingverskaffers te gebruik. Dan sal die vorige transaksie wen, en die tweede een sal ongeldig word.

Van blokketting tot DAG: ontslae te raak van tussengangers

Selfs al word die tweede transaksie ongeldig, bly dit steeds in die register omdat dit reeds daaropvolgende transaksies het wat daarna verwys, wat niks geskend het nie en nie geweet het dat hierdie transaksie in die toekoms ongeldig sou word nie. Andersins sal ons die ouer van goeie daaropvolgende transaksies moet verwyder, wat die hoofbeginsel van die netwerk sal oortree - enige korrekte transaksie word in die grootboek aanvaar.

Van blokketting tot DAG: ontslae te raak van tussengangers

Dit is 'n baie belangrike reël wat toelaat dat die hele stelsel bestand is teen sensuurpogings. 

Kom ons stel ons voor dat alle bestellingsverskaffers saamspan in 'n poging om een ​​spesifieke transaksie te "sensuur". Hulle kan dit ignoreer en dit nooit as 'n "ouer" vir hul transaksies kies nie, maar dit is nie genoeg nie, die transaksie kan steeds indirek ingesluit word as die ouer van 'n ander transaksie wat uitgereik is deur enige gebruiker op die netwerk wat nie saamspan nie. Met verloop van tyd sal so 'n transaksie meer en meer kinders, kleinkinders en agterkleinkinders van gewone gebruikers ontvang, wat soos 'n sneeubal groei, en alle ooreengekome bestellingsverskaffers sal hierdie transaksies ook moet ignoreer. Uiteindelik sal hulle die hele netwerk moet sensor, wat neerkom op sabotasie.

Van blokketting tot DAG: ontslae te raak van tussengangers

Op hierdie manier bly die DAG sensuurbestand selfs al is daar samespanning tussen bestellingverskaffers, en oortref daardeur die sensuurbestande blokketting waarin ons niks kan doen as die mynwerkers besluit om nie enige van die transaksies in te sluit nie. En dit volg uit die hoofeiendom van DAG: deelname aan die register is heeltemal onafhanklik en sonder tussengangers, en transaksies is onomkeerbaar.

Bron: will.com

Voeg 'n opmerking