Pochopenie Mithrilu
Mithril je v prevádzke na hlavnej sieti Cardano. Vysvetlíme si, ako Mithril funguje a na čo je užitočný.
Nedôverujte, overujte
Jedným zo základných princípov decentralizácie je absencia tretej strany, ktorej musíte ako účastník systému dôverovať. Namiesto dôvery máte možnosť overiť si všetky informácie a získať tak jedinú verziu pravdy. To, čo je v danom okamihu pravdivé pre vás, je pravdivé aj pre všetkých ostatných účastníkov systému.
Ak chcete byť plnohodnotným účastníkom siete blockchain, musíte spustiť vlastný plnohodnotný uzol, ktorý vám umožní overiť históriu všetkých transakcií. Ľudia nie sú ochotní spustiť vlastný plný uzol a nie je to možné ani na mobilných zariadeniach. Spustenie plného uzla je náročné na zdroje. Okrem toho si vyžaduje čas a určité technologické zručnosti.
Problém čiastočne vyriešili tzv. ľahké uzly, ktoré namiesto celých blokov ukladajú len hlavičky blokov (akýsi súhrn transakcií každého bloku). Tým sa znížili požiadavky na úložisko, výpočtový výkon a šírku pásma. Nevýhodou však je, že ľahký uzol nemôže overovať transakcie nezávisle od celého uzla. Ľahké uzly sa tiež spoliehajú na plné uzly pri vysielaní svojich transakcií do siete a prijímaní aktualizácií stavu blockchainu.
Ľahké uzly sú schopné overovať transakcie bez plných uzlov len vtedy, ak majú dôveryhodný zdroj informácií, napríklad kryptografický dôkaz alebo dôveryhodný kontrolný bod. Niektoré ľahké uzly napríklad používajú protokol zjednodušeného overovania platieb (SPV), ktorý im umožňuje overovať transakcie vyžiadaním dôkazu o zaradení od plných uzlov. Dôkaz o zaradení je postupnosť hlavičiek blokov, ktoré spájajú transakciu s najnovším blokom. Ľahký uzol potom môže skontrolovať dôkaz so svojimi vlastnými hlavičkami blokov a potvrdiť, že transakcia je platná a potvrdená sieťou.
Existujú niektoré ľahké peňaženky, ktoré nie sú ľahkými uzlami a komunikujú so servermi len prostredníctvom proprietárnych protokolov. Zvyčajne ide o online peňaženky alebo úschovné peňaženky, ktoré uchovávajú vaše súkromné kľúče na svojich serveroch a spravujú vaše transakcie za vás. Tieto peňaženky nekomunikujú s blockchainom priamo, ale spoliehajú sa pri tom na svoje vlastné servery.
Aj keď používate hardvérové peňaženky Trezor alebo Ledger bežným spôsobom, ste závislí od serverov tretích strán, ktoré sú pripojené k plným uzlom jednotlivých blockchainov.
Závislosť od tretích strán je v rozpore s ideálmi decentralizácie, pretože predstavuje potenciálne riziko cenzúry transakcií, zhromažďovania údajov, úniku súkromných informácií alebo dokonca zmrazenia účtov.
Je naivné očakávať, že ľudia budú kvôli decentralizácii prevádzkovať plné uzly. Je potrebné vytvoriť technologické riešenie, ktoré im ponúkne všetky výhody plného uzla a ktoré budú môcť pohodlne spustiť na mobilnom telefóne.
Mithril umožní vytvárať nedôveryhodných ľahkých klientov a aplikácie DeFi, ktoré sú úplne nezávislé od tretích strán z hľadiska možnosti efektívneho overovania údajov na vlastnom zariadení. Umožňuje tiež rýchly bootstrapping uzlov a bezpečnú synchronizáciu údajov, decentralizované hlasovanie na základe distribúcie podielov (on-chain governance), efektívnu správu sidechainu, uľahčuje vývoj škálovateľnejšieho blockchainu atď.
Schéma viacnásobného podpisu na základe podielu (STM)
Mithril je v podstate podpisová schéma, ktorá umožňuje sieti Cardano generovať kryptografické certifikáty. Tieto certifikáty sú ľahko overiteľným dôkazom, že ich vytvorili (kryptograficky podpísali) účastníci vlastniaci požadovaný počet podielov (mincí).
Certifikát si môžete predstaviť ako správu, s ktorou súhlasia viacerí účastníci (držitelia ADA) a aktívne ju potvrdzujú svojimi (digitálnymi) podpismi, aby verejne deklarovali svoj súhlas. Účastníci môžu svojimi podpismi v podstate potvrdiť akúkoľvek informáciu. Jedným z konkrétnych využití môže byť pravidelné vytváranie snímok so stavom blockchainu.
Nie je nevyhnutné, aby správu potvrdili všetci účastníci. Namiesto toho sa pri každom generovaní nového certifikátu vyberie náhodná množina účastníkov a vyžaduje sa, aby ho podpísala dostatočná podmnožina týchto účastníkov. Podobne ako v prípade vedúceho slotu, ktorý získava právo na výrobu nového bloku v danom slote, aj účastníci Mithrilu sa vyberajú náhodne.
Prahový multipodpis založený na podiele (STM) je druh prahovej podpisovej schémy (TSS), ktorá rešpektuje rozdelenie podielu (mincí) v sieti blockchain. TSS je systém, ktorý umožňuje generovanie jedného digitálneho podpisu na základe podpisov od viacerých podpisovateľov.
Ide o podobný koncept ako pri schéme viacerých podpisov K-of-N. V tejto schéme napríklad 5 účastníkov vlastní súkromný kľúč, ktorý možno použiť na podpísanie správy. Ak správu podpíšu len 3 účastníci, považuje sa za platnú (3-of-5).
Schéma STM sa od schémy K-of-N líši tým, že počet účastníkov, ktorí môžu podpísať certifikát, sa určuje na základe počtu registrovaných účastníkov (signatárov) a ich podielu.
Ak viete, ako funguje bežný digitálny podpis, ktorý používate napríklad pri vytváraní blockchainovej transakcie, ľahko pochopíte základné princípy fungovania STM.
STM je typ protokolu digitálneho podpisu, ktorý umožňuje skupine účastníkov kolektívne podpísať správu (vytvoriť certifikát) bez toho, aby odhalili svoje individuálne súkromné kľúče. Digitálny podpis je spôsob, ako dokázať pravosť a integritu správy. Digitálny podpis sa zvyčajne generuje použitím matematickej funkcie na správu a súkromný kľúč podpisovateľa. Súkromný kľúč je tajná informácia, ktorú pozná len podpisovateľ, zatiaľ čo verejný kľúč je súvisiaca informácia, ktorú môže ktokoľvek použiť na overenie podpisu.
Poznámka: Nižšie uvedený obrázok lepšie pochopíte, keď si v nasledujúcej časti prečítate o úlohách účastníkov v sieti Mithril.
STM funguje tak, že súkromný kľúč sa rozdelí na niekoľko podielov a rozdelí sa medzi rôzne strany na základe podielu (mincí ADA). Každá strana potom môže použiť svoj podiel na generovanie čiastočného podpisu správy bez toho, aby poznala celý súkromný kľúč. Čiastkové podpisy sa potom môžu kombinovať (agregátorom) a vytvoriť platný podpis, ktorý je nerozoznateľný od podpisu vygenerovaného úplným súkromným kľúčom. Výhodou tohto prístupu je, že zvyšuje bezpečnosť a odolnosť podpisového procesu, pretože žiadna strana nemôže podpísať alebo kompromitovať súkromný kľúč.
Keďže ide o prahovú podpisovú schému, je potrebné, aby sa na podpisovaní certifikátu zúčastnilo požadované kvórum podpisovateľov. V opačnom prípade nie je možné vytvoriť nový certifikát, čo nie je problém, pretože sa to dá urobiť v ďalšom kole s inou množinou náhodne vybraných podpisovateľov.
Podpisovatelia konajú nezávisle jeden od druhého a každý jednotlivý podpis sa dá overiť. Jednotlivé podpisy sa sumarizujú a je možné vyrobiť nový certifikát, ak sa dosiahla požadovaná prahová hodnota. Agregovaný podpis je možné overiť vzhľadom na globálny verejný kľúč, ktorý predstavuje množinu zainteresovaných strán.
Generovanie certifikátov Mithril sa riadi niekoľkými parametrami. Parameter “m” definuje počet lotérií, ktoré môže jeden účastník podpísať. Parameter “k” definuje, koľko podpisov je potrebných na vytvorenie platného certifikátu. Parameter “φ” definuje náhodnosť v systéme, ktorá ovplyvňuje šancu na výhru v lotérii a podpísanie certifikátu.
Vytvorenie certifikátu Mithril
Je definovaných niekoľko rolí, ktoré sa podieľajú na vytváraní certifikátu Mithril.
Podpisovač Mithril je uzol, ktorý funguje transparentne nad uzlami SPO Cardano. Pracuje v spojení s agregátorom Mithril. Podpisovač Mithril generuje pre každú epochu nový pár kľúčov Mithril a podpisuje ich kľúčmi KES. Overovacie kľúče (verejné kľúče) sa potom vysielajú všetkým ostatným podpisovateľom v rámci siete Mithril. Podpisový uzol pravidelne overuje snímky úplného stavu blockchainu Cardano a podpisuje tieto snímky pomocou súkromného kľúča Mithril.
Agregátor Mithril je nedôveryhodný uzol zodpovedný za organizovanie činností podpisovacích uzlov Mithril. Agregátorový uzol riadi vytváranie nového certifikátu Mithril. Na tento účel musí agregátor spolupracovať s podpisujúcimi uzlami a koordinovať ich. Všetky podpisovacie uzly v danom kole podpíšu celý stav blockchainu Cardano (snapshot) a pošlú podpisy agregátorovi. Niektorí podpisovatelia nemusia byť schopní poslať podpis (výpadok, útok atď.). Keď agregátor dostane dostatočný počet podpisov, môže vytvoriť certifikát Mithril na základe spojenia všetkých podpisov dohromady (spojením čiastkových podpisov sa vytvorí ekvivalentný podpis, ako keby išlo o certifikát podpísaný súkromným kľúčom).
Agregátor uzlov archivuje všetky snímky a súvisiace certifikáty. Klienti môžu tieto informácie získať z agregátora uzlov a pracovať s nimi, napríklad rýchlo zaviesť uzol a uzol.
Klient môže získať snímky a overiť ich prostredníctvom certifikátov, pretože používa rovnaké kryptografické primitíva Mithril ako podpisovače a agregátory. Klient môže rýchlo overiť pravosť údajov, t. j. integritu blockchainu.
Na obrázku nižšie môžete vidieť jednotlivé kroky, ktoré vedú k vytvoreniu certifikátu Mithril. Ide o zjednodušenú podobu, keďže proces je o niečo zložitejší a zahŕňa viac krokov pre všetkých účastníkov. Na obrázku je kvôli prehľadnosti len jeden podpisovateľ, ale v skutočnosti ich je viac.
Je potrebné si uvedomiť, že celý proces generovania certifikátov prebieha v jednotlivých fázach.
V prvej, tzv. etablujúcej fáze, sa uzly dohodnú na parametroch Mithil a skupine podpisovateľov.
V druhej fáze sa kľúče registrujú vo všetkých podpisujúcich uzloch. Na základe všetkých registrácií sa v danom čase vytvorí agregačný overovací kľúč.
Tretia fáza sa nazýva prevádzková a prebieha v cykloch. Začiatok každého nového cyklu sa signalizuje prostredníctvom správy. Uskutoční sa snímka súboru UTXO a od podpisovateľov sa očakáva, že správu podpíšu. Každý podpisovateľ individuálne kontroluje, či je oprávnený správu podpísať. Pre každý platný podpis vytvorí dôkaz obsahujúci podpis správy, overovací kľúč, podiel a cesty strany v Merkleho strome.
Agregačný uzol overuje podpisy od všetkých podpisovateľov. Viaceré podpisy sa môžu agregovať do jedného certifikátu. Ak sa dosiahne kvórum, je možné vytvoriť agregovaný podpis zo všetkých jednotlivých podpisov. Uzol vytvorí dôkaz pomocou agregovaných kľúčov, správy a vektora individuálnych dôkazov od každej strany.
Individuálne podpisy sa vysielajú všetkým stranám v sieti. Je to dôležité, pretože každá strana môže nezávisle vyrábať certifikáty. Predovšetkým strana, ktorá vykonáva agregáciu, nemusí mať žiadne špecifické znalosti, ani sa nepredpokladá, že je čestná. Dá sa povedať, že agregáciu podpisov môže vykonať akákoľvek tretia strana, ktorá má prístup k jednotlivým podpisom. Inými slovami, agregujúcim uzlom sa môžu stať všetci podpisovatelia alebo akýkoľvek iný uzol.
Potenciál technológie Mithril
Mithril predstavuje veľmi užitočný primitív, ktorý je potenciálne zaujímavý pre všetky existujúce blockchainy. Pripojením kľúčov STM k jednotlivým účtom kryptomien je možné, aby sa majitelia mincí kolektívne a úplne decentralizovane podieľali na certifikácii akejkoľvek správy.
Prostredníctvom parametrov je možné jednoducho definovať prah (1/2 alebo 2/3), ktorý musí byť dosiahnutý, aby sa kryptograficky preukázalo, že požadovaná skupina (stake) správu schvaľuje. Podpisovatelia môžu správu podpísať individuálne a zverejniť podpis prostredníctvom blockchainu. To je veľmi užitočné pre správu na reťazci. Aj v prípade Bitcoinu by bolo možné, aby držitelia BTC ratifikovali napríklad aktualizáciu softvéru.
Mithril sa dá použiť na pravidelné vytváranie snímok, t. j. archivovanie stavu blockchainu Cardano. To umožní veľmi rýchle spustenie uzla, pretože nie je potrebné sťahovať celý blockchain a overovať všetky jednotlivé transakcie v histórii. Klientovi stačí stiahnuť všetky snapshoty spolu s certifikátmi a overiť ich. To je možné v relatívne krátkom čase (niekoľko minút) a hneď potom môže uzol overovať najnovšie transakcie a bloky. Inými slovami, byť ľahkým klientom, ktorý nie je závislý od komunikácie s plnohodnotným uzlom. Vďaka Mithrilu môže mať ľahký klient rovnaké zabezpečenie ako plný uzol a požiadavky na zdroje budú také nízke, že ľahkého klienta bude možné spustiť aj na mobilnom telefóne.
Ďalšie dôležité využitie kryptografických primitív Mithril je pre sidechainy, pretože prenos aktív medzi sieťami bude výrazne jednoduchší vďaka možnosti rýchleho overenia najnovšieho globálneho stavu.
Ako sme už spomenuli vyššie, Mithril je vhodná technológia na správu na reťazci, pretože je možné ľahko organizovať hlasovanie na základe vlastníctva mincí. Hlasovanie nemôže byť žiadnym spôsobom manipulované treťou stranou a nikomu nemožno zabrániť v hlasovaní, keďže každý light klient bude úplne nezávislý od tretej strany. Všetky výsledky hlasovania budú transparentne uložené v blockchaine a každý si ich môže overiť.
Mithril bude dôležitým stavebným prvkom pre Ouroboros Leios (Input endorsers), keďže prostredníctvom certifikátov bude možné predpripraviť (pre-validovať) bloky pred ich konečným zaradením do blockchainu.
Záver
Mithril možno považovať za veľký krok vpred pre decentralizáciu, keďže veľká časť používateľov sa stále spolieha na tretie strany. Ľudia chcú mať rýchle a lacné transakcie na svojom mobilnom telefóne a to vo väčšine prípadov nie je možné bez interakcie s plnohodnotným uzlom bežiacim na inom zariadení. Väčšina ľudí nechce a nikdy nebude ochotná spustiť vlastný plnohodnotný uzol. Mithril umožní nedôveryhodnú Peer-to-Peer komunikáciu z mobilného telefónu. Inými slovami, váš telefón môže komunikovať len so sieťou Cardano a mať bezpečnosť plného uzla.
Pôvodný článok: Understanding Mithril | Cardano Explorer (cexplorer.io)