back
Kryptomeny
20. prosince 2022  • clock 3 min •  Daniel Mitrovsky

MINA – Nejlehčí blockchain na světě

V tomto blogu vám představíme kryptoaktivum, které je součástí našeho nového Fumbi Staking Portfolia. Jedná se o protokol nazvaný MINA. MINA je blockchain první vrstvy, jehož inovací je udržení konstantní velikosti celého blockchainu na 22 kilobajtech spolu s implementací technologie ZK-SNARKS, která vytváří decentralizovaný a bezpečný blockchain s důrazem na soukromí.

Historie MINA Protocolu

Protokol MINA byl vytvořen přibližně v polovině roku 2017 s cílem vytvořit bezpečný a zároveň decentralizovaný blockchain. Za jejím vznikem stál vývojový tým 0(1) Labs, který v té době vedli Evan Shapiro a Izaak Meckler. Meckler byl v době jejího vzniku doktorandem na Berkeley, kde studoval kryptografii se zaměřením na tzv. důkazy nulové znalosti, označované jako zk-SNARK (zero knowledge – Succint Non-interactive Argument of Knowledge).

Teze blockchainu MINA vychází z myšlenky, že pro běžného koncového uživatele je obtížné komunikovat se sítí Ethereum, aniž by musel důvěřovat třetí straně, která provozuje plnohodnotný uzel (tzv. full node). Architektura většiny kryptografických protokolů se skládá ze dvou typů subjektů – plnohodnotných uzlů, které ověřují a šíří transakce v síti, a lehkých uzlů, které se při ověřování transakcí spoléhají na své služby. Vývojáři z 0(1) Labs však tuto architekturu považují za centralizovanou, což činí základní blockchain (L1-like Ethereum, Solana) méně důvěryhodným, a snižuje tak úroveň uživatelského zážitku při interakci s protokolem.

To byl jeden z hlavních důvodů, proč se vývojáři v čele se Shapirem a Mecklerem rozhodli vytvořit komprimovaný a paměťově nenáročný blockchain, jehož plnohodnotným uzlem se může stát prakticky kdokoli.

Projekt, na kterém vývojový tým pracoval, byl původně známý jako Coda. V druhé polovině října 2020 však došlo k rebrandingu projektu, během něhož byl název projektu změněn na Mina Protocol. Po čtyřech letech důkladného vývoje a testování platformy se tým 0(1) Labs rozhodl 23. března 2021 spustit základní síť protokolu Mina.

Co je Mina Protocol?

Protokol Mina je považován za „World’s Lightest Blockchain“ – tedy nejlehčí blockchain na světě. Díky unikátní architektuře využívající technologii zero-knowledge se vývojářům podařilo vytvořit blockchain, který má konstantní velikost – 22 kilobajtů, tedy velikost několika tweetů na sociální síti Twitter.

Mina používá kryptografické důkazy, označované také jako zk-SNARKS, k vytvoření optimální architektury blockchainu. Blockchainy, jako je Bitcoin nebo Ethereum, které jsou na trhu již několik let, se s každým dalším blokem neustále paměťově zvětšují. Pokud se podíváme na data YCharts, velikost blockchainu Bitcoinu je v současné době téměř 437 GB, zatímco velikost blockchainu Etherea dosahuje až 1 TB (1 terabajt = 1000 GB). Jen za poslední dva roky se velikost těchto blockchainů téměř zdvojnásobila a v budoucnu se s rostoucí uživatelskou základnou ještě masivněji rozroste.

Ověření celé historie transakcí v blockchainu je klíčovým prvkem při ověřování aktuálního konsensu o stavu těchto sítí. To znamená, že plné uzly (full nodes) musí uchovávat celou historii každého blockchainu, od vzniku bloku až po poslední vytěžený blok. Postupem času to vytváří tlak na plné uzly, pokud jde o kapacitu paměti, a také překážku pro vstup nových uzlů, které musí stáhnout obrovskou databázi dat, pokud se chtějí stát plnými uzly.

V případě protokolu MINA a jeho konstantní velikosti lze aktuální stav sítě ověřit pouze jedním kryptografickým rekurzivním důkazem, jehož velikost je 22 kilobajtů. V praxi to vypadá následovně.

Zdroj: Mina Protocol

Důležitou součástí této architektury jsou tzv. zk-SNARKy. Zk-SNARK se skládají ze „snímků“ konstantní velikosti, které představují důkazy jednotlivých přechodů v oblasti síťového konsensu. Při každém vytvoření nového bloku se vytvoří jeho snímek, přičemž jako pozadí se použije snímek předchozího stavu sítě. Tento nový snímek je pak použit jako podklad pro další blok, čímž se vytvoří vazba mezi měnícími se stavy (bloky), aniž by bylo nutné více výpočetně zatěžovat síťové uzly. Tato jedinečná konstrukce umožňuje účastníkům ověřovat transakce bez nutnosti ukládat celou historii blockchainu, což také minimalizuje potřebu „důvěryhodných třetích stran“, které by poskytovaly přístup do sítě.

Zero-Knowledge Proofs (ZKP)

Technologie nulové znalosti (Zero-Knowledge Technology) je druh kryptografické techniky, pomocí které je možné ověřit vlastnictví aktiva nebo pravdivost informace, aniž by bylo nutné v zájmu ochrany soukromí sdílet jakékoli další informace. Výstupem použití této technologie jsou kryptografické důkazy (Zero-Knowledge Proofs), jejichž prostřednictvím lze prokázat pravost bez dalších informací.

Uveďme příklad: vy a váš kamarád řešíte stejný hlavolam, ale oba nezávisle na sobě. Po nějaké době se Vám podařilo hádanku vyřešit, ale Vašemu kamarádovi se to zatím nepodařilo. Pomocí kryptografického důkazu nulové znalosti mu můžete dokázat, že znáte řešení hádanky, aniž byste mu museli sdělit jakékoli podrobnosti o řešení.

ZKP vynalezli Shafi Goldwasser, Silvio Micali a Charles Rackoff v roce 1985. Od té doby jsou ZKP jednou z nejaktivnějších oblastí výzkumu v kryptografii. Kromě toho se ZKP v poslední době těší značnému vlivu a využití pro reálné aplikace, zejména pro aplikace z oblasti blockchainu. Odborníci ze světa kryptoměn, včetně samotného zakladatele Etherea Vitalika Buterina, považují technologii zero-knowledge a ZKP za jednu z největších budoucích inovací ve světě kryptoměn.

Konsensuální algoritmus – Ouroboros Samasika

Vzhledem k distribuované povaze blockchainových sítí se všechny zúčastněné subjekty (uzly) musí synchronizovat a dohodnout na společném stavu sítě. Mina používá k dosažení síťového konsensu modifikovanou verzi mechanismu Proof-of-Stake nazvanou Ouroboros Samasika, která vychází z konsensu navrženého IOHK (Input-Output Hong Kong) pro platformu Cardano.

Systém Ouroboros pracuje za předpokladu, že všichni účastníci sítě mají synchronizovaný čas. To znamená, že všechny mají své „virtuální hodiny“ synchronizované v zájmu jednoduchosti a plynulosti procesu výroby bloků.

Doba výroby bloku je rozdělena na úseky nazývané epochy. Každá epocha obsahuje tzv. sloty, v případě protokolu MINA obsahuje jedna epocha 7140 slotů. Jeden slot představuje jeden vyrobený blok. Vytvoření každého slotu trvá přibližně tři minuty, což znamená, že jedna epocha trvá obvykle přibližně 14 dní. 

V systému PoS jsou výrobci bloků vybíráni na základě počtu stakeových mincí a také pomocí zdroje náhodnosti v podobě ověřitelné náhodné funkce (VRF). V případě protokolu MINA je hlavní výhodou to, že každý, kdo do této sítě vsadí své mince, si je může kdykoli vybrat. Ouroboros vybírá výrobce bloků na základě množství vsazených mincí z předchozí epochy v době pořízení snímku (nebo snímku obrazovky) – což je obvykle na začátku nové epochy. Validátoři nebo delegáti tak mohou své mince ze sázky kdykoli stáhnout, místo aby museli čekat několik dní, jak je tomu obvykle u jiných protokolů. 

Účastníci sítě

V síti MINA existují tři typy speciálních uzlů, které zajišťují bezpečný a plynulý provoz sítě:

  • Snark Workers – účastníci sítě, kteří vytvářejí kryptografické argumenty zk-SNARK pro ověřování transakcí. Výrobci bloků zveřejňují svou „nabídku“ na tržišti zvaném SNARKetplace, kde stanoví minimální přijatelnou cenu za kryptografický důkaz SNARK, a pracovníci snarku mezi sebou soutěží o splnění těchto požadavků. Výrobci bloků nakupují zk-SNARKS za nejkonkurenceschopnější ceny a platí pracovníkům společnosti Snark část základních blokových licenčních poplatků a transakčních poplatků, které získávají z blokové produkce.
  • Validator Nodes – Druh uzlů, které jsou zodpovědné za ověřování transakcí a přidávání nových bloků do blockchainu. Podobně jako u jiných blockchainů jsou validátoři při ověřování bloků vybíráni na základě množství stakeovaných mincí $MINA. Výměnou za svou práci při vytváření bloků dostávají uzly odměnu v podobě nových mincí $MINA a transakčních poplatků.

  • Archive Nodes – Uzly, které ukládají data blockchainu do nekomprimované (tzv. unSNARKed) databáze.

Aplikace a smart kontrakty v síti Mina

Aplikace v síti MINA se také nazývají zkApps. ZkApps, nebo jinak řečeno aplikace s nulovou znalostí, jsou chytré smlouvy vyvinuté protokolem MINA založené právě na důkazech s nulovou znalostí (zk-SNARK).

Aplikace zkApps používají exekuci a off-chain state model, které ze své podstaty umožňují soukromé výpočty (mimo řetězec). Aplikace zkApps mohou samy provádět libovolně složité výpočty mimo řetězec, přičemž uživatel platí pouze malý poplatek za službu, která mu umožní odeslat výsledný důkaz nulové znalosti do řetězce, aby tento výpočet ověřil. To je rozdíl od tradičních blockchainů, kde se skutečné provádění smart kontraktů provádí přímo v řetězci a které obvykle používají systém proměnlivých poplatků závislý na aktuálním zatížení sítě.  

Tyto aplikace mohou používat data z různých řetězců, ale v konečném důsledku jsou do blockchainu sdílena pouze prostřednictvím metadat s nulovou znalostí, takže data samotných uživatelů v blockchainu nejsou veřejně čitelná.

Zdroj: Mina Protocol Docs

Skvělým příkladem aplikace založené na technologiích nulové znalosti může být úvěrové skóre: Pomocí aplikace zaměřené na ověřování úvěrového skóre lze vytvořit snímek úvěrového souboru libovolného uživatele a použít jej jako důkaz, že uživatel splňuje podmínky pro získání půjčky. Žádné osobní ani citlivé údaje uživatele však nebudou veřejné a nikdo k nim nebude mít přístup, protože uživatel bude sdílet pouze závěrečný důkaz, který umožní bezpečný průběh transakce. Tento design bezpečného přenosu dat z reálného světa do blockchainu dává  Mine potenciální výhodu v oblasti decentralizovaných financí (DeFi), protože z hlediska bezpečnosti mohou mít uživatelé při používání aplikací svá data pod kontrolou. 

ZkApps jsou napsány v programovacím jazyce TypeScript. Jedná se o programovací jazyk s otevřeným zdrojovým kódem, který vytvořila a spravuje společnost Microsoft. TypeScript je v podstatě rozšířením programovacího jazyka JavaScript, které je rozšířeno o statické typování a další atributy známé z objektově orientovaného programování. Kód napsaný v TypeScript je sám zkompilován do JavaScript.

Současný stav

Aplikace v síti Mina jsou v současné době ve fázi testování. Vývojáři z celého světa mohou vytvářet a nahrávat své aplikace do testovací sítě Berkley, která slouží jako tréninkový prostor pro snadné programování zkApps v hlavní síti, jejíž spuštění se očekává v prvním čtvrtletí roku 2023.

Testování aplikací v síti Mina je v současné době veřejné, takže kdokoli může vytvářet vlastní aplikace. Podle vývojářů z Mina Foundation je cílem této fáze pochopit a zavést zpětnou vazbu o tom, co a jak funguje a co je třeba zlepšit, aby aplikace v hlavní síti fungovaly bez problémů.

Nativní síť tokenů – MINA

Nativní blockchainovou sítí Mina je mince s označením $MINA. Tržní kapitalizace projektu v současné době činí 435 miliard dolarů a projekt je na 75. místě z hlediska tržní kapitalizace. V oběhu je přibližně 765 milionů $MINA. Inflace v síti je pro první dva roky stanovena na 12 % a po dvou letech se sníží na 7 %. 

PŘIHLÁSIT SE DO PROFILU

Avatar photo

Daniel Mitrovsky

Autor

linkedin
Sdílejte s ostatními
Odporúčame

Více článků se společností Fumbi