Cardanov preizkus decentralizacije presega zgolj število vozlišč

Voditelj Cheeky Crypto Nick Regan pojasni, zakaj več neodvisnih odjemalcev Cardano krepi decentralizacijo le, kadar protokol razlagajo dosledno. CPS-0034 predlaga širše testiranje Plutus Core prek trenutnih in zgodovinskih različic protokola.

By SongMarketCap

Cardano News - Cardanov preizkus decentralizacije presega zgolj število vozlišč

Nick Regan, soustanovitelj in voditelj Cheeky Crypto, je objavil 24-minutno analizo manj očitnega tveganja znotraj decentralizacije pri Cardanu: neodvisno razvite programske opreme, ki se lahko ne strinja glede pravil omrežja. Cheeky Crypto je platforma za analize in izobraževanje o kriptu, ki sta jo leta 2020 ustanovila Nick in Chris Regan.

Regan je svojo analizo povezal s CPS-0034, odprtim Cardano Problem Statement, ki predlaga razširjeno preskušanje skladnosti za evaluatorje Plutus Core, ki jih uporabljajo alternativne implementacije vozlišča Cardano. Razprava se pomakne onkraj porazdelitve staking bazenov, udeležbe v upravljanju in števila naprav, povezanih v omrežje.

Več odjemalcev samo po sebi ne poveča varnosti

Regan razlikuje med fizično porazdelitvijo omrežja in porazdelitvijo njegove programske opreme. Cardano ima lahko na tisoče vozlišč, ki jih upravljajo različni subjekti v številnih državah, medtem ko se velik del te infrastrukture še vedno opira na isto temeljno implementacijo vozlišča.

Če skupna implementacija vsebuje za konsenz kritično napako, se lahko veliko geografsko porazdeljenih vozlišč istočasno sreča z enako težavo. Alternativni odjemalci to koncentracijo zmanjšajo, saj ločenim ekipam omogočajo uporabo različnih programskih jezikov, arhitektur in inženirskih odločitev.

Drugo tveganje se pojavi, ko te implementacije protokol razlagajo različno.

En odjemalec lahko sprejme transakcijo, ki jo drugi zavrne. Dva evaluatorja Plutus lahko obdelata isti skript, vendar vrneta različne rezultate ali izračunata različne stroške izvajanja. Ker veljavnost bloka lahko izhaja iz teh izidov, lahko nesoglasje med vozlišči povzroči razcep verige namesto večje odpornosti.

UPLC oziroma Untyped Plutus Core je izvajalni jezik, v katerega so prevedene pametne pogodbe Plutus. Alternativni evaluator mu ni treba ponoviti strukture uveljavljene Haskell implementacije Cardano, mora pa reproducirati za konsenz pomembno vedenje, ki ga pričakuje protokol.

Regan ta zahtevek opiše kot potrebo po neodvisnem soglasju.

Ločene izvorne kode zagotavljajo smiselno redundanco le, če dosledno dosežejo enak odgovor pri veljavnih vnosih, robnih primerih in zgodovinskih različicah protokola.

Regan uporabi naslov “ADA Has a Decentralisation Problem”, da to tveganje na programski ravni loči od razprav o decentralizaciji, s katerimi se srečujejo večinoma imetniki. Njegova analiza se osredotoča na preventivno delo na infrastrukturi, ne pa na obstoječ incident na mainnetu.

CPS-0034 razširja preskušanje skladnosti Plutus Core

Ekipa Plutus Core je 12. avgusta odprla predlog za javni pregled. Uredniki CIP so mu po začetnem pregledu naknadno dodelili številko CPS-0034, tehnični predlog pa ostaja odprt za povratne informacije.

Po predlogu CPS-0034 Cardano trenutno zunanjim razvijalcem zagotavlja približno 1.000 vnaprej pripravljenih testov golden-file. Ti omogočajo, da neodvisni evaluator izvede priložen skript in njegovo izhodno vrednost primerja s pričakovanim rezultatom.

Obstoječi nabor nudi začetno preverjanje združljivosti, vendar ima dve prepoznani omejitvi. Ne razkriva na lastnostih temelječih testov, ki jih interno uporablja ekipa Plutus, in pokriva samo najnovejšo kombinacijo različice protokola, različice jezika glavne knjige in stroškovnega modela.

Testiranje, utemeljeno na lastnostih, presega manjši nabor ročno pripravljenih primerov. Generator lahko ustvari stotine ali tisoče raznolikih vnosov, iz njih sestavi skripte Plutus in preveri, ali opredeljene vedenjske lastnosti še naprej držijo.

Tak pristop razširi pokritost na neobičajne kombinacije, robne vrednosti in pogoje, ki se med običajno dejavnostjo redko pojavijo. To so tudi situacije, v katerih bodo neodvisno razvite implementacije verjetneje razkrile različne predpostavke o vedenju protokola.

CPS-0034 predlaga distribucijo ustvarjenih testnih primerov v prenosljivem formatu, ki ga lahko zunanje implementacije uporabijo z minimalnim integracijskim delom. Vsak test lahko vsebuje program, njegove vnose, pričakovani rezultat in, kjer je ustrezno, pričakovani proračun izvajanja.

Vključena je tudi zgodovinska pokritost. Cardano je prešel skozi več obdobij glavne knjige, hard forke, različice jezika Plutus in spremembe stroškovnih modelov. Alternativno vozlišče mora to zgodovino pravilno razlagati, če naj ponovno predvaja verigo in potrjuje starejše bloke.

Predlog je posebej osredotočen na skladnost evaluatorjev Plutus Core. Ne definira celovitega testnega ogrodja za vse komponente omrežja, glavne knjige in konsenza znotraj vozlišča Cardano. Njegova pomembnost za varnost vozlišča izhaja iz dejstva, da lahko različni rezultati ocenjevanja skriptov spremenijo, ali se transakcija ali blok šteje za veljavna.

Neodvisna koda mora dokazati dosledno vedenje

CPS-0034 še vedno vsebuje več odprtih tehničnih vprašanj. Razvijalci razpravljajo o tem, kako naj se generirani testi distribuirajo, kako naj se poročajo razlike med pričakovanimi in dejanskimi rezultati, kako naj se primeri filtrirajo po različici protokola in kako učinkovito izvesti tisoče testov.

Razvijalci, povezani z Amaru, so se že pridružili javni razpravi. Amaru je odprtokodni odjemalec vozlišča Cardano, napisan v Rustu, ki operaterjem ponuja implementacijo, razvito ločeno od uveljavljene Haskell cardano-node.

Sodelavec pri Amaru je sporočil, da projekt že uporablja obstoječe nabore testov semantične in flat skladnosti. Povratne informacije so podprle širše testiranje lastnosti in različic, hkrati pa zahtevale realistične scenarije na verigi, za odjemalce nevtralne podatkovne formate in preprosto pot za tretje osebe za prispevanje dodatnih primerov.

Med predlaganimi pristopi so bile strukturirane testne priprave in označevanje primerov glede na različice protokola in jezika, ki jih pokrivajo. V razpravi so izrazili tudi zadržke glede izvedbe generatorja izključno v Haskellu, saj bi to lahko ustvarilo dodatno oviro za ekipe, ki delajo v drugih jezikih.

Skupni testni standard ne bi zahteval enake izvorne kode. Vsaka ekipa bi lahko ohranila svojo arhitekturo, programski jezik in pristop k razvoju, medtem ko bi nastalo vedenje pri izvajanju ostalo skladno s pravili Cardano.

Za imetnike ADA se zadeva nanaša na odpornost infrastrukture, ne pa na kratkoročno tržno uspešnost. Menjalnice, denarnice, decentralizirane aplikacije in institucionalni sistemi so odvisni od tega, da različna vozlišča sprejemajo deterministične odločitve o transakcijah, skriptih in blokih.

Če CPS-0034 prinese prenosljiv, na različice občutljiv nabor testov skladnosti, alternativni odjemalec Cardano združljivosti ne bo več izkazoval zgolj z obstojem kot ločena izvorna koda. Lahko bo zagotovil ponovljive dokaze, da neodvisno napisana programska oprema doseže enak rezultat in strošek izvajanja skozi zgodovino protokola Cardano, pri čemer se nesoglasja razkrijejo med testiranjem, še preden lahko dosežejo živi blok.