MINA – Najľahší blockchain na svete
V tomto blogu vám predstavíme krypto aktívum, ktoré je súčasťou nášho nového Fumbi Staking Portfólia. Jedná sa o protokol s názvom Mina. Mina je blockchainom prvej vrstvy, ktorého inovácia spočíva v zachovaní konštantnej veľkosti celého blockchainu na úrovni 22 kilobajtov spolu s implementáciou technológie ZK-SNARKS pre vytvorenie decentralizovaného a bezpečného blockchainu so zameraním na súkromie.
História MINA Protocolu
Protokol MINA vznikol ešte zhruba v polovici roka 2017 s cieľom vytvoriť bezpečný a zároveň decentralizovaný blockchain. Za jeho vznikom stál vývojársky tím spoločnosti 0(1) Labs, na čele ktorej v tom čase pôsobili Evan Shapiro a Izaak Meckler. Meckler bol v čase vzniku doktorandom na Berkley, kde študoval kryptografiu so zameraným na takzvané dôkazy nulových znalostí, označované ako zk-SNARKs (zero knowledge – Succinct Non-interactive Argument of Knowledge).
Téza na základe ktorej bol vytvorený blockchain MINA pochádza z myšlienky, že pre priemerného koncového používateľa je ťažké interagovať so sieťou Ethereum bez toho, aby nemusel dôverovať tretej strane, ktorá prevádzkuje úplný uzol (takzvaný full node). Architektúra väčšiny krypto protokolov sa skladá z dvoch typov subjektov – z plných uzlov, ktoré overujú a šíria transakcie v sieti, a z ľahkých uzlov, ktoré sa spoliehajú na ich služby v oblasti verifikácie transakcií. Vývojári z 0(1) Labs však považovali túto architektúru za centralizovanú, ktorá robí základný blockchain (L1-ako je Ethereum, Solana) menej dôveryhodným, čím sa tak znižuje aj úroveň používateľskej skúsenosti pri interakcií s protokolom.
To bolo jedným z hlavných dôvodov, prečo sa vývojári na čele so Shapirom a Mecklerom rozhodli vytvoriť komprimovaný a pamäťovo nenáročný blockchain, v ktorom sa môže stať plným uzlom prakticky ktokoľvek.
Projekt, na ktorom vývojársky tím pracoval, bol spočiatku známy pod menom Coda. V druhej polovici októbra 2020 však došlo k rebrandingu, počas ktorého bol zmenený aj názov projektu na Mina Protocol. Po štyroch rokoch náročného vývoja a testovania platformy sa tím stojací za spoločnosťou 0(1) Labs rozhodol 23. marca 2021 spustiť hlavnú sieť protokolu Mina.
Čo je Mina Protocol?
Mina protokol je považovaný za “World’s Lightest Blockchain” – teda najľahší blockchain na svete. Vďaka unikátnej architektúre s využitím technológie nulových znalostí sa vývojárom podarilo vytvoriť blockchain, ktorý má konštantnú veľkosť – 22 kilobajtov, respektíve veľkosť ako niekoľko tweetov na sociálnej sieti Twitter.
Mina používa kryptografické dôkazy nazývané aj ako zk-SNARKS na vytvorenie optimálnej blockchainovej architektúry. Blockchainy ako Bitcoin či Ethereum, ktoré pôsobia na trhu už niekoľko rokov, sa s každým pridaným blokom neustále pamäťovo zväčšujú. Ak sa pozrieme na dáta z YCharts, veľkosť Bitcoinového blockchainu je v súčasnosti takmer 437 GB, zatiaľ čo veľkosť blockchainu Ethereum je až 1 TB (1 Terabyte = 1000 GB). Len za posledné dva roky došlo k takmer zdvojnásobeniu veľkosti týchto blockchainov, pričom v budúcnosti pri raste používateľskej základné bude ich veľkosť narastať ešte masívnejšie.
Verifikácia celej histórie transakcií na blockchaine je kľúčovým elementom pri overovaní aktuálneho konsenzu o stave týchto sietí. To znamená, že plné uzly (full nodes) musia uchovávať celú históriu jednotlivých blockchainov, od genesis bloku až po posledný vyťažený blok. To postupom času vytvára tlak na plné uzly v oblasti pamätových kapacít, ako aj bariéru vstupu pre nové uzly, ktoré si musia sťahovať obrovskú databázu dát, ak sa chcú stať plnými uzlami.
V prípade MINA protokolu a jeho konštantnej veľkosti je možné overiť súčasný stav siete len prostredníctvom jedného kryptografického rekurzívneho dôkazu, ktorého veľkosť je 22 kilobajtov. V praxi to vyzerá nasledovne.
Dôležitou súčasťou tejto architektúry sú takzvané zk-SNARKs. Zk-SNARK sa skladajú zo “snímok” konštantnej veľkosti, ktoré predstavujú dôkaz o jednotlivých prechodoch v oblasti sieťového konsenzu. Zakaždým, keď sa vytvorí nový blok, urobí snímku seba samého, pričom ako pozadie použije snímku predchádzajúceho stavu siete. Táto nová snímka sa potom použije ako pozadie pre ďalší blok, čím sa vytvorí prepojenie medzi meniacimi sa stavmi (blokmi) bez nutnosti použitia väčšej výpočtovej záťaže zo strany sieťových uzlov. Tento jedinečný dizajn umožňuje účastníkom overovať transakcie bez potreby uchovávania celej histórie blockchainu, čo zároveň minimalizuje potrebu „dôveryhodných tretích strán“ na poskytovanie prístupu do siete.
Zero-Knowledge Proofs (ZKP)
Technológia nulových znalostí (Zero-Knowldege) je druh kryptografickej techniky, prostredníctvom ktorej je možné overiť pravdivosť vlastníctvo aktív alebo pravdivosť určitej informácie bez nutnosti zdieľania akýchkoľvek ďalších informácií v záujme zachovania súkromia. Výstupom použitia tejto technológie sú kryptografické dôkazy (Zero-Knowledge Proofs), prostredníctvom ktorých viete preukázať pravosť bez dodatočných informácií.
Predstavme si to na príklade: Vy a Váš kamarát riešite rovnakú hádanku, avšak obaja ju riešite nezávisle. Po nejakom čase sa Vám podarilo hádanku vyriešiť, no vášmu kamarátovi ešte nie. Prostredníctvom kryptografického dôkazu nulovej znalosti mu viete preukázať, že poznáte riešenie hádanky, bez toho, aby ste mu museli poskytnúť akékoľvek detaily týkajúce sa riešenia.
ZKP vynašli Shafi Goldwasser, Silvio Micali a Charles Rackoff v roku 1985. Odvtedy sú ZKP jednou z najaktívnejších oblastí výskumu v kryptografii. Okrem toho sa ZKP v poslednej dobe tešia významnému vplyvu a využitiu na aplikácie v reálnom svete, špeciálne pre aplikácie z oblasti blockchainu. Odborníci zo sveta kryptomien, vrátane samotného zakladateľa Etherea Vitalika Buterina vnímajú práve technológiu nulových znalostí a ZKP ako jednu z najväčších budúcich inovácií vo svete kryptomien.
Konsenzuálny algoritmus – Ouroboros Samasika
Kvôli distribuovanej povahe blockchainových sietí sa všetky zúčastnené entity (uzly) musia synchronizovať a dohodnúť sa na spoločnom stave siete. Mina používa pri dosahovaní sieťového konsenzu modifikovanú verziu Proof-of-Stake mechanizmu s názvom Ouroboros Samasika, ktorý vychádza z konsenzu navrhnutého organizáciou IOHK (Input-Output Hong Kong) pre platformu Cardano.
Ouroboros funguje na základe predpokladu, že všetci účastníci siete majú synchronizovaný čas. To znamená, že všetci majú synchronizované svoje “virtuálne hodinky” kvôli jednoduchosti a plynulosti procesu produkcie blokov.
Čas produkcie blokov je rozdelený do úsekov, ktoré sa nazývajú epochy. Súčasťou každej epochy sú takzvané sloty, pričom v prípade MINA Protocolu obsahuje jedna epocha 7140 slotov. Jeden slot reprezentuje jeden vyprodukovaný blok. Produkcia každého slotu trvá priblížne tri minúty, čo znamená, že jeden epoch spravidla trvá priblížne 14 dní.
V systéme PoS sa producenti blokov vyberajú na základe množstva stakeovaných mincí, ako aj s využitím zdroja náhodnosti v podobe Verifiable Random Function (VRF). V prípade protokoku MINA je hlavnou výhodou to, že ktokoľvek, kto v tejto sieti stakeuje svoje mince, si ich môže kedykoľvek vybrať. Ouroboros vyberá producentov blokov na základe stakeovaného množstva mincí z predchádzajúcej epochy v čase snapshotu (alebo screenshotu) – ktorý je zvyčajne na začiatku novej epochy. Vďaka tomu si validátori či delegátori môžu zo stakingu vyberať svoje mince kedykoľvek, a nemusia čakať niekoľko dní, ako to zvyčajne býva na iných protokoloch.
Účastníci siete
V sieti MINA sa nachádzajú tri druhy špeciálnych uzlov, ktoré zabezpečujú bezpečný a plynulý chod siete:
- Snark Workers – Učastníci siete, ktorí vytvárajú kryptografické argumenty zk-SNARK na overenie transakcií. Producenti blokov uverejňujú svoju “cenovú ponuku” na trhovisku nazývanom SNARKetplace, kde stanovujú minimálnu prijateľnú cenu pre kryptografický dôkaz SNARK a snark workers medzi sebou súťažia o splnenie týchto požiadaviek. Producenti blokov nakupujú zk-SNARKS za najkonkurencieschopnejšie ceny a vyplácajú Snark Workerom časť zo základnej blokovej odmeny a transakčných poplatkov, ktoré zarobia na produkcií blokov.
- Validator Nodes – Druh uzlov, ktorí sú zodpovední za overovanie transakcií ako aj pridávanie nových blokov do blockchainu. Podobne ako pri iných blockchainoch sú validátori pri overovaní blokov vyberaný na základe množstva stakeovaných $MINA mincí. Výmenou za svoju prácu v podobe produkcie blokov inkasujú uzly odmeny v podobe nových $MINA mincí a transakčných poplatkov.
- Archive Nodes – Uzly, ktoré uchovávajú údaje blockchainu v nekomprimovanej (takzvanej unSNARKed) databáze.
Aplikácie a smart kontrakty v sieti Mina
Aplikácie v sieti MINA sú nazývané aj ako zkApps. ZkApps, alebo inak, Zero-Knowledge aplikácie, sú smart kontrakty vyvinuté Mina Protocolom založené práve na dôkazoch s nulovými znalosťami (zk-SNARKs).
zkApps používajú off-chain exekúciu a off-chain state model, ktoré vo svojej podstate umožňujú súkromný (mimo reťazcový) výpočet. Samotné zkApps môžu vykonávať ľubovoľne zložité off-chain výpočty, pričom samotný používateľ za poskytnutie služby platí iba malý poplatok za odoslanie výsledného dôkazu s nulovými znalosťami do reťazca na overenie tohto výpočtu. To je rozdiel oproti tradičným blockchainom, kde sa samotná exekúcia smart-kontraktov vykonáva priamo v reťazci a ktoré zvyčajne používajú variabilný poplatkový systém, ktorý závisí od aktuálneho zaťaženia v sieti.
Tieto aplikácie môžu používať údaje z rôznych reťazcov, no v konečnom dôsledku sa do blockchainu zdieľajú iba prostredníctvom metadát s nulovými znalosťami, takže údaje samotných používateľov na blockchaine nie sú verejne čitateľné.
Skvelým príkladom aplikácie založenej na technológií nulových znalostí môže byť napríklad kreditné skóre: Pomocou aplikácie zameranej na overovanie kreditného skóre môže byť vytvorená snímka kreditného súboru akéhokoľvek používateľa, ktorá bude použitá ako dôkaz o tom, že používateľ spĺňa podmienky na získanie pôžičky. Žiadne osobné ani citlivé informácie používateľa však nebudú verejné a nikto k ním nebude mať prístup, pretože používateľ bude zdieľať len finálny dôkaz, ktorý umožňuje bezpečný priebeh transakcie. Tento dizajn na bezpečné prenášanie údajov z reálneho sveta do blockchainu dáva Mine potenciálnu výhodu v priestore decentralizovaných financií (DeFi), pretože z hľadiska bezpečnosti môžu mať používatelia pri používaní aplikácií svoje údaje pod kontrolou.
ZkApps sú písané v programovacom jazyku TypeScript. Ide o open-source programovací jazyk vytvorený a spravovaný spoločnosťou Microsoft. TypeScript je vo svojej podstate nadstavbou programovacieho jazyka JavaScript, ktorý je rozšírený o statické typovanie a ďalšie atribúty, ktoré sú známe z objektovo-orientovaného programovania. Samotný kód napísaný v TypeScripte sa kompiluje do JavaScriptu.
Súčasný stav
Aplikácie v sieti Mina sú momentálne vo fáze testovania. Vývojári z celého sveta môžu vytvárať a nahrávať svoje aplikácie na testovaciu sieť Berkley, ktorá slúži ako cvičisko k ľahkej programovateľnosti zkApps na hlavnej sieti, ktorá by mala byť spustená už v prvom kvartáli roku 2023.
Testovanie aplikácií v sieti Mina je aktuálne verejné, takže ktokoľvek môže vytvárať svoje aplikácie. Podľa vývojárov z Mina Foundation je cieľom tejto fázy pochopiť a implementovať spätnú väzbu o tom, čo a ako funguje a čo je potrebné zlepšiť pre hladké spustenie aplikácií na hlavnej sieti.
Natívny token siete – MINA
Natívnym sieťom blockchainu Mina je minca s označením $MINA. Trhová kapitalizácia projektu je v súčasnosti 435 miliárd dolárov a projekt sa nachádza na 75. mieste z hľadiska trhovej kapitalizácie. V obehu sa nachádza priblížne 765 miliónov $MINA. Inflácia v sieti je počas prvých dvoch rokov nastavená na 12 %, pričom následne po dvoch rokoch bude znížená na 7 %.