Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Sa artikulong ito, sasabihin ko sa iyo ang tungkol sa DAG (Directed Acyclic Graph) at ang aplikasyon nito sa mga distributed ledger, at ihahambing namin ito sa blockchain.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ang DAG ay walang bago sa mundo ng mga cryptocurrencies. Maaaring narinig mo na ito bilang isang solusyon sa mga problema sa scalability ng blockchain. Ngunit ngayon ay hindi natin pag-uusapan ang tungkol sa scalability, ngunit tungkol sa kung bakit naiiba ang mga cryptocurrencies sa lahat ng iba pa: desentralisasyon, kakulangan ng mga tagapamagitan at paglaban sa censorship.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ipapakita ko rin sa iyo na ang DAG ay talagang mas lumalaban sa censorship at walang mga tagapamagitan upang ma-access ang ledger.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Sa mga blockchain na pamilyar sa amin, ang mga gumagamit ay walang direktang access sa mismong ledger. Kapag gusto mong magdagdag ng transaksyon sa ledger, kailangan mong "hilingin" sa block producer (a.k.a. "miner") na gawin ito. Ang mga minero ang magpapasya kung aling transaksyon ang idaragdag sa susunod na bloke at alin ang hindi. Ang mga minero ang may eksklusibong access sa mga block at ang karapatang magpasya kung kaninong transaksyon ang tatanggapin para maisama sa ledger.

Ang mga minero ay mga tagapamagitan na nakatayo sa pagitan mo at ng distributed ledger.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Sa pagsasagawa, karaniwang isang maliit na bilang ng mga miner pool ang sama-samang kumokontrol sa higit sa kalahati ng kapangyarihan sa pag-compute ng network. Para sa Bitcoin ito ay apat na pool, para sa Ethereum - dalawa. Kung sila ay makikipagsabwatan, maaari nilang i-block ang anumang mga transaksyon na gusto nila.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Sa nakalipas na ilang taon, maraming mga variation ng blockchain ang iminungkahi, na naiiba sa mga prinsipyo ng pagpili ng mga block producer. Ngunit ang mga block producer mismo ay hindi pupunta kahit saan, sila ay "nakatayo sa hadlang": ang bawat transaksyon ay dapat dumaan sa block producer, at kung hindi niya ito tatanggapin, kung gayon ang transaksyon, sa katunayan, ay hindi umiiral.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ito ay isang hindi maiiwasang problema sa blockchain. At kung gusto nating lutasin ito, kailangan nating radikal na baguhin ang disenyo at ganap na alisin ang mga bloke at i-block ang mga producer. At sa halip na bumuo ng isang kadena ng mga bloke, ikokonekta namin ang mga transaksyon mismo, kasama ang mga hash ng ilang naunang mga transaksyon sa bawat transaksyon. Bilang resulta, nakakakuha kami ng isang istraktura na kilala sa matematika bilang isang nakadirekta na acyclic graph - DAG.

Ngayon lahat ay may direktang access sa pagpapatala, nang walang mga tagapamagitan. Kapag gusto mong magdagdag ng transaksyon sa ledger, idagdag mo lang ito. Pumili ka ng ilang mga transaksyon ng magulang, idagdag ang iyong data, lagdaan at ipadala ang iyong transaksyon sa mga kapantay sa network. handa na. Walang pumipigil sa iyo na gawin ito, kaya ang iyong transaksyon ay nasa ledger na.

Ito ang pinaka-desentralisado, pinaka-patunay ng censorship na paraan upang magdagdag ng mga transaksyon sa ledger nang walang mga tagapamagitan. Dahil lahat ay nagdaragdag lamang ng kanilang mga transaksyon sa pagpapatala nang hindi humihingi ng pahintulot mula sa sinuman.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ang mga DAG ay maaaring ituring na ikatlong yugto sa ebolusyon ng mga rehistro. Una ay mayroong mga sentralisadong rehistro, kung saan kinokontrol ng isang partido ang pag-access sa kanila. Pagkatapos ay dumating ang mga blockchain, na mayroon nang ilang mga controllers na nagtala ng mga transaksyon sa ledger. At sa wakas, walang mga controller sa DAG; direktang idinagdag ng mga user ang kanilang mga transaksyon.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ngayong mayroon na tayong kalayaang ito, hindi ito dapat humantong sa kaguluhan. Dapat tayong magkaroon ng kasunduan sa estado ng pagpapatala. At ang kasunduang ito, o consensus, ay karaniwang nangangahulugan ng kasunduan sa dalawang bagay:

  1. Anong nangyari?
  2. Sa anong pagkakasunud-sunod ito nangyari?

Madali nating masasagot ang unang tanong: kapag naidagdag na sa ledger ang isang transaksyong tama ang ginawa, naganap na ito. At period. Maaaring maabot ng impormasyon tungkol dito ang lahat ng kalahok sa iba't ibang oras, ngunit sa kalaunan ay matatanggap ng lahat ng node ang transaksyong ito at malalaman na nangyari ito.

Kung ito ay isang blockchain, ang mga minero ang magpapasya kung ano ang mangyayari. Anuman ang desisyon ng minero na isama sa isang bloke ay kung ano ang mangyayari. Lahat ng hindi niya kasama sa block ay hindi nangyayari.

Sa mga blockchain, nalulutas din ng mga minero ang pangalawang problema ng pinagkasunduan: order. Pinapayagan silang mag-order ng mga transaksyon sa loob ng block ayon sa gusto nila.

Paano matukoy ang pagkakasunud-sunod ng mga transaksyon sa isang DAG?

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Dahil nakadirekta ang aming graph, mayroon na kaming ilang order. Ang bawat transaksyon ay tumutukoy sa isa o higit pang nauna, mga magulang. Ang mga magulang naman, ay tumutukoy sa kanilang mga magulang, at iba pa. Malinaw na lumalabas ang mga magulang bago ang mga transaksyon ng bata. Kung ang alinman sa mga transaksyon ay maaaring maabot ng mga transition ng link ng magulang-anak, alam namin nang eksakto ang pagkakasunud-sunod sa pagitan ng mga transaksyon sa hanay ng mga transaksyong iyon.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ngunit ang pagkakasunud-sunod sa pagitan ng mga transaksyon ay hindi palaging matutukoy mula sa hugis ng graph lamang. Halimbawa, kapag ang dalawang transaksyon ay nasa magkatulad na sangay ng graph.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Upang malutas ang kalabuan sa mga ganitong kaso, umaasa kami sa tinatawag na mga provider ng order. Tinatawag din natin silang "mga saksi." Ito ay mga ordinaryong gumagamit na ang gawain ay patuloy na magpadala ng mga transaksyon sa network sa isang maayos na paraan, i.e. upang ang bawat isa sa kanilang mga nakaraang transaksyon ay maabot sa pamamagitan ng mga transition kasama ang mga link ng magulang-anak. Ang mga nagbibigay ng order ay mga pinagkakatiwalaang user, at umaasa ang buong network sa kanila na hindi nilalabag ang panuntunang ito. Nang sa gayon makatwiran magtiwala sa kanila, hinihiling namin na ang bawat provider ng order ay isang kilalang tao o organisasyon (hindi kilala) at may mawawala kung lalabag ito sa mga panuntunan, gaya ng reputasyon o negosyo batay sa tiwala.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Pinipili ng mga user ang mga provider ng order, at ang bawat user ay may kasamang listahan ng mga pinagkakatiwalaang provider nito sa bawat transaksyong ipinapadala nito sa network. Ang listahang ito ay binubuo ng 12 provider. Ito ay isang maliit na sapat na numero para sa isang tao upang i-verify ang pagkakakilanlan at reputasyon ng bawat isa sa kanila, at sapat upang matiyak na ang network ay patuloy na gagana sa kaganapan ng hindi maiiwasang mga problema sa isang minorya ng mga nagbibigay ng order.

Ang listahan ng mga provider na ito ay nag-iiba-iba sa bawat user, ngunit ang mga listahan ng mga kalapit na transaksyon ay maaaring mag-iba ng hanggang sa isang provider.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ngayong mayroon na kaming mga nagbibigay ng order, maaari naming ihiwalay ang kanilang mga transaksyon sa isang DAG at i-order ang lahat ng iba pang mga transaksyon sa paligid ng order na ginawa nila. Posibleng lumikha ng gayong algorithm (tingnan. Obyte White Paper para sa mga teknikal na detalye).

Ngunit ang pagkakasunud-sunod ng buong network ay hindi maaaring matukoy kaagad; kailangan namin ng oras para sa mga nagbibigay ng order na magpadala ng sapat na bilang ng kanilang mga transaksyon upang ma-verify ang huling pagkakasunud-sunod ng mga nakaraang transaksyon.

At, dahil ang pagkakasunud-sunod ay tinutukoy lamang ng mga posisyon ng mga transaksyon ng mga provider sa DAG, lahat ng mga node sa network ay maaga o huli ay makakatanggap ng lahat ng mga transaksyon at darating sa parehong konklusyon tungkol sa pagkakasunud-sunod ng mga transaksyon.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Kaya, mayroon kaming kasunduan sa kung ano ang itinuturing naming nangyari: nangyari ang anumang transaksyon na napupunta sa DAG. Mayroon din kaming kasunduan tungkol sa pagkakasunud-sunod ng mga kaganapan: ito ay maaaring maliwanag mula sa mga ugnayan ng mga transaksyon, o nahihinuha mula sa pagkakasunud-sunod ng mga transaksyon na ipinadala ng mga provider ng order. So may consensus tayo.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Mayroon kaming ganitong bersyon ng consensus sa Obyte. Kahit na ang pag-access sa Obyte ledger ay ganap na desentralisado, ang pinagkasunduan tungkol sa pagkakasunud-sunod ng mga transaksyon ay sentralisado pa rin dahil 10 sa 12 provider ay kinokontrol ng lumikha (Anton Churyumov), at dalawa lang sa kanila ang independyente. Naghahanap kami ng mga kandidatong handang maging isa sa mga independiyenteng tagapagbigay ng order upang tulungan kaming i-desentralisa ang pag-order ng ledger.

Kamakailan, lumitaw ang ikatlong independyenteng kandidato na handang mag-install at magpanatili ng isang order provider node - ang Unibersidad ng Nicosia.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ngayon paano natin makokontrol ang dobleng paggastos?

Ayon sa mga patakaran, kung ang dalawang transaksyon ay natagpuang gumagastos sa parehong barya, ang transaksyon na mauna sa huling pagkakasunud-sunod ng lahat ng mga transaksyon ay mananalo. Ang pangalawa ay hindi wasto ng consensus algorithm.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan
Kung posible na magtatag ng pagkakasunud-sunod sa pagitan ng dalawang transaksyon na gumagasta sa parehong barya (sa pamamagitan ng mga koneksyon ng magulang-anak), pagkatapos ay agad na tinatanggihan ng lahat ng mga node ang gayong pagtatangka na doblehin ang paggastos.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Kung sakaling ang order ay hindi makikita mula sa mga magulang na relasyon sa pagitan ng dalawang ganoong transaksyon, pareho silang tinatanggap sa ledger, at kailangan nating maghintay para sa pinagkasunduan at pagtatatag ng order sa pagitan nila gamit ang mga provider ng order. Pagkatapos ang naunang transaksyon ay mananalo, at ang pangalawa ay magiging hindi wasto.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Kahit na naging di-wasto ang pangalawang transaksyon, nananatili pa rin ito sa registry dahil mayroon na itong mga kasunod na transaksyong nagre-refer dito, na walang nilabag at hindi alam na magiging invalid ang transaksyong ito sa hinaharap. Kung hindi, kailangan naming tanggalin ang magulang ng magagandang kasunod na mga transaksyon, na lalabag sa pangunahing prinsipyo ng network - anumang tamang transaksyon ay tinatanggap sa ledger.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Ito ay isang napakahalagang panuntunan na nagbibigay-daan sa buong sistema na lumalaban sa mga pagtatangka sa censorship. 

Isipin natin na ang lahat ng mga nagbibigay ng order ay nagsasabwatan sa pagtatangkang "isensor" ang isang partikular na transaksyon. Maaari nilang balewalain ito at huwag na huwag itong piliin bilang isang "magulang" para sa kanilang mga transaksyon, ngunit hindi iyon sapat, ang transaksyon ay maaari pa ring isama nang hindi direkta bilang magulang ng ilang iba pang transaksyon na inisyu ng sinumang user sa network na hindi nakikipagsabwatan. Sa paglipas ng panahon, ang naturang transaksyon ay makakatanggap ng parami nang paraming mga anak, apo at apo sa tuhod mula sa mga ordinaryong gumagamit, na lumalagong parang snowball, at lahat ng napagkasunduang order provider ay kailangang balewalain din ang mga transaksyong ito. Sa kalaunan, kakailanganin nilang i-censor ang buong network, na katumbas ng sabotahe.

Mula sa blockchain hanggang DAG: pag-alis ng mga tagapamagitan

Sa ganitong paraan, ang DAG ay nananatiling lumalaban sa censorship kahit na mayroong sabwatan sa pagitan ng mga nagbibigay ng order, at sa gayon ay nalampasan ang blockchain na lumalaban sa censorship kung saan wala tayong magagawa kung magpasya ang mga minero na huwag isama ang alinman sa mga transaksyon. At ito ay sumusunod mula sa pangunahing pag-aari ng DAG: ang pakikilahok sa pagpapatala ay ganap na independyente at walang mga tagapamagitan, at ang mga transaksyon ay hindi maibabalik.

Pinagmulan: www.habr.com

Magdagdag ng komento