A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Ebben a cikkben a DAG-ról (Directed Acyclic Graph) és annak elosztott főkönyvekben való alkalmazásáról mesélek, és összehasonlítjuk a blokklánccal.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

A DAG nem újdonság a kriptovaluták világában. Talán hallott már róla, mint megoldást a blokklánc skálázhatósági problémáira. De ma nem a skálázhatóságról fogunk beszélni, hanem arról, hogy mitől különböznek a kriptovaluták minden mástól: decentralizáció, közvetítők hiánya és cenzúra-ellenállás.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Azt is megmutatom, hogy a DAG valójában jobban ellenáll a cenzúrának, és nincs közvetítő a főkönyv eléréséhez.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Az általunk ismert blokkláncokban a felhasználóknak nincs közvetlen hozzáférésük magához a főkönyvhöz. Ha egy tranzakciót szeretne hozzáadni a főkönyvhez, meg kell "kérnie" a blokkgyártót (más néven "bányászt"). A bányászok döntik el, hogy melyik tranzakciót adják hozzá a következő blokkhoz, és melyiket nem. A bányászok kizárólagos hozzáféréssel rendelkeznek a blokkokhoz, és jogosultak eldönteni, hogy kinek a tranzakcióját fogadják el a főkönyvbe.

A bányászok közvetítők, akik Ön és az elosztott főkönyv között állnak.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

A gyakorlatban általában néhány bányászcsoport együttesen irányítja a hálózat számítási teljesítményének több mint felét. A Bitcoin esetében ez négy medence, az Ethereum esetében kettő. Ha összejátszanak, blokkolhatnak bármilyen tranzakciót, amit akarnak.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Az elmúlt néhány évben a blokkláncoknak számos változatát javasolták, amelyek eltérnek a blokkgyártók kiválasztásának elveiben. De maguk a blokkgyártók nem mennek sehova, továbbra is „a sorompónál állnak”: minden tranzakciónak át kell mennie a blokkgyártón, és ha ő nem fogadja el, akkor a tranzakció valójában nem létezik.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Ez elkerülhetetlen probléma a blokklánccal. Ha pedig meg akarjuk oldani, radikálisan meg kell változtatnunk a dizájnt, és teljesen meg kell szabadulnunk a blokkoktól és a blokkgyártóktól. És ahelyett, hogy blokkokból álló láncot építenénk, magukat a tranzakciókat fogjuk összekapcsolni, beleértve az egyes tranzakciókban több korábbi hash-ét is. Ennek eredményeként a matematikában egy irányított aciklikus gráfként ismert szerkezetet kapunk - DAG.

Most már mindenki közvetlen hozzáféréssel rendelkezik a nyilvántartáshoz, közvetítők nélkül. Ha egy tranzakciót szeretne hozzáadni a főkönyvhez, egyszerűen adja hozzá. Kiválaszthat több szülőtranzakciót, hozzáadhatja adatait, aláírhatja és elküldheti a tranzakciót a hálózaton lévő partnereknek. Kész. Senki sem akadályozhatja meg ebben, így a tranzakciója már szerepel a főkönyvben.

Ez a legdecentralizáltabb, leginkább cenzúrabiztos módja annak, hogy a tranzakciókat közvetítők nélkül felvegye a főkönyvbe. Mert mindenki egyszerűen hozzáadja a tranzakcióit a registry-hez anélkül, hogy engedélyt kérne bárkitől.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

A DAG-ok a regiszterek fejlődésének harmadik szakaszának tekinthetők. Először központosított nyilvántartások voltak, ahol az egyik fél szabályozta a hozzáférést. Aztán jöttek a blokkláncok, amelyeknek már több vezérlője is volt, akik a főkönyvben rögzítették a tranzakciókat. És végül, a DAG-ban egyáltalán nincsenek vezérlők, a felhasználók közvetlenül adják hozzá tranzakcióikat.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Most, hogy megvan ez a szabadság, ez nem vezethet káoszhoz. Meg kell állapodnunk a nyilvántartás állapotáról. És ez a megállapodás vagy konszenzus általában két dologban való megegyezést jelent:

  1. Mi történt?
  2. Milyen sorrendben történt ez?

Az első kérdésre könnyen megválaszolhatjuk: ha egy megfelelően létrehozott tranzakció felkerült a főkönyvbe, az megtörtént. És időszak. Az ezzel kapcsolatos információk az összes résztvevőhöz különböző időpontokban juthatnak el, de végül minden csomópont megkapja ezt a tranzakciót, és tudni fogja, hogy megtörtént.

Ha ez egy blokklánc lenne, a bányászok döntenék el, mi történjen. Bármit is dönt a bányász, hogy belefoglal egy blokkba, az megtörténik. Minden, amit nem vesz bele a blokkba, nem történik meg.

A blokkláncokban a bányászok egy második konszenzusproblémát is megoldanak: a rendet. A blokkon belül tetszés szerint megrendelhetik a tranzakciókat.

Hogyan határozható meg a tranzakciók sorrendje a DAG-ban?

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Csak azért, mert a gráfunk irányított, már van némi sorrend. Minden egyes tranzakció egy vagy több korábbi szülő tranzakcióra vonatkozik. A szülők pedig a szüleikre hivatkoznak stb. A szülők nyilvánvalóan a gyermekügyletek előtt jelennek meg. Ha valamelyik tranzakció elérhető szülő-gyermek link átmenetekkel, akkor pontosan ismerjük a tranzakciók sorrendjét az adott tranzakcióláncban.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

A tranzakciók közötti sorrend azonban nem mindig határozható meg pusztán a gráf alakjából. Például amikor két tranzakció a gráf párhuzamos ágain fekszik.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Az ilyen esetekben felmerülő félreértések megoldása érdekében az úgynevezett rendelésszolgáltatókra támaszkodunk. "Tanúknak" is hívjuk őket. Ezek hétköznapi felhasználók, akiknek az a feladata, hogy folyamatosan, rendezetten küldjék el a tranzakciókat a hálózatba, pl. hogy minden korábbi tranzakciójukat a szülő-gyermek hivatkozások mentén történő átmenetekkel el lehessen érni. A rendelésszolgáltatók megbízható felhasználók, és az egész hálózat arra számít, hogy nem sértik meg ezt a szabályt. Azért, hogy ésszerűen megbízunk bennük, megköveteljük, hogy minden megrendelő egy ismert (nem névtelen) személy vagy szervezet legyen, és legyen veszítenivalója, ha megszegi a szabályokat, például jó hírnevet vagy bizalmon alapuló üzletet.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

A megrendelések szolgáltatóit a felhasználók választják ki, és minden felhasználó a hálózatra küldött minden tranzakció során tartalmazza a megbízható szolgáltatók listáját. Ez a lista 12 szolgáltatót tartalmaz. Ez elég kicsi szám ahhoz, hogy egy személy ellenőrizhesse mindegyikük személyazonosságát és hírnevét, és elegendő ahhoz, hogy a hálózat továbbra is működjön, ha elkerülhetetlen problémák merülnének fel a rendelésszolgáltatók kisebbségével.

A szolgáltatók listája felhasználónként eltérő, de a szomszédos tranzakciók listája legfeljebb egy szolgáltatónként eltérő lehet.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Most, hogy vannak megbízásszolgáltatóink, le tudjuk különíteni a tranzakcióikat egy DAG-ba, és az összes többi tranzakciót az általuk létrehozott megbízás köré rendelhetjük. Létre lehet hozni egy ilyen algoritmust (lásd. Obyte fehér könyv műszaki részletekért).

A teljes hálózat sorrendje azonban nem határozható meg azonnal, időre van szükségünk ahhoz, hogy a megbízásszolgáltatók elegendő számú tranzakciót küldjenek el a múltbeli tranzakciók végső sorrendjének ellenőrzéséhez.

És mivel a sorrendet csak a szolgáltatók tranzakcióinak pozíciója határozza meg a DAG-ban, a hálózat összes csomópontja előbb-utóbb megkapja az összes tranzakciót, és ugyanarra a következtetésre jut a tranzakciók sorrendjét illetően.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Tehát egyetértünk abban, hogy mit tekintünk megtörténtnek: minden tranzakció, amely a DAG-ban végződik, megtörtént. Az események sorrendjében is egyetértünk: ez vagy a tranzakciók összefüggéseiből derül ki, vagy a megbízásszolgáltatók által küldött tranzakciók sorrendjéből következik. Tehát konszenzusunk van.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

A konszenzusnak ez a verziója van az Obyte-ban. Annak ellenére, hogy az Obyte főkönyvhöz való hozzáférés teljesen decentralizált, a tranzakciók sorrendjét illetően a konszenzus továbbra is centralizált, mert 10 szolgáltatóból 12-et az alkotó (Anton Churyumov) irányít, és közülük csak kettő független. Olyan jelentkezők jelentkezését várjuk, akik a független rendelési szolgáltatók közé szeretnének válni, hogy segítsenek a főkönyvi rendelés decentralizálásában.

A közelmúltban megjelent egy harmadik független jelölt, aki hajlandó egy rendelési szolgáltató csomópont telepítésére és karbantartására – a Nicosia Egyetemre.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Most hogyan tudjuk ellenőrizni a dupla kiadásokat?

A szabályok szerint, ha két tranzakciót találunk, amelyek ugyanazt az érmét költik el, akkor az a tranzakció nyer, amelyik az összes tranzakció közül az első helyen áll. A másodikat a konszenzus algoritmus érvényteleníti.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől
Ha lehetséges sorrendet felállítani két, ugyanazt az érmét elköltő tranzakció között (szülő-gyermek kapcsolatokon keresztül), akkor minden csomópont azonnal elutasítja a költés megduplázására irányuló kísérletet.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Abban az esetben, ha a megbízás nem látszik a két ilyen tranzakció közötti szülőkapcsolatból, akkor mindkettő bekerül a főkönyvbe, és meg kell várnunk a konszenzust és a megbízás létrejöttét közöttük a megbízásszolgáltatók segítségével. Ekkor a korábbi tranzakció nyer, a második pedig érvénytelenné válik.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Annak ellenére, hogy a második tranzakció érvénytelenné válik, továbbra is a nyilvántartásban marad, mert már vannak rá hivatkozó későbbi tranzakciók, amelyek nem sértettek semmit, és nem tudták, hogy ez a tranzakció a jövőben érvénytelen lesz. Ellenkező esetben a jó utólagos tranzakciók szülőjét el kell távolítanunk, ami sértené a hálózat fő elvét - minden helyes tranzakció bekerül a főkönyvbe.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Ez egy nagyon fontos szabály, amely lehetővé teszi, hogy az egész rendszer ellenálljon a cenzúrakísérleteknek. 

Képzeljük el, hogy az összes megbízásszolgáltató összejátszik egy adott tranzakció „cenzúrázására”. Figyelmen kívül hagyhatják, és soha nem választhatják "szülőként" a tranzakcióikhoz, de ez nem elég, a tranzakció még mindig szerepelhet közvetve valamilyen más tranzakció szülőjeként, amelyet a hálózat bármely, nem összejátszó felhasználója bocsát ki. Egy ilyen tranzakcióhoz idővel egyre több gyerek, unoka és dédunoka érkezik a hétköznapi felhasználóktól, hógolyóként nőve, és minden megállapodott megrendelőnek figyelmen kívül kell hagynia ezeket a tranzakciókat. Végül a teljes hálózatot cenzúrázniuk kell, ami szabotázst jelent.

A blokklánctól a DAG-ig: megszabadulni a közvetítőktől

Ily módon a DAG akkor is cenzúraálló marad, ha a megrendelők közötti összejátszásra kerül sor, ezzel felülmúlva a cenzúraálló blokkláncot, amelyben nem tudunk mit kezdeni, ha a bányászok úgy döntenek, hogy egyik tranzakciót sem vesznek fel. Ez pedig a DAG fő tulajdonságából következik: a nyilvántartásban való részvétel teljesen független és közvetítők nélkül, a tranzakciók pedig visszafordíthatatlanok.

Forrás: will.com

Hozzászólás