Od blockchainu k DAG: zbavenie sa sprostredkovateľov

V tomto článku vám poviem o DAG (Directed Acyclic Graph) a jeho aplikácii v distribuovaných účtovných knihách a porovnáme ho s blockchainom.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

DAG nie je vo svete kryptomien žiadnou novinkou. Možno ste o ňom počuli ako o riešení problémov so škálovateľnosťou blockchainu. Dnes ale nebudeme hovoriť o škálovateľnosti, ale o tom, čím sa kryptomeny líšia od všetkého ostatného: decentralizácia, nedostatok sprostredkovateľov a odolnosť voči cenzúre.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Tiež vám ukážem, že DAG je v skutočnosti odolnejší voči cenzúre a neexistujú žiadni sprostredkovatelia na prístup k účtovnej knihe.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

V blockchainoch, ktoré poznáme, používatelia nemajú priamy prístup k samotnej účtovnej knihe. Ak chcete pridať transakciu do účtovnej knihy, musíte o to „požiadať“ výrobcu bloku (aka „baníka“). Práve ťažiari rozhodujú o tom, ktorú transakciu pridať do ďalšieho bloku a ktorú nie. Sú to baníci, ktorí majú výhradný prístup k blokom a právo rozhodovať o tom, ktorých transakcia bude prijatá na zaradenie do účtovnej knihy.

Baníci sú sprostredkovatelia stojaci medzi vami a distribuovanou účtovnou knihou.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

V praxi zvyčajne malý počet baníckych fondov spoločne riadi viac ako polovicu výpočtového výkonu siete. Pre bitcoiny sú to štyri fondy, pre Ethereum - dva. Ak sa dohodnú, môžu zablokovať akékoľvek transakcie, ktoré chcú.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Za posledných pár rokov bolo navrhnutých mnoho variácií blockchainov, ktoré sa líšia v princípoch výberu producentov blokov. Samotní výrobcovia blokov však nikam neodchádzajú, stále „stoja pri bariére“: každá transakcia musí prejsť cez výrobcu blokov, a ak ju neprijme, transakcia v skutočnosti neexistuje.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Toto je nevyhnutný problém blockchainu. A ak to chceme vyriešiť, musíme radikálne zmeniť dizajn a úplne sa zbaviť blokov a výrobcov blokov. A namiesto budovania reťazca blokov prepojíme samotné transakcie, vrátane hashov niekoľkých predchádzajúcich v každej transakcii. V dôsledku toho dostaneme štruktúru známu v matematike ako orientovaný acyklický graf - DAG.

Teraz má každý priamy prístup do registra bez sprostredkovateľov. Keď chcete pridať transakciu do účtovnej knihy, jednoducho ju pridáte. Vyberiete niekoľko rodičovských transakcií, pridáte svoje údaje, podpíšete a odošlete svoju transakciu partnerom v sieti. Pripravený. Nikto vám v tom nezabráni, takže vaša transakcia je už v účtovnej knihe.

Toto je najviac decentralizovaný spôsob, ktorý je najviac odolný voči cenzúre, ako pridať transakcie do účtovnej knihy bez sprostredkovateľov. Pretože každý jednoducho pridá svoje transakcie do registra bez toho, aby si od kohokoľvek pýtal povolenie.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

DAG možno považovať za tretiu etapu vo vývoji registrov. Najprv existovali centralizované registre, kde jedna strana kontrolovala prístup k nim. Potom prišli blockchainy, ktoré už mali niekoľko kontrolórov, ktorí zaznamenávali transakcie do účtovnej knihy. A nakoniec, v DAG nie sú vôbec žiadni kontrolóri; používatelia pridávajú svoje transakcie priamo.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Teraz, keď máme túto slobodu, by to nemalo viesť k chaosu. Musíme sa dohodnúť na stave registra. A táto dohoda alebo konsenzus zvyčajne znamená dohodu o dvoch veciach:

  1. Čo sa stalo?
  2. V akom poradí sa to stalo?

Na prvú otázku môžeme odpovedať jednoducho: akonáhle bola správne vytvorená transakcia pridaná do účtovnej knihy, došlo k nej. A bodka. Informácie o tom sa môžu dostať ku všetkým účastníkom v rôznych časoch, ale nakoniec túto transakciu dostanú všetky uzly a budú vedieť, že sa to stalo.

Ak by to bol blockchain, o tom, čo sa stane, by rozhodovali ťažiari. Čokoľvek sa baník rozhodne zahrnúť do bloku, stane sa. Všetko, čo do bloku nezaradí, sa nestane.

V blockchainoch riešia ťažiari aj druhý problém konsenzu: poriadok. Môžu si zadávať transakcie v rámci bloku, ako chcú.

Ako určiť poradie transakcií v DAG?

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Len preto, že je náš graf nasmerovaný, už máme nejaký poriadok. Každá transakcia sa týka jednej alebo viacerých predchádzajúcich, rodičovských. Rodičia sa zasa odvolávajú na svojich rodičov atď. Rodičia sa zjavne objavujú pred transakciami s deťmi. Ak je možné dosiahnuť niektorú z transakcií prechodmi medzi rodičmi a potomkami, presne poznáme poradie medzi transakciami v tomto reťazci transakcií.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Poradie medzi transakciami však nemožno vždy určiť len z tvaru grafu. Napríklad, keď dve transakcie ležia na paralelných vetvách grafu.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Pri riešení nejasností v takýchto prípadoch sa spoliehame na takzvaných poskytovateľov objednávok. Hovoríme im aj „svedkovia“. Ide o bežných používateľov, ktorých úlohou je neustále usporiadane posielať transakcie do siete, t.j. takže každá z ich predchádzajúcich transakcií môže byť dosiahnutá prechodmi pozdĺž prepojení rodič-dieťa. Poskytovatelia objednávok sú dôveryhodní používatelia a celá sieť sa spolieha na to, že toto pravidlo neporušia. Za účelom racionálne dôverujte im, vyžadujeme, aby každý poskytovateľ objednávky bol známou (neanonymnou) osobou alebo organizáciou a mal čo stratiť, ak poruší pravidlá, ako je povesť alebo podnikanie založené na dôvere.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Poskytovateľov objednávok si vyberajú používatelia a každý používateľ zahrnie zoznam svojich dôveryhodných poskytovateľov do každej transakcie, ktorú odošle do siete. Tento zoznam obsahuje 12 poskytovateľov. Toto je dostatočne malé číslo na to, aby si človek overil identitu a reputáciu každého z nich, a dostatočné na to, aby zabezpečilo pokračovanie prevádzky siete v prípade nevyhnutných problémov s menšinou poskytovateľov objednávok.

Tento zoznam poskytovateľov sa líši od používateľa k používateľovi, ale zoznamy susedných transakcií sa môžu líšiť až o jedného poskytovateľa.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Teraz, keď máme poskytovateľov objednávok, môžeme izolovať ich transakcie do DAG a objednať všetky ostatné transakcie okolo nimi vytvorenej objednávky. Je možné vytvoriť takýto algoritmus (viď. Biela kniha Obyte pre technické podrobnosti).

Poradie celej siete sa však nedá určiť okamžite, potrebujeme čas, aby poskytovatelia objednávok poslali dostatočný počet svojich transakcií na overenie konečného poradia minulých transakcií.

A keďže poradie je určené iba pozíciami transakcií poskytovateľov v DAG, všetky uzly v sieti skôr či neskôr prijmú všetky transakcie a dospejú k rovnakému záveru, pokiaľ ide o poradie transakcií.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Takže sme sa zhodli na tom, čo sa domnievame, že sa stalo: došlo k akejkoľvek transakcii, ktorá skončí v DAG. Máme tiež dohodu o poradí udalostí: je to zrejmé buď zo vzťahov transakcií, alebo je to odvodené z poradia transakcií zaslaných poskytovateľmi objednávok. Takže máme konsenzus.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Túto verziu konsenzu máme v Obyte. Aj keď je prístup k účtovnej knihe Obyte úplne decentralizovaný, konsenzus týkajúci sa poradia transakcií je stále centralizovaný, pretože 10 z 12 poskytovateľov kontroluje tvorca (Anton Churyumov) a iba dvaja z nich sú nezávislí. Hľadáme kandidátov ochotných stať sa jedným z nezávislých poskytovateľov zákaziek, ktorí nám pomôžu decentralizovať objednávanie účtovnej knihy.

Nedávno sa objavil tretí nezávislý kandidát ochotný nainštalovať a udržiavať uzol poskytovateľa objednávok - University of Nicosia.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Ako teda môžeme kontrolovať dvojité výdavky?

Podľa pravidiel, ak sa nájdu dve transakcie utrácajúce rovnakú mincu, vyhráva transakcia, ktorá je prvá v konečnom poradí všetkých transakcií. Druhý je zrušený konsenzuálnym algoritmom.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov
Ak je možné vytvoriť poradie medzi dvoma transakciami utrácajúcimi rovnakú mincu (prostredníctvom spojení rodič-dieťa), všetky uzly okamžite odmietnu takýto pokus o zdvojnásobenie výdavkov.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

V prípade, že objednávka nie je viditeľná z nadradených vzťahov medzi dvoma takýmito transakciami, obe sú prijaté do knihy a budeme musieť počkať na konsenzus a vytvorenie objednávky medzi nimi pomocou poskytovateľov objednávok. Potom vyhrá skoršia transakcia a druhá sa stane neplatnou.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Aj keď sa druhá transakcia stane neplatnou, stále zostáva v registri, pretože už na ňu odkazujú následné transakcie, ktoré nič neporušili a nevedeli, že táto transakcia sa v budúcnosti stane neplatnou. V opačnom prípade by sme museli odstrániť rodič dobrých následných transakcií, čo by porušilo hlavný princíp siete – každá správna transakcia je prijatá do účtovnej knihy.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Ide o veľmi dôležité pravidlo, ktoré umožňuje, aby bol celý systém odolný voči pokusom o cenzúru. 

Predstavme si, že sa všetci poskytovatelia objednávok dohodnú v snahe „cenzurovať“ jednu konkrétnu transakciu. Môžu ho ignorovať a nikdy si ho nevybrať ako „rodiča“ pre svoje transakcie, ale to nestačí, transakcia môže byť stále nepriamo zahrnutá ako nadradená nejaká iná transakcia vydaná ktorýmkoľvek používateľom v sieti, ktorý sa nedohodne. Postupom času bude takáto transakcia dostávať čoraz viac detí, vnúčat a pravnúčat od bežných používateľov, ktorí budú rásť ako snehová guľa a všetci dohodnutí poskytovatelia objednávok budú musieť tieto transakcie tiež ignorovať. Nakoniec budú musieť cenzurovať celú sieť, čo sa rovná sabotáži.

Od blockchainu k DAG: zbavenie sa sprostredkovateľov

Týmto spôsobom zostáva DAG odolný voči cenzúre, aj keď medzi poskytovateľmi objednávok existuje tajná dohoda, čím prekonáva blockchain odolný voči cenzúre, v ktorom nemôžeme nič urobiť, ak sa ťažiari rozhodnú nezahrnúť žiadnu z transakcií. A to vyplýva z hlavnej vlastnosti DAG: účasť v registri je úplne nezávislá a bez sprostredkovateľov a transakcie sú nezvratné.

Zdroj: hab.com

Pridať komentár