Solana reprezentuje jednu z nejzajímavějších inovací na poli kryptoměn a má ambici stát se nejrychlejším blockchainem, který byl zatím vytvořen. V tuto chvíli projekt dosahuje 50,000 transakcí za sekundu, s možností škálovat až na 700,000 s dalším rozvojem rychlosti počítačových sítí.
Pojďmě se tedy podívat blíže proč je Solana tak unikátní a jaká technologie jí umožňuje dosáhnout rychlostí, o kterých se zatím ostatním protokolům na první vrstvě může jen zdát.
Co je to konsenzus?
Než se dostaneme k samotné Solaně, tak bude extrémně užitečné si zopakovat jak fungují projekty, které jsou v tuto chvíli na první vrstvě dominantní.
Konsenzus je stěžejní prvek každého blockchainu, který zajišťuje jeho ochranu proti manipulaci v něčí prospěch. Je to způsob, jakým se síť bez centrální autority shodne na té správné verzi transakční historie.
Bitcoin
Bitcoin běží na všem známém Proof of Work, kdy těžaři pomocí hashovací funkce (o ní si povíme později) generují co nejrychleji velké množství čísel dokud netrefí to správné, a tím získávají možnost vytvořit blok a získat za něj odměnu. Tento proces trvá okolo 10 minut a síť sama upravuje každé 2 týdny náročnost hledání tohoto čísla, aby block time vždy zůstával na 10 minutách.
Ethereum
U Etherea je proces podobný, ale s tím, že se podařilo block time díky některým inovacím zkrátit na cca 15 sekund (což je zároveň limit klasického nakamoto konsenzu). Obecně se však dá říci, že čím kratší je block time, tím častěji těžaři nalézají bloky zároveň, vznikají forky (několik verzí blockchainu běžících současně) a síť je zatěžována výměnou velkého množství zpráv mezi jednotlivými těžaři, aby blockchain “opravili” a ten byl opět jednotnou databází všech transakcí.
Polkadot
Polkadot používá NPoS, neboli Nominated Proof Of Stake, kdy na síti běží předem daný počet validátorů stakujících své tokeny a soutěž o producenta bloku probíhá pomocí losování náhodného čísla. Pokud validátor vyhraje soutěž o produkci bloku, tak jej zasílá do síťě a poté je potřeba, aby se 2/3 ostatních validátorů shodla na tom, že blok je skutečně validní a je tímto zařazen do blockchainu. K tomuto je samozřejmě opět potřeba výměna velkého množství zpráv a proto je block time stanoven na 6 sekund. Jinak, stejně jako u předchozích případů, by mohlo docházet k častým forkům a zahlcení sítě.
Takovýto konsenzus má také v sobě zabudován množství timeoutů jakožto ochranu před zneužitím. Například pokud producent bloku po svém zvolení nedělá nic, tak je po čase opět zvolen nový, aby nebylo zastaveno vytváření bloků. Tyto timeouty zase znamenají potenciální zpomalení celé síťě a opět limitují výkon celého blockchainu.
Sharding
Dá se říci, že na podobném principu dnes fungují všechny moderní blockchainy a z něj zároveň plyne i jejich limitace, která se velmi těžko překonává (jak jsme si již řekli, více transakcí v bloku a kratší block time vede k potenciálnímu zahlcení chainu zprávami nutnými k řešení forků). Proto se například Ethereum 2.0 či Polkadot vydalo cestou shardingu, kdy se celý blockchain “rozseká” na několik částí a tím pádem se sníží objem zpráv zasílaných v celé síti a zvýší se počet transakcí, které díky tomu síť zvládne.
Sharding je ovšem extrémně náročný na implementaci, jak vidíme na délce vývoje ETH 2.0. Navíc problém na úrovni samotného konsenzus algoritmu, ať už je to PoS či Pow, řeší bohužel jen částečně.
Konsenzus jako měření času
Na konsenzus se ovšem nemusíme dívat pouze jako na způsob volby producenta bloku či validaci, ale také jako na synchronizované hodiny mezi jednotlivými účastníky konsenzu dané síťě. Pokus držet stabilní block time tak, aby nedocházelo k častým forkům, je vlastně zároveň i pokusem měřit čas mezi produkcí bloků a tím co nejpřesněji jednotlivé uzly síťě (těžaře či validátory) sladit mezi sebou tak, aby nedocházelo k výše zmíněným timeoutům.
A tím už se konečně dostáváme ke klíčové inovaci, kterou Solana přináší a tou je Proof of History konsenzus.
Proof of History
Vývojáři Solany si uvědomili, že synchronizace času v decentralizovaných sítích hraje zásadní roli a proto přišli se zcela novým přístupem jak s časem pracovat.
Hashovací funkce
SHA256 je takzvaná hashovací funkce, kterou používá například Bitcoin. Nelekněte se, princip je velice snadný, funkce vlastně jen vezme vstup (třeba číslo) a jejím výsledkem je výstup. Typický příklad vypadá takto a přesně takto vypadají “čísla”, která hádají Bitcoinový těžaři:
hash("123") -> 5c9597f3c8245907ea71a89d9d39d08e
hash("hello") -> b1946ac92492d2347c6235b4d2611184
Solana využívá několika vlastností této funkce:
- ve smyslu výkonu je prakticky nevylepšitelná. Díky Bitcoinu proběhla spousta výzkumu v oblasti hashovacích funkcí a rychlost jejího výpočtu už v podstatě nejde vylepšit.
- pokud je vstup SHA256 výstup z jejího předchozího volání (viz další příklad, hned to bude jasnější), tak takováto úloha nejde paralelizovat. To znamená, že více jader procesoru Vám ve výpočtu nepomůže, vždy bude počítat jen 1 jádro.
- moderní procesory zvládají hashovat pomocí SHA256 zhruba za stejný čas. Tím je v podstatě zajištěno, že žádný počítač (případně ASIC) nebude, s jistou tolerancí, počítat hashe rychleji než kdokoliv jiný.
Jak už jistě vidíte, díky těmto vlastnostem byla Solana schopna implementovat decentralizované hodiny, které na všech validátorech běží naprosto stejně a vyřešit jeden z největších problémů a nejtěžších problémů, který v decentralizovaných sítích vůbec existuje. Jinak řečeno, tyto vlastnosti zajišťují, že hodiny jsou stále synchronizované i bez toho, aby spolu validátoři přímo komunikovali.
Pojďmě se tedy podívat jak na Solaně plyne čas (parametry hash funkce jsou vždy dva — výsledek té předchozí a nové transakce jdoucí do bloku, vlastně takový centralizovaný miniblockchain :-) )
A ačkoliv je nemožné tento řetěz jednotlivých hashů počítat paralelně (všimněte si, že parametr každé funkce je výsledek z funkce předchozí), tak pokud budeme chtít výsledek těchto kroků zkontrolovat, jde to naopak velice rychle a jednoduše. Tím pádem validátoři mohou zkontrolovat každý blok a prověřit jeho obsah. Trik, pomocí kterého je tato rychlá kontrola možná se nazývá Verifiable Delay Function, ale to už je bohužel mimo rozsah tohoto článku.
Výkon Solany
Všechny ostatní inovace, které Solana blockchain obsahují jsou postaveny na tomto průlomu — uzly v síti už se nemusí v síti synchronizovat (a vyměňovat si o tom spousty zpráv), ale každý z nich v každém okamžiku ví “kolik je hodin” a proto Solana dokáže spousta dalších prvků své síťě vysoce optimalizovat.
Díky tomu je v Solaně block time 400ms (s tím, že jej dokáží snížit na 200ms) a momentální počet transakcí za sekundu 50,000 — čemuž se doteď neblíží ani relativně centralizované chainy jako je EOS.
Tower BFT
Jak si možné pozorný čtenář povšimne, tak stále nám zde chybí jeden důležitý prvek a tím je způsob výběru validátora, který se stává producentem bloků (aby nedošlo ke kolizím a forkům) a kdo tyto bloky bude validovat. Tento “leader” je vždy volen pouze na krátkou dobu, aby se předešlo typu útoku, kdy místo produkce bloků nědělá nic a tím prakticky zmrazí síť.
A zde se teprve naplno ukazuje PoH inovace — zatímco v klasické PoS či PoW síti probíhá po nalezení každého bloku volba nového validátora, tak Solana dokáže seznam “leaderů” díky globálním hodinám určit dopředu a tím výběr producenta bloku znatelně urychlit.
Tower BFT tedy není nic jiného než klasický algoritmus pro volbu producenta bloku, ovšem s téměř nulovými timeouty, absencí složité komunikace po síti a synchronizování jednotlivých uzlů.
Popis celého algoritmu by byl na samostatný článek, proto jen dodejme, že validátoři jsou voleni i na základě velikosti svého stake, který jim poskytují delegátoři. Tedy PoH zajišťuje jednotný, decentralizovný čas pro celou síť a toho využívá PoS algoritmus (Tower BFT), který umožňuje uživatelům stakovat a tím pádem zabezpečovat síť.
Technologie
Solana obsahuje také několik dalších inovací (chystáme překlad článku, který je všechny shrnuje), tak se jen v rychlosti podívejme o co se jedná
- Turbine — extrémně rychlá distribuce bloků v síti inspirovaná BitTorrentem
- Sealevel — paralelní zpracování smart kontraktů a trasakcí (v současnosti jediný chain, který něco takového umožňuje)
- Pipelining — validace transakcí postavená na principu fungování operačních systémů
- Cloudbreak — databáze pro ukládání transakcí, optimalizovaná pro vysoký počet transakcí (například LevelDB, používaná Ethereem, zvládá jen 5,000 transakcí za sekundu)
Z toho plyne jak obrovsky zkušený je tým Solany a jak velkou praxi má ve vývoji extrémně výkonných, distribuovaných systémů.
Team
Další zajímavostí Solany je její tým — z velké většiny se jedná o veterány softwarového vývoje, kteří si prošli společnostmi jako je Intel, Qualcomm či Google. Během svých kariér se zaměřovali na budování LTE sítí či operačních systémů a odtuď pochází (mně osobně sympatická) filozofie Solany, která říká, že z hardware je potřeba vymačkat každý kousíček výkonu! Proto jsou například smart kontrakty na Solaně tak rychlé, že delegace tokenů validátorům je napsána pomocí kontraktu a ne přímo v kódu samotné Solany.
Zakladatelem je Anatoly Yakovenko, který si prošel firmami jako je Qualcomm či Dropbox, kde se podílal na vývoji distribuovaných systémů a pokročilých počítačových sítích.
Ekosystém
Zatím nemáme moc projektů, které by na Solaně běžely (sama Solana začala vznikat až v roce 2017), ale už zde máme pár zajímavých DeFi řešení, na které se podíváme později v samostatných článcích.
Serum
Největší DEX vzniklý na Solaně s orderbookem podobným tomu u CEX, bleskově rychlými transakcemi a poplatky ve výši $0.00001.
Raydium
DeFi hub, který využívá likviditu ze Serum DEX. Podporuje limitní příkazy i swapy, staking a yield farming.
Oxygen
Defi protokol pro půjčky a obchodování s pákou, který také využívá likviditu Serum DEX.
Tady je nutné si uvědomit, že pokud chceme, aby kryptoměny a DeFi překročily svůj vlastní stín, tak protokol na kterém budeme stavět musí škálovat. Pokud někdy máme mít globální decentralizované tržiště, banku, burzy či finanční systémy pro půjčky a pojištění, tak musíme mít blockchain, který dokáže výkonnostní požadavky pro tyto aplikace splnit — proto bychom se nedivili, kdyby první, skutečně globální DeFi systém vznikl právě na Solaně.
Mince
Nativním tokenem pro Solanu je SOL, momentálně obchodovatelný na většině burz.
- Celková zásoba je 488,630,611
- Zásoba v oběhu 267,460,267 (většinu tokenů už je tedy odemklých)
Tým vlastní 12.5% tokenů, nedávné proběhlo hlasování o zavedení inflace v síti (pico inflation), která je 0.1%. Tento model je pouze dočasný a připravuje se nová verze, která zavede roční inflaci ve výši 8% s tím, že se bude každý rok o 15% snižovat až klesne na stálou hodnotu 1.5% — k čemuž by mělo dojít v roce 2031.
Solana token se dá také stakovat s ročním ziskem okolo 11%, ovšem očištěno o předpokládanou inflaci to bude kolem 3–4%.
Tým také pravidelně vydává svůj transparency report, který ukazuje aktuálně využívání tokenů Solana foundation.
Závěr
Solana projekt reprezentuje práci jednoho z technicky nejnadanějších a nejzkušnějších týmů v celém kryptoprostoru. Dokázali zlomit kletbu blockchainového trilema a vytvořit nejvýkonnější blockchain, který momentálně existuje. Osobně věříme, že je je docela pravděpodobné, že jedny z prvních masových projektů, které přitáhnou adopci kryptoměn, budou postaveny právě na Solaně — a to díky její rychlosti a nízkým poplatkům.
Zároveň Solana představuje zajímavý kontrast a investiční příležitost proti práve vznikajícím projektům využívajícím sharding (ať už je to ETH 2.0, Polkadot či v budoucnu Hydra v Cardanu). Přes všechny sliby se totiž může stát, že sharding je prostě příliš těžké správně a efektivně implementovat, čímž by se Solana stala dost možná jediným skutečně výkonným blockchainem, který bude schopný provozovat decentralizované finanční aplikace budoucnosti.
Jestli se k vám tento článek dostal čirou náhodou, vězte, že můžete být součástí FB komunity v naší skupině Solana CZ/SK.