Å ajÄ rakstÄ es jums pastÄstÄ«Å”u par DAG (Directed Acyclic Graph) un tÄ pielietojumu sadalÄ«tajÄs virsgrÄmatÄs, un mÄs to salÄ«dzinÄsim ar blokÄ·Ädi.
DAG nav nekas jauns kriptovalÅ«tu pasaulÄ. IespÄjams, esat dzirdÄjuÅ”i par to kÄ risinÄjumu blokÄ·Ädes mÄrogojamÄ«bas problÄmÄm. TaÄu Å”odien mÄs nerunÄsim par mÄrogojamÄ«bu, bet gan par to, ar ko kriptovalÅ«tas atŔķiras no visa pÄrÄjÄ: decentralizÄcija, starpnieku trÅ«kums un pretestÄ«ba cenzÅ«rai.
Es arÄ« parÄdÄ«Å”u, ka DAG patiesÄ«bÄ ir izturÄ«gÄks pret cenzÅ«ru un nav starpnieku, kas piekļūtu virsgrÄmatai.
Mums pazÄ«stamajÄs blokÄ·ÄdÄs lietotÄjiem nav tieÅ”as piekļuves paÅ”ai virsgrÄmatai. Ja vÄlaties pievienot darÄ«jumu virsgrÄmatai, jums tas ir "jÄlÅ«dz" bloka ražotÄjam (arÄ« "kalnraÄu"). KalnraÄi ir tie, kas izlemj, kuru darÄ«jumu pievienot nÄkamajam blokam un kuru ne. TieÅ”i kalnraÄiem ir ekskluzÄ«va piekļuve blokiem un tiesÄ«bas izlemt, kura darÄ«jums tiks pieÅemts iekļauÅ”anai virsgrÄmatÄ.
KalnraÄi ir starpnieki, kas stÄv starp jums un izplatÄ«to virsgrÄmatu.
PraksÄ parasti neliels skaits kalnraÄu pÅ«lu kolektÄ«vi kontrolÄ vairÄk nekÄ pusi no tÄ«kla skaitļoÅ”anas jaudas. Bitcoinam tie ir Äetri baseini, Ethereum - divi. Ja viÅi vienojas, viÅi var bloÄ·Ät jebkurus darÄ«jumus, ko vÄlas.
Dažu pÄdÄjo gadu laikÄ ir ierosinÄtas daudzas blokÄ·Äžu variÄcijas, kas atŔķiras pÄc bloku ražotÄju izvÄles principiem. Bet paÅ”i bloku ražotÄji nekur neiet, viÅi joprojÄm "stÄv pie barjeras": katram darÄ«jumam ir jÄiet caur bloku ražotÄju, un, ja viÅÅ” to nepieÅem, tad darÄ«juma faktiski nav.
TÄ ir neizbÄgama problÄma ar blokÄ·Ädi. Un, ja mÄs vÄlamies to atrisinÄt, mums ir radikÄli jÄmaina dizains un pilnÄ«bÄ jÄatbrÄ«vojas no blokiem un bloku ražotÄjiem. Un tÄ vietÄ, lai veidotu bloku Ä·Ädi, mÄs savienosim paÅ”us darÄ«jumus, katrÄ darÄ«jumÄ iekļaujot vairÄku iepriekÅ”Äjo hashes. RezultÄtÄ mÄs iegÅ«stam struktÅ«ru, kas matemÄtikÄ pazÄ«stama kÄ virzÄ«ts aciklisks grafs - DAG.
Tagad ikvienam ir tieÅ”a piekļuve reÄ£istram, bez starpniekiem. Ja vÄlaties pievienot darÄ«jumu virsgrÄmatai, vienkÄrÅ”i pievienojiet to. JÅ«s atlasÄt vairÄkus vecÄku darÄ«jumus, pievienojat savus datus, parakstÄt un nosÅ«tÄt savu darÄ«jumu vienaudžiem tÄ«klÄ. Gatavs. Neviens neliedz jums to darÄ«t, tÄpÄc jÅ«su darÄ«jums jau ir reÄ£istrÄts virsgrÄmatÄ.
Å is ir visdecentralizÄtÄkais un cenzÅ«rai droÅ”Äkais veids, kÄ bez starpniekiem pievienot darÄ«jumus virsgrÄmatai. Jo visi vienkÄrÅ”i pievieno savus darÄ«jumus reÄ£istram, nevienam neprasot atļauju.
DAG var uzskatÄ«t par treÅ”o posmu reÄ£istru attÄ«stÄ«bÄ. Vispirms bija centralizÄti reÄ£istri, kur viena puse kontrolÄja piekļuvi tiem. PÄc tam parÄdÄ«jÄs blokÄ·Ädes, kurÄs jau bija vairÄki kontrolieri, kas ierakstÄ«ja darÄ«jumus virsgrÄmatÄ. Visbeidzot, DAG vispÄr nav kontrolieru; lietotÄji savus darÄ«jumus pievieno tieÅ”i.
Tagad, kad mums ir Ŕī brÄ«vÄ«ba, tai nevajadzÄtu radÄ«t haosu. Mums ir jÄvienojas par reÄ£istra stÄvokli. Un Ŕī vienoÅ”anÄs jeb konsenss parasti nozÄ«mÄ vienoÅ”anos par divÄm lietÄm:
- Kas notika?
- KÄdÄ secÄ«bÄ tas notika?
Uz pirmo jautÄjumu varam viegli atbildÄt: kad pareizi izveidota transakcija ir pievienota virsgrÄmatai, tÄ ir notikusi. Un periods. InformÄcija par to var sasniegt visus dalÄ«bniekus dažÄdos laikos, taÄu galu galÄ visi mezgli saÅems Å”o darÄ«jumu un zinÄs, ka tas ir noticis.
Ja tÄ bÅ«tu blokÄ·Äde, kalnraÄi izlemtu, kas notiks. NeatkarÄ«gi no tÄ, ko kalnracis nolemj iekļaut blokÄ, tas notiek. Viss, ko viÅÅ” neiekļauj blokÄ, nenotiek.
BlokÄ·ÄdÄs kalnraÄi atrisina arÄ« otru vienprÄtÄ«bas problÄmu: kÄrtÄ«bu. ViÅiem ir atļauts pasÅ«tÄ«t darÄ«jumus blokÄ pÄc saviem ieskatiem.
KÄ noteikt darÄ«jumu secÄ«bu DAG?
Tikai tÄpÄc, ka mÅ«su grafiks ir vÄrsts, mums jau ir zinÄma kÄrtÄ«ba. Katrs darÄ«jums attiecas uz vienu vai vairÄkiem iepriekÅ”Äjiem vecÄkiem. VecÄki savukÄrt atsaucas uz saviem vecÄkiem utt. VecÄki acÄ«mredzami parÄdÄs pirms bÄrnu darÄ«jumiem. Ja kÄdu no transakcijÄm var sasniegt, pÄrejot no vecÄk-bÄrniem, mÄs precÄ«zi zinÄm secÄ«bu starp darÄ«jumiem Å”ajÄ darÄ«jumu Ä·ÄdÄ.
TaÄu secÄ«bu starp darÄ«jumiem ne vienmÄr var noteikt tikai pÄc diagrammas formas. PiemÄram, ja divas transakcijas notiek paralÄlos grafika zaros.
Lai atrisinÄtu neskaidrÄ«bas Å”Ädos gadÄ«jumos, mÄs paļaujamies uz tÄ sauktajiem pasÅ«tÄ«jumu nodroÅ”inÄtÄjiem. MÄs tos saucam arÄ« par "lieciniekiem". Tie ir parastie lietotÄji, kuru uzdevums ir nepÄrtraukti un sakÄrtoti sÅ«tÄ«t transakcijas uz tÄ«klu, t.i. lai katru no viÅu iepriekÅ”Äjiem darÄ«jumiem varÄtu sasniegt, izmantojot pÄrejas pa vecÄku un bÄrnu saitÄm. PasÅ«tÄ«jumu nodroÅ”inÄtÄji ir uzticami lietotÄji, un viss tÄ«kls paļaujas uz tiem, lai nepÄrkÄptu Å”o noteikumu. Lai racionÄli Uzticieties viÅiem, mÄs pieprasÄm, lai katrs pasÅ«tÄ«juma nodroÅ”inÄtÄjs bÅ«tu zinÄma (ne anonÄ«ma) persona vai organizÄcija, un viÅam ir ko zaudÄt, ja tas pÄrkÄpj noteikumus, piemÄram, reputÄciju vai uzÅÄmÄjdarbÄ«bu, kuras pamatÄ ir uzticÄÅ”anÄs.
PasÅ«tÄ«jumu nodroÅ”inÄtÄjus izvÄlas lietotÄji, un katrs lietotÄjs iekļauj savu uzticamo pakalpojumu sniedzÄju sarakstu katrÄ darÄ«jumÄ, ko tas nosÅ«ta uz tÄ«klu. Å ajÄ sarakstÄ ir 12 pakalpojumu sniedzÄji. Tas ir pietiekami mazs skaitlis, lai persona varÄtu pÄrbaudÄ«t katra identitÄti un reputÄciju, un pietiekami, lai nodroÅ”inÄtu, ka tÄ«kls turpina darboties neizbÄgamu problÄmu gadÄ«jumÄ ar pasÅ«tÄ«jumu nodroÅ”inÄtÄju mazÄkumu.
Å is pakalpojumu sniedzÄju saraksts dažÄdiem lietotÄjiem ir atŔķirÄ«gs, taÄu blakus esoÅ”o darÄ«jumu saraksti var atŔķirties atkarÄ«bÄ no pakalpojumu sniedzÄja.
Tagad, kad mums ir pasÅ«tÄ«jumu nodroÅ”inÄtÄji, mÄs varam izolÄt to darÄ«jumus DAG un pasÅ«tÄ«t visus citus darÄ«jumus atbilstoÅ”i viÅu izveidotajam pasÅ«tÄ«jumam. Ir iespÄjams izveidot Å”Ädu algoritmu (sk.
TaÄu visa tÄ«kla secÄ«bu nevar noteikt uzreiz; mums ir vajadzÄ«gs laiks, lai pasÅ«tÄ«jumu nodroÅ”inÄtÄji varÄtu nosÅ«tÄ«t pietiekamu skaitu savu darÄ«jumu, lai pÄrbaudÄ«tu iepriekÅ”Äjo darÄ«jumu galÄ«go secÄ«bu.
Un, tÄ kÄ secÄ«bu nosaka tikai pakalpojumu sniedzÄju darÄ«jumu pozÄ«cijas DAG, visi tÄ«kla mezgli agri vai vÄlu saÅems visus darÄ«jumus un nonÄks pie viena secinÄjuma par darÄ«jumu secÄ«bu.
TÄtad, mÄs esam vienojuÅ”ies par to, kas, mÅ«suprÄt, ir noticis: ir noticis jebkurÅ” darÄ«jums, kas beidzas ar DAG. Mums ir arÄ« vienoÅ”anÄs par notikumu secÄ«bu: tas ir vai nu redzams no darÄ«jumu attiecÄ«bÄm, vai arÄ« izriet no pasÅ«tÄ«jumu sniedzÄju nosÅ«tÄ«to darÄ«jumu secÄ«bas. TÄtad mums ir vienprÄtÄ«ba.
Mums ir Ŕī vienprÄtÄ«bas versija pakalpojumÄ Obyte. Lai gan piekļuve Obitu virsgrÄmatai ir pilnÄ«bÄ decentralizÄta, vienprÄtÄ«ba par darÄ«jumu secÄ«bu joprojÄm ir centralizÄta, jo 10 no 12 pakalpojumu sniedzÄjiem kontrolÄ veidotÄjs (Antons Äuryumovs), un tikai divi no tiem ir neatkarÄ«gi. MÄs meklÄjam kandidÄtus, kas vÄlas kļūt par vienu no neatkarÄ«giem pasÅ«tÄ«jumu nodroÅ”inÄtÄjiem, lai palÄ«dzÄtu mums decentralizÄt virsgrÄmatas pasÅ«tÄ«Å”anu.
Nesen ir parÄdÄ«jies treÅ”ais neatkarÄ«gais kandidÄts, kurÅ” vÄlas uzstÄdÄ«t un uzturÄt pasÅ«tÄ«jumu nodroÅ”inÄtÄja mezglu ā Nikosijas universitÄti.
Tagad kÄ mÄs kontrolÄjam dubultos tÄriÅus?
SaskaÅÄ ar noteikumiem, ja tiek konstatÄti divi darÄ«jumi, kas tÄrÄ vienu un to paÅ”u monÄtu, uzvar darÄ«jums, kurÅ” ir pirmais visu darÄ«jumu galÄ«gajÄ secÄ«bÄ. Otrais ir nederÄ«gs ar konsensa algoritmu.
Ja ir iespÄjams izveidot kÄrtÄ«bu starp diviem darÄ«jumiem, tÄrÄjot vienu un to paÅ”u monÄtu (izmantojot vecÄku un bÄrnu savienojumus), tad visi mezgli nekavÄjoties noraida Å”Ädu mÄÄ£inÄjumu dubultot tÄriÅus.
GadÄ«jumÄ, ja pasÅ«tÄ«jums nav redzams no vecÄku attiecÄ«bÄm starp diviem Å”Ädiem darÄ«jumiem, tie abi tiek pieÅemti virsgrÄmatÄ, un mums bÅ«s jÄgaida vienprÄtÄ«ba un pasÅ«tÄ«juma izveidoÅ”ana starp tiem, izmantojot pasÅ«tÄ«juma nodroÅ”inÄtÄjus. Tad uzvarÄs agrÄkais darÄ«jums, bet otrais kļūs nederÄ«gs.
Pat ja otrais darÄ«jums kļūst nederÄ«gs, tas joprojÄm paliek reÄ£istrÄ, jo tajÄ jau ir sekojoÅ”i darÄ«jumi, kas uz to atsaucas, kas neko nepÄrkÄpa un nezinÄja, ka Å”is darÄ«jums nÄkotnÄ kļūs nederÄ«gs. PretÄjÄ gadÄ«jumÄ mums nÄktos noÅemt labu nÄkamo darÄ«jumu mÄtesuzÅÄmumu, kas pÄrkÄptu tÄ«kla galveno principu - jebkurÅ” pareizs darÄ«jums tiek pieÅemts virsgrÄmatÄ.
Å is ir ļoti svarÄ«gs noteikums, kas ļauj visai sistÄmai bÅ«t izturÄ«gai pret cenzÅ«ras mÄÄ£inÄjumiem.
IedomÄsimies, ka visi pasÅ«tÄ«jumu nodroÅ”inÄtÄji sadarbojas, mÄÄ£inot "cenzÄt" vienu konkrÄtu darÄ«jumu. ViÅi var to ignorÄt un nekad neizvÄlÄties to kÄ "vecÄku" saviem darÄ«jumiem, taÄu ar to nepietiek, darÄ«jumu joprojÄm var iekļaut netieÅ”i kÄ vecÄku darÄ«jumu kÄdam citam tÄ«kla lietotÄjam, kurÅ” neveic slepenas vienoÅ”anÄs. Laika gaitÄ Å”Äds darÄ«jums no parastajiem lietotÄjiem saÅems arvien vairÄk bÄrnu, mazbÄrnu un mazmazbÄrnu, kas aug kÄ sniega pikas, un arÄ« visiem saskaÅotajiem pasÅ«tÄ«jumu veicÄjiem Å”ie darÄ«jumi bÅ«s jÄignorÄ. Galu galÄ viÅiem bÅ«s jÄcenzÄ viss tÄ«kls, kas ir lÄ«dzvÄrtÄ«gs sabotÄžai.
TÄdÄ veidÄ DAG joprojÄm ir izturÄ«gs pret cenzÅ«ru pat tad, ja pasÅ«tÄ«jumu nodroÅ”inÄtÄju starpÄ notiek slepena vienoÅ”anÄs, tÄdÄjÄdi pÄrspÄjot cenzÅ«rai izturÄ«go blokÄ·Ädi, kurÄ mÄs neko nevaram darÄ«t, ja kalnraÄi nolemj neiekļaut nevienu no darÄ«jumiem. Un tas izriet no galvenÄ DAG Ä«paÅ”uma: dalÄ«ba reÄ£istrÄ ir pilnÄ«gi neatkarÄ«ga un bez starpniekiem, un darÄ«jumi ir neatgriezeniski.
Avots: www.habr.com