Test decentralizacije Cardano nadilazi broj čvorova
Voditelj Cheeky Crypto Nick Regan objašnjava zašto višestruki neovisni Cardano klijenti jačaju decentralizaciju samo kada dosljedno interpretiraju protokol. CPS-0034 predlaže šire testiranje Plutus Core kroz trenutačne i povijesne verzije protokola.
By SongMarketCap
Nick Regan, suosnivač i voditelj Cheeky Crypto, objavio je analizu od 24 minute o manje vidljivom riziku unutar Cardano decentralizacije: neovisno razvijenom softveru koji se može razilaziti u pravilima mreže. Cheeky Crypto je platforma za kripto analizu i edukaciju koju su 2020. osnovali Nick i Chris Regan.
Regan je povezao svoju analizu s CPS-0034, otvorenim Cardano Problem Statementom koji predlaže prošireno testiranje sukladnosti za Plutus Core evaluatore koje koriste alternativne Cardano implementacije čvorova. Rasprava se pomiče izvan raspodjele stake poolova, sudjelovanja u upravljanju i broja računala povezanih na mrežu.
Više klijenata ne povećava automatski sigurnost
Regan razlikuje fizičku raspodjelu mreže i raspodjelu njezina softvera. Cardano može imati tisuće čvorova kojima upravljaju različiti subjekti u više zemalja, dok se velik dio te infrastrukture i dalje oslanja na istu temeljnu implementaciju čvora.
Ako zajednička implementacija sadrži za konsenzus kritičan nedostatak, velik broj geografski raspoređenih čvorova mogao bi se istodobno suočiti s istim problemom. Alternativni klijenti smanjuju tu koncentraciju dopuštajući odvojenim timovima da koriste različite programske jezike, arhitekture i inženjerske odluke.
Pojavljuje se i drugi rizik kada te implementacije protokol tumače različito.
Jedan klijent mogao bi prihvatiti transakciju koju drugi odbacuje. Dva Plutus evaluatora mogla bi obraditi isti skript, ali vratiti različite rezultate ili izračunati različite troškove izvršavanja. Budući da valjanost bloka može ovisiti o tim ishodima, neslaganje između čvorova moglo bi proizvesti razdvajanje lanca umjesto veće otpornosti.
UPLC, odnosno Untyped Plutus Core, je jezik izvršavanja u koji se kompajliraju Plutus pametni ugovori. Alternativni evaluator ne treba reproducirati strukturu ustaljene Cardano Haskell implementacije, ali mora reproducirati ponašanje relevantno za konsenzus koje protokol očekuje.
Regan taj zahtjev opisuje kao potrebu za neovisnim slaganjem.
Zasebne kodne baze pružaju značajnu redundantnost samo kada dosljedno dolaze do istog odgovora za valjane ulaze, rubne slučajeve i povijesne verzije protokola.
Regan koristi naslov “ADA Has a Decentralisation Problem” kako bi ovaj rizik na softverskoj razini razlikovao od rasprava o decentralizaciji s kojima se većina vlasnika susreće. Njegova se analiza usredotočuje na preventivni rad na infrastrukturi, a ne na postojeći incident na glavnoj mreži.
CPS-0034 proširuje testiranje sukladnosti Plutus Core
Tim za Plutus Core otvorio je prijedlog za javnu raspravu 12. kolovoza. CIP urednici su mu potom nakon početnog pregleda dodijelili broj CPS-0034, dok tehnički prijedlog ostaje otvoren za povratne informacije.
Prema prijedlogu CPS-0034, Cardano trenutačno vanjskim developerima nudi otprilike 1000 unaprijed definiranih testova s referentnim datotekama. Oni omogućuju neovisnom evaluatoru da izvrši priloženi skript i usporedi njegov izlaz s očekivanim rezultatom.
Postojeći paket pruža početnu provjeru kompatibilnosti, ali ima dvije utvrđene ograničenosti. Ne izlaže testove temeljene na svojstvima koje interno koristi Plutus tim i pokriva samo najnoviju kombinaciju verzije protokola, verzije jezika glavne knjige i modela troška.
Testiranje temeljeno na svojstvima nadilazi manju zbirku ručno pripremljenih primjera. Generator može proizvesti stotine ili tisuće raznolikih ulaza, konstruirati iz njih Plutus skripte i provjeriti zadržavaju li se definirana ponašajna svojstva.
Ovaj pristup širi pokrivenost na neobične kombinacije, granične vrijednosti i uvjete koji se rijetko mogu pojaviti tijekom uobičajene aktivnosti. To su ujedno situacije u kojima će neovisno razvijene implementacije vjerojatnije otkriti različite pretpostavke o ponašanju protokola.
CPS-0034 predlaže distribuciju generiranih testnih slučajeva u prenosivom formatu koji vanjske implementacije mogu konzumirati uz minimalan integracijski rad. Svaki test mogao bi sadržavati program, njegove ulaze, očekivani rezultat i, gdje je primjenjivo, očekivani budžet izvršavanja.
Uključena je i povijesna pokrivenost. Cardano je prošao kroz više era glavne knjige, hard forkova, verzija Plutus jezika i promjena modela troška. Alternativni čvor mora ispravno interpretirati tu povijest ako se od njega očekuje da reproducira lanac i validira ranije blokove.
Prijedlog je posebno usmjeren na sukladnost evaluatora Plutus Core. Ne definira potpuni okvir testiranja za sve mrežne, knjigovodstvene i konsenzusne komponente unutar Cardano čvora. Njegova je važnost za sigurnost čvora u tome što različiti rezultati evaluacije skripti mogu promijeniti smatra li se transakcija ili blok valjanima.
Neovisni kod mora dokazati dosljedno ponašanje
CPS-0034 i dalje sadrži nekoliko otvorenih tehničkih pitanja. Developeri raspravljaju kako bi se generirani testovi trebali distribuirati, kako bi se trebale prijavljivati razlike između očekivanih i stvarnih rezultata, kako bi se slučajevi trebali filtrirati prema verziji protokola i kako se tisuće testova mogu učinkovito izvršavati.
Developeri povezani s Amaru već su se uključili u javnu raspravu. Amaru je open source Cardano klijentski čvor napisan u Rustu, koji operatorima pruža implementaciju razvijenu odvojeno od ustaljenog Haskell cardano-node.
Jedan Amaru suradnik izvijestio je da projekt već koristi postojeće semantičke i flat skupove testova sukladnosti. Povratne informacije podržale su šire testiranje svojstava i verzija, uz zahtjev za realističnim scenarijima na lancu, formatima podataka neovisnima o klijentu i jednostavnim putem za treće strane da doprinesu dodatnim slučajevima.
Predloženi pristupi uključivali su strukturirane testne predloške i označavanje slučajeva prema verzijama protokola i jezika koje pokrivaju. U raspravi je također izražena zabrinutost oko implementiranja generatora isključivo u Haskellu jer bi to moglo stvoriti dodatnu prepreku za timove koji rade u drugim jezicima.
Zajednički standard testiranja ne bi zahtijevao identičan izvorni kod. Svaki tim može zadržati vlastitu arhitekturu, programski jezik i razvojni pristup, dok će rezultirajuće ponašanje pri izvršavanju ostati kompatibilno s Cardano pravilima.
Za ADA vlasnike, pitanje se tiče otpornosti infrastrukture, a ne kratkoročne tržišne izvedbe. Burze, novčanici, decentralizirane aplikacije i institucionalni sustavi ovise o tome da različiti čvorovi dolaze do determinističkih odluka o transakcijama, skriptama i blokovima.
Ako CPS-0034 proizvede prenosiv, na verzije usmjeren skup testova sukladnosti, alternativni Cardano klijent više neće pokazivati kompatibilnost samo time što postoji kao zasebna kodna baza. Moći će pružiti ponovljive dokaze da neovisno napisan softver dolazi do istog rezultata i troška izvršavanja kroz povijest Cardano protokola, otkrivajući nesuglasja tijekom testiranja prije nego što mogu doći do živog bloka.