Od blockchainu k DAG: zbavení se prostředníků

V tomto článku vám povím o DAG (Directed Acyclic Graph) a jeho aplikaci v distribuovaných účetních knihách a porovnáme jej s blockchainem.

Od blockchainu k DAG: zbavení se prostředníků

DAG není ve světě kryptoměn nic nového. Možná jste o něm slyšeli jako o řešení problémů se škálovatelností blockchainu. Dnes ale nebudeme mluvit o škálovatelnosti, ale o tom, čím se kryptoměny liší od všeho ostatního: decentralizace, nedostatek zprostředkovatelů a odolnost vůči cenzuře.

Od blockchainu k DAG: zbavení se prostředníků

Také vám ukážu, že DAG je ve skutečnosti odolnější vůči cenzuře a neexistují žádní prostředníci, kteří by se dostali do účetní knihy.

Od blockchainu k DAG: zbavení se prostředníků

V blockchainech, které známe, uživatelé nemají přímý přístup k samotné účetní knize. Když chcete přidat transakci do hlavní knihy, musíte o to „požádat“ výrobce bloku (také znám jako „těžař“). Jsou to těžaři, kteří rozhodují, kterou transakci přidat do dalšího bloku a kterou ne. Jsou to těžaři, kteří mají výhradní přístup k blokům a právo rozhodnout, čí transakce bude přijata k zařazení do účetní knihy.

Těžaři jsou prostředníci stojící mezi vámi a distribuovanou účetní knihou.

Od blockchainu k DAG: zbavení se prostředníků

V praxi obvykle malý počet těžařských fondů společně řídí více než polovinu výpočetního výkonu sítě. Pro bitcoiny jsou to čtyři fondy, pro Ethereum - dva. Pokud se domluví, mohou zablokovat jakékoli transakce, které chtějí.

Od blockchainu k DAG: zbavení se prostředníků

Během několika posledních let bylo navrženo mnoho variant blockchainů, které se liší v principech výběru producentů bloků. Ale samotní výrobci bloků nikam nevedou, stále „stojí na bariéře“: každá transakce musí projít přes výrobce bloků, a pokud ji nepřijme, transakce ve skutečnosti neexistuje.

Od blockchainu k DAG: zbavení se prostředníků

To je nevyhnutelný problém blockchainu. A pokud to chceme vyřešit, musíme radikálně změnit design a úplně se zbavit bloků a výrobců bloků. A místo budování řetězce bloků propojíme samotné transakce, včetně hashů několika předchozích v každé transakci. Výsledkem je struktura známá v matematice jako orientovaný acyklický graf - DAG.

Nyní má každý přímý přístup do registru bez prostředníků. Když chcete přidat transakci do účetní knihy, jednoduše ji přidáte. Vyberete několik nadřazených transakcí, přidáte svá data, podepíšete a odešlete svou transakci kolegům v síti. Připraveno. Nikdo vám v tom nemůže zabránit, takže vaše transakce je již v účetní knize.

Toto je nejvíce decentralizovaný způsob, který je nejvíce odolný vůči cenzuře, jak přidat transakce do hlavní knihy bez prostředníků. Protože každý jednoduše přidá své transakce do registru, aniž by kohokoli žádal o povolení.

Od blockchainu k DAG: zbavení se prostředníků

DAG lze považovat za třetí fázi ve vývoji registrů. Nejprve existovaly centralizované registry, kde jedna strana kontrolovala přístup k nim. Pak přišly blockchainy, které již měly několik správců, kteří zaznamenávali transakce do účetní knihy. A konečně, v DAG nejsou vůbec žádní kontroloři; uživatelé přidávají své transakce přímo.

Od blockchainu k DAG: zbavení se prostředníků

Nyní, když máme tuto svobodu, nemělo by to vést k chaosu. Musíme se dohodnout na stavu registru. A tato dohoda nebo konsensus obvykle znamená shodu ve dvou věcech:

  1. Co se stalo?
  2. V jakém pořadí se to stalo?

Na první otázku můžeme snadno odpovědět: jakmile byla správně vytvořená transakce přidána do účetní knihy, došlo k ní. A tečka. Informace o tom se mohou dostat ke všem účastníkům v různých časech, ale nakonec tuto transakci obdrží všechny uzly a budou vědět, že se to stalo.

Pokud by to byl blockchain, těžaři by rozhodovali o tom, co se stane. Cokoli se těžař rozhodne zahrnout do bloku, stane se. Vše, co do bloku nezařadí, se nestane.

V blockchainech těžaři řeší i druhý problém konsensu: pořádek. Mohou objednávat transakce v rámci bloku, jak chtějí.

Jak určit pořadí transakcí v DAG?

Od blockchainu k DAG: zbavení se prostředníků

Právě proto, že je náš graf orientován, už máme nějaký řád. Každá transakce se vztahuje na jednu nebo více předchozích, nadřazených. Rodiče zase odkazují na své rodiče a tak dále. Rodiče se zjevně objevují před podřízenými transakcemi. Pokud lze některou z transakcí dosáhnout přechody propojení rodič-podřízený, známe přesně pořadí mezi transakcemi v tomto řetězci transakcí.

Od blockchainu k DAG: zbavení se prostředníků

Pořadí mezi transakcemi však nelze vždy určit pouze z tvaru grafu. Například když dvě transakce leží na paralelních větvích grafu.

Od blockchainu k DAG: zbavení se prostředníků

Při řešení nejasností v takových případech spoléháme na tzv. poskytovatele objednávek. Říkáme jim také „svědci“. Jedná se o běžné uživatele, jejichž úkolem je neustále spořádaně odesílat transakce do sítě, tzn. takže každá z jejich předchozích transakcí může být dosažena přechody podél odkazů rodič-dítě. Poskytovatelé objednávek jsou důvěryhodní uživatelé a celá síť spoléhá na to, že toto pravidlo neporuší. V následujících situacích racionálně důvěřujte jim, požadujeme, aby každý poskytovatel objednávek byl známou (neanonymní) osobou nebo organizací a měl co ztratit, pokud poruší pravidla, jako je pověst nebo podnikání založené na důvěře.

Od blockchainu k DAG: zbavení se prostředníků

Poskytovatele objednávek si vybírají uživatelé a každý uživatel zahrne seznam svých důvěryhodných poskytovatelů do každé transakce, kterou odešle do sítě. Tento seznam obsahuje 12 poskytovatelů. To je dostatečně malé číslo na to, aby si člověk ověřil identitu a pověst každého z nich, a dostačující na to, aby zajistilo, že síť bude fungovat i nadále v případě nevyhnutelných problémů s menšinou poskytovatelů objednávek.

Tento seznam poskytovatelů se u jednotlivých uživatelů liší, ale seznamy sousedních transakcí se mohou lišit až o jednoho poskytovatele.

Od blockchainu k DAG: zbavení se prostředníků

Nyní, když máme poskytovatele objednávek, můžeme izolovat jejich transakce do DAG a objednávat všechny ostatní transakce kolem objednávky, kterou vytvořili. Je možné vytvořit takový algoritmus (viz. Bílá kniha Obyte pro technické podrobnosti).

Pořadí celé sítě ale nelze určit okamžitě, potřebujeme čas, aby poskytovatelé příkazů poslali dostatečný počet svých transakcí, aby ověřili konečné pořadí minulých transakcí.

A protože pořadí je určeno pouze pozicemi transakcí poskytovatelů v DAG, všechny uzly v síti dříve nebo později přijmou všechny transakce a dojdou ke stejnému závěru ohledně pořadí transakcí.

Od blockchainu k DAG: zbavení se prostředníků

Takže jsme se shodli na tom, co se domníváme, že se stalo: došlo k jakékoli transakci, která skončí v DAG. Shodneme se také na pořadí událostí: to je buď zřejmé ze vztahů transakcí, nebo je to odvozeno z pořadí transakcí zaslaných poskytovateli objednávek. Takže máme shodu.

Od blockchainu k DAG: zbavení se prostředníků

Tuto verzi konsensu máme v Obyte. I když je přístup k účetní knize Obyte zcela decentralizovaný, konsenzus ohledně pořadí transakcí je stále centralizovaný, protože 10 z 12 poskytovatelů je řízeno tvůrcem (Anton Churyumov) a pouze dva z nich jsou nezávislí. Hledáme kandidáty ochotné stát se jedním z nezávislých poskytovatelů zakázek, kteří nám pomohou decentralizovat objednávání účetní knihy.

Nedávno se objevil třetí nezávislý kandidát ochotný instalovat a udržovat uzel poskytovatele objednávek – University of Nicosia.

Od blockchainu k DAG: zbavení se prostředníků

Jak nyní kontrolujeme dvojí útratu?

Podle pravidel, pokud jsou nalezeny dvě transakce utrácející stejnou minci, vyhrává transakce, která je první v konečném pořadí všech transakcí. Druhý je zneplatněn konsensuálním algoritmem.

Od blockchainu k DAG: zbavení se prostředníků
Pokud je možné vytvořit pořadí mezi dvěma transakcemi utrácejícími stejnou minci (prostřednictvím spojení rodič-dítě), pak všechny uzly okamžitě odmítnou takový pokus o dvojnásobnou útratu.

Od blockchainu k DAG: zbavení se prostředníků

V případě, že objednávka není viditelná z nadřazených vztahů mezi dvěma takovými transakcemi, jsou obě přijaty do hlavní knihy a budeme muset počkat na konsenzus a vytvoření objednávky mezi nimi pomocí poskytovatelů objednávek. Pak vyhraje dřívější transakce a druhá se stane neplatnou.

Od blockchainu k DAG: zbavení se prostředníků

I když se druhá transakce stane neplatnou, stále zůstává v registru, protože již na ni odkazují následné transakce, které nic neporušily a nevěděly, že se tato transakce v budoucnu stane neplatnou. V opačném případě bychom museli odstranit rodič dobrých následných transakcí, což by porušilo hlavní princip sítě – každá správná transakce je přijata do účetní knihy.

Od blockchainu k DAG: zbavení se prostředníků

Jde o velmi důležité pravidlo, které umožňuje, aby byl celý systém odolný vůči pokusům o cenzuru. 

Představme si, že se všichni poskytovatelé objednávek domluví ve snaze „cenzurovat“ jednu konkrétní transakci. Mohou ji ignorovat a nikdy si ji nezvolit jako „rodič“ pro své transakce, ale to nestačí, transakce může být stále nepřímo zahrnuta jako rodič nějaké jiné transakce vydané kterýmkoli uživatelem v síti, který se nedomlouvá. Postupem času bude taková transakce získávat stále více dětí, vnoučat a pravnoučat od běžných uživatelů, které rostou jako sněhová koule, a všichni dohodnutí poskytovatelé objednávek budou muset tyto transakce také ignorovat. Nakonec budou muset zcenzurovat celou síť, což se rovná sabotáži.

Od blockchainu k DAG: zbavení se prostředníků

Tímto způsobem zůstává DAG odolný vůči cenzuře, i když mezi poskytovateli objednávek existuje tajná dohoda, čímž překonává blockchain odolný vůči cenzuře, ve kterém nemůžeme nic dělat, pokud se těžaři rozhodnou nezahrnout žádnou z transakcí. A to vyplývá z hlavní vlastnosti DAG: účast v registru je zcela nezávislá a bez prostředníků a transakce jsou nevratné.

Zdroj: www.habr.com

Přidat komentář