Solana Virtual Machine vysvetlená používateľom Bitcoinu
Sprievodca Solana Virtual Machine pre čitateľov, ktorí poznajú Bitcoin: model účtov, paralelné vykonávanie, vývojárske nástroje a limity kompatibility deklarovanej projektom Bitcoin Hyper.
Vzdelávací účel. Obsah tohto článku má výhradne informatívny a vysvetľujúci charakter. Nepredstavuje finančné poradenstvo. Úplné právne informácie.
Z bitcoinovej dielne do kuchyne Solany
Bitcoin má skriptovací jazyk — Script — zámerne obmedzený. Nie je Turingovsky úplný, nepripúšťa cykly a umožňuje len základné operácie: overovanie podpisov, časové zámky (timelock) a schémy s viacerými podpismi (multisig). Táto jednoduchosť robí správanie Bitcoinu predvídateľným a zmenšuje vykonávaciu plochu — hoci bezpečnosť siete závisí od mnohých ďalších komponentov protokolu.
Ethereum sa vydalo iným smerom: zaviedlo EVM (Ethereum Virtual Machine), Turingovsky úplné prostredie, v ktorom môžu bežať inteligentné kontrakty. Na úrovni protokolu prebiehajú stavové prechody sekvenčne, aj keď niektoré implementácie dokážu čiastočne paralelizovať vnútorné úlohy.
Solana odpovedala na výzvu škálovateľnosti radikálne odlišnou architektúrou: SVM (Solana Virtual Machine) a vykonávacie prostredie Sealevel.
Model účtov v Solane (a v SVM)
V Ethereu stav „patrí“ inteligentnému kontraktu — dáta sa nachádzajú priamo v ňom. V SVM je architektúra oddelená:
- – Kód sa nachádza v programovom účte; možnosť aktualizovať ho závisí od mechanizmu nasadenia a od subjektu určeného ako authority
- - Dáta (stav) sú v samostatných účtoch, ktoré program riadi
Sealevel tak môže transakcie analyzovať vopred: ak sa transakcia A týka účtov {X, Y} a transakcia B účtov {Z, W}, možno obe vykonať paralelne, bez konfliktu.
Model umožňuje paralelne vykonávať transakcie, ktoré nezasahujú tie isté účty. To môže zvýšiť kapacitu, samo osebe to však neodôvodňuje žiadny záver o kvantitatívnej výhode oproti EVM na porovnateľnom hardvéri. Pre Bitcoin Hyper nebol doteraz zverejnený žiadny konkrétny výkonnostný test.
Čo to znamená pre vývojárov
Programy SVM sa píšu v jazyku Rust (alebo v C/C++) a kompilujú sa do bytecodu eBPF. Najpoužívanejším frameworkom je Anchor, ktorý pridáva makrá a konvencie zjednodušujúce vývoj.
Dokumentácia Bitcoin Hyper si kladie za cieľ priamu kompatibilitu s ekosystémom Solana, opisovanú ako „drop-in compatibility“. Podľa projektu by existujúci program mohol fungovať po obmedzených úpravách — napríklad po zmene RPC endpointu a niekoľkých sieťových parametrov. Dokumentácia predpokladá aj kompatibilitu s nástrojmi ako Solana CLI, Anchor či pluginy pre IDE. Skutočnú mieru kompatibility zostáva nezávisle overiť.
Ak by sa takáto miera kompatibility naozaj dosiahla, mohla by znížiť vstupný prah pre vývojárov, ktorí poznajú Solanu. To, že dve siete zdieľajú prostredie postavené na SVM, však nezaručuje kompatibilitu programov, API, systémových programov, nástrojov ani správania vykonávacieho prostredia. Zostáva to skôr návrhovým cieľom než nezávisle overeným výsledkom.
Čo zostáva objasniť
Niekoľko vecí sa oplatí povedať otvorene:
- Úplná kompatibilita nebola nezávisle overená: devnet má selektívny prístup a verejné testovanie je obmedzené
- Rozdiely v modeli poplatkov: podľa dokumentácie projektu účtuje Bitcoin Hyper poplatky v $HYPER, nie v SOL, čo znamená, že časť abstrakcií sa líši
- Závislosti od systémových programov Solany: niektoré aplikácie na Solane stavajú na systémových programoch (napríklad na oficiálnom Token Programe), ktoré nemusia byť dostupné v rovnakej podobe
Tvrdenie o kompatibilite typu „drop-in“ zostáva overiť. Jeho posúdenie predpokladá verejnú technickú dokumentáciu, dostatočný prístup k devnetu a reprodukovateľné testy pokrývajúce programy, nástroje a systémové závislosti.
Analógia s franšízou
SVM si možno predstaviť ako kuchyňu franšízovej reštaurácie. Recept zodpovedá kódu a prevádzka sieti, v ktorej kód beží. Bitcoin Hyper si kladie za cieľ ponúknuť nástroje kompatibilné so Solanou; doteraz sa však nepreukázalo, že všetky komponenty sú totožné ani že výsledok je za každých okolností rovnaký.
Rozdiel je v hlavnej surovine: namiesto SOL by mal byť „palivom“ tejto kuchyne $HYPER.