Od blockchaina do DAG-a: rješavanje posrednika

U ovom članku ću vam govoriti o DAG-u (Directed Acyclic Graph) i njegovoj primjeni u distribuiranim knjigama, a usporedit ćemo ga s blockchainom.

Od blockchaina do DAG-a: rješavanje posrednika

DAG nije ništa novo u svijetu kriptovaluta. Možda ste čuli za njega kao rješenje za probleme skalabilnosti blockchaina. Ali danas nećemo govoriti o skalabilnosti, već o tome po čemu se kriptovalute razlikuju od svega ostalog: decentralizacija, nedostatak posrednika i otpor cenzuri.

Od blockchaina do DAG-a: rješavanje posrednika

Također ću vam pokazati da je DAG zapravo otporniji na cenzuru i da nema posrednika za pristup glavnoj knjizi.

Od blockchaina do DAG-a: rješavanje posrednika

U blockchainovima s kojima smo upoznati, korisnici nemaju izravan pristup samoj glavnoj knjizi. Kada želite dodati transakciju u knjigu, morate "zamoliti" proizvođača bloka (a.k.a. "rudar") da to učini. Rudari su ti koji odlučuju koju će transakciju dodati u sljedeći blok, a koju ne. Rudari su ti koji imaju ekskluzivan pristup blokovima i pravo odlučivanja čije će transakcije biti prihvaćene za uključivanje u knjigu.

Rudari su posrednici koji stoje između vas i distribuirane knjige.

Od blockchaina do DAG-a: rješavanje posrednika

U praksi obično mali broj skupova rudara zajednički kontrolira više od polovice računalne snage mreže. Za Bitcoin to su četiri bazena, za Ethereum - dva. Ako se dogovaraju, mogu blokirati transakcije koje žele.

Od blockchaina do DAG-a: rješavanje posrednika

Tijekom proteklih nekoliko godina predložene su mnoge varijacije blockchaina, koje se razlikuju u načelima odabira proizvođača blokova. Ali sami proizvođači blokova ne idu nikamo, oni i dalje “stoje na barijeri”: svaka transakcija mora ići preko proizvođača blokova, a ako on to ne prihvati, onda transakcija, zapravo, i ne postoji.

Od blockchaina do DAG-a: rješavanje posrednika

Ovo je neizbježan problem s blockchainom. A ako to želimo riješiti, moramo radikalno promijeniti dizajn i potpuno se riješiti blokova i proizvođača blokova. I umjesto da gradimo lanac blokova, povezat ćemo same transakcije, uključujući hashove nekoliko prethodnih u svakoj transakciji. Kao rezultat dobivamo strukturu poznatu u matematici kao usmjereni aciklički graf - DAG.

Sada svi imaju izravan pristup registru, bez posrednika. Kada želite dodati transakciju u knjigu, jednostavno je dodajte. Odaberete nekoliko nadređenih transakcija, dodate svoje podatke, potpišete i pošaljete svoju transakciju kolegama na mreži. Spreman. Ne postoji nitko tko bi vas spriječio da to učinite, tako da je vaša transakcija već u glavnoj knjizi.

Ovo je najdecentraliziraniji, najotporniji na cenzuru način za dodavanje transakcija u knjigu bez posrednika. Jer svi jednostavno dodaju svoje transakcije u registar bez traženja dopuštenja od bilo koga.

Od blockchaina do DAG-a: rješavanje posrednika

DAG-ovi se mogu smatrati trećom fazom u evoluciji registara. Prvo su postojali centralizirani registri, gdje je jedna strana kontrolirala pristup njima. Zatim su došli blockchaini, koji su već imali nekoliko kontrolora koji su bilježili transakcije u glavnu knjigu. I konačno, u DAG-u uopće nema kontrolera; korisnici izravno dodaju svoje transakcije.

Od blockchaina do DAG-a: rješavanje posrednika

Sad kad imamo tu slobodu, to ne bi trebalo dovesti do kaosa. Moramo imati dogovor o stanju registra. A ovaj dogovor, ili konsenzus, obično znači dogovor o dvije stvari:

  1. Što se dogodilo?
  2. Kojim redom se to dogodilo?

Na prvo pitanje možemo lako odgovoriti: jednom kada je ispravno kreirana transakcija dodana u knjigu, dogodila se. I točka. Informacije o tome mogu stići do svih sudionika u različito vrijeme, ali na kraju će svi čvorovi primiti ovu transakciju i znati da se dogodila.

Da je riječ o blockchainu, rudari bi odlučivali što će se dogoditi. Ono što rudar odluči uključiti u blok se događa. Sve što on ne uvrsti u blok se ne događa.

U blockchainovima, rudari također rješavaju drugi problem konsenzusa: red. Omogućeno im je da nalažu transakcije unutar bloka kako žele.

Kako odrediti redoslijed transakcija u DAG-u?

Od blockchaina do DAG-a: rješavanje posrednika

Samo zato što je naš graf usmjeren, već imamo neki red. Svaka se transakcija odnosi na jednu ili više prethodnih, matičnih. Roditelji se pak pozivaju na svoje roditelje i tako dalje. Roditelji se očito pojavljuju prije transakcija djece. Ako se do bilo koje transakcije može doći prijelazom veze roditelj-dijete, znamo točan redoslijed između transakcija u tom lancu transakcija.

Od blockchaina do DAG-a: rješavanje posrednika

Ali poredak između transakcija ne može se uvijek odrediti samo iz oblika grafikona. Na primjer, kada dvije transakcije leže na paralelnim granama grafa.

Od blockchaina do DAG-a: rješavanje posrednika

Za rješavanje dvosmislenosti u takvim slučajevima oslanjamo se na takozvane dobavljače naloga. Nazivamo ih i "svjedocima". To su obični korisnici čiji je zadatak stalno uredno slati transakcije u mrežu, tj. tako da se do svake njihove prethodne transakcije može doći prijelazima duž poveznica roditelj-dijete. Dobavljači narudžbi su pouzdani korisnici i cijela se mreža oslanja na njih da ne krše ovo pravilo. Da bi racionalno vjerujte im, zahtijevamo da svaki davatelj narudžbi bude poznata (neanonimna) osoba ili organizacija i ima što izgubiti ako prekrši pravila, poput ugleda ili poslovanja temeljenog na povjerenju.

Od blockchaina do DAG-a: rješavanje posrednika

Pružatelje naloga biraju korisnici, a svaki korisnik uključuje popis svojih pouzdanih pružatelja u svakoj transakciji koju šalje mreži. Ovaj popis se sastoji od 12 pružatelja usluga. To je dovoljno mali broj da osoba može provjeriti identitet i ugled svakog od njih, a dovoljan da osigura da mreža nastavi s radom u slučaju neizbježnih problema s manjinom davatelja naloga.

Ovaj popis pružatelja usluga razlikuje se od korisnika do korisnika, ali popisi susjednih transakcija mogu se razlikovati za najviše jednog pružatelja usluga.

Od blockchaina do DAG-a: rješavanje posrednika

Sada kada imamo pružatelje naloga, možemo izolirati njihove transakcije u DAG i naručiti sve druge transakcije oko naloga koji su oni kreirali. Moguće je izraditi takav algoritam (vidi. Obyte bijeli papir za tehničke detalje).

Ali redoslijed cijele mreže ne može se odrediti trenutno; trebamo vremena da davatelji naloga pošalju dovoljan broj svojih transakcija kako bi provjerili konačni redoslijed prošlih transakcija.

A budući da je redoslijed određen samo pozicijama transakcija pružatelja usluga u DAG-u, svi čvorovi na mreži će prije ili kasnije primiti sve transakcije i doći do istog zaključka o redoslijedu transakcija.

Od blockchaina do DAG-a: rješavanje posrednika

Dakle, imamo dogovor oko onoga što smatramo da se dogodilo: dogodila se svaka transakcija koja završi u DAG-u. Također imamo dogovor o redoslijedu događaja: to je ili vidljivo iz odnosa transakcija ili je izvedeno iz redoslijeda transakcija koje su poslali dobavljači naloga. Dakle, imamo konsenzus.

Od blockchaina do DAG-a: rješavanje posrednika

Imamo ovu verziju konsenzusa u Obyteu. Iako je pristup glavnoj knjizi Obyte potpuno decentraliziran, konsenzus o redoslijedu transakcija i dalje je centraliziran jer 10 od 12 pružatelja kontrolira kreator (Anton Churyumov), a samo su dva neovisna. Tražimo kandidate voljne postati jedan od neovisnih pružatelja naloga koji će nam pomoći decentralizirati naručivanje glavne knjige.

Nedavno se pojavio treći neovisni kandidat voljan instalirati i održavati čvor pružatelja narudžbi - Sveučilište u Nikoziji.

Od blockchaina do DAG-a: rješavanje posrednika

Kako sada kontrolirati dvostruku potrošnju?

Prema pravilima, ako se pronađu dvije transakcije koje troše isti novčić, pobjeđuje transakcija koja je prva u konačnom poretku svih transakcija. Drugi je poništen algoritmom konsenzusa.

Od blockchaina do DAG-a: rješavanje posrednika
Ako je moguće uspostaviti red između dvije transakcije koje troše isti coin (kroz veze roditelj-dijete), tada svi čvorovi odmah odbijaju takav pokušaj udvostručenja potrošnje.

Od blockchaina do DAG-a: rješavanje posrednika

U slučaju da redoslijed nije vidljiv iz nadređenih odnosa između dvije takve transakcije, obje su prihvaćene u glavnu knjigu i morat ćemo pričekati konsenzus i uspostavljanje reda između njih pomoću pružatelja naloga. Tada će ranija transakcija pobijediti, a druga će postati nevažeća.

Od blockchaina do DAG-a: rješavanje posrednika

Iako druga transakcija postaje nevažeća, ona i dalje ostaje u registru jer već ima sljedeće transakcije koje se pozivaju na nju, a koje nisu prekršile ništa i nisu znale da će ta transakcija postati nevažeća u budućnosti. U protivnom bismo morali ukloniti nadređenog za dobre naknadne transakcije, što bi prekršilo glavni princip mreže - svaka ispravna transakcija se prihvaća u glavnu knjigu.

Od blockchaina do DAG-a: rješavanje posrednika

Ovo je vrlo važno pravilo koje omogućuje da cijeli sustav bude otporan na pokušaje cenzure. 

Zamislimo da se svi davatelji naloga dogovaraju u pokušaju "cenzure" jedne određene transakcije. Mogu ga ignorirati i nikada ga ne odabrati kao "roditelja" za svoje transakcije, ali to nije dovoljno, transakcija se još uvijek neizravno može uključiti kao roditelj neke druge transakcije koju izda bilo koji korisnik na mreži koji se ne dogovara. S vremenom će takva transakcija dobivati ​​sve više djece, unučadi i praunučadi od običnih korisnika, rasti kao gruda snijega, a svi ugovoreni naručitelji će morati ignorirati i te transakcije. Na kraju će morati cenzurirati cijelu mrežu, što je ravno sabotaži.

Od blockchaina do DAG-a: rješavanje posrednika

Na ovaj način, DAG ostaje otporan na cenzuru čak i ako postoji tajni dogovor među pružateljima naloga, čime se nadmašuje blockchain otporan na cenzuru u kojem ne možemo učiniti ništa ako rudari odluče ne uključiti nijednu od transakcija. A to proizlazi iz glavnog svojstva DAG-a: sudjelovanje u registru je potpuno neovisno i bez posrednika, a transakcije su nepovratne.

Izvor: www.habr.com

Dodajte komentar