Ez a tanfolyam csak Pro tagjaink számára elérhető
Bevezetés
Az Ethereum eredeti fejlesztői nem vették figyelembe a ZKP-technológiát, amikor 2014-ben először bemutatták a hálózatot. Az elmúlt években azonban a ZKP egyre nagyobb figyelmet kapott, és várhatóan sokkal jelentősebb szerepet fog játszani a blokklánc területén. Ennek következtében a ZKP-technológia és az Ethereum virtuális gépének kombinálására irányuló erőfeszítések felerősödtek.
Ahhoz, hogy megértsük, mi is az a zkEVM, először röviden tekintsük át a két mögöttes koncepciót: a zk-rollupokat és az EVM-et.
Mik azok a Zk-Rollupok?
A rollup egy olyan skálázási megoldás, amely számos, a fő láncon kívüli tranzakció végrehajtását állítja össze, és az adatokat egyetlen tranzakcióként küldi vissza a fő hálózatra. Ez a folyamat növeli a feldolgozási teljesítményt, miközben csökkenti a tranzakciók végrehajtásának költségeit.
Az Ethereumon a rollupon belüli tranzakciókat tömörítik, és elküldik az Ethereum mainnetre egyetlen tranzakció hitelesítésének költségéért. Az Ethereum mainnet biztosítja az elszámolást és hitelesíti a rollupban szereplő tranzakciós adatokat.
A zk-rollup egy olyan típusú rollup, amely ZKP-technológiát használ, egy olyan kriptográfiai technológiát, amely lehetővé teszi egy információ érvényességének ellenőrzését anélkül, hogy magát az információt felfedné. A zk-rollupoknak nem kell minden tranzakciós adatot közzétenniük az Ethereum mainneten; csak állapotbeli különbségekre (például a felhasználói fiók státuszának változásaira) és az érvényesség igazolására van szükségük, ezzel is csökkentve a gas díjakat.
A zk-rollupok biztonsága a ZKP-kriptográfiából ered, ahol a bizonyítás ellenőrzésére és a bizalom minimalizáltság elérésére kriptográfiai eszközöket használnak. Ez különbözik más rollupoktól, például az optimista rollupoktól, amelyek biztonsága a gazdasági játékelméletből ered, ahol a rosszindulatú szereplőket elrettentik a potenciális veszteségek, a versenytársakat pedig az ösztönzők motiválják.
Mi az EVM?
Az EVM egy olyan állapotgép, amelyen az Ethereum fiókrendszer és az okosszerződések futnak. Minden okosszerződés végrehajtása aktiválja az EVM-et, hogy áttérjen egy régi állapotból egy új állapotba. Az EVM meghatározza az új és érvényes állapotok egyik blokkból a másikba történő kiszámításának szabályát.
Az állapot egy fontos fogalom az Ethereum kapcsán. Ez egy Merkle Patricia Trie adatszerkezet, amely az Ethereum aktuális állapotát mutatja, és bárki számára lehetővé teszi a tranzakciós információk nyomon követését az aktuális blokktól egészen a genezis blokkig.
Az Ethereum fenntartásában részt vevő csomópontok mind azért vannak, hogy biztosítsák a folyamatosságot és a konszenzust, ami lehetővé teszi, hogy minden csomópont lássa az aktuális állapotot. Az EVM kritikus szerepet játszik ennek a konzisztenciának a fenntartásában.
Hogyan működik a ZkEVM?
Az EVM alapértelmezés szerint nem támogatja a ZKP-kat. A zkEVM célja, hogy biztosítsa az Ethereum állapotának folyamatosságát, miközben bizonyítja, hogy minden információ helyes. Ily módon a biztonság és az adatvédelem fenntartása mellett ellenőrizhetők a folyamatok számításában részt vevő különböző tényezők.
A zkEVM ezt úgy éri el, hogy az Ethereum-környezetet zk-rollupként replikálja. Fogja a kezdeti állapotot, kiszámítja az összes tranzakciót, majd egy új, frissített állapotot ad ki a hozzá tartozó ZKP-vel együtt. Ezt a bizonyítékot egy hitelesítő okosszerződéshez kell benyújtani, amely ellenőrzi mind a kezdeti, mind az új állapot kimenetének helyességét anélkül, hogy az összes tranzakciót külön-külön hitelesítenie kellene.
Mivel a zkEVM-ek az EVM-en alapulnak, a fejlesztők könnyen hordozhatják az Ethereum DAppokat és okosszerződéseket a zkEVM-ekre anélkül, hogy ZKP-fejlesztési munkát kellene végezniük. Más szóval, a zkEVM-ek lehetővé teszik a zk-rollupok számára az okosszerződések végrehajtását, a korábban a zkEVM-ek nélkül támogatott token swapok és fizetések mellett.
Az EVM kompatibilitási funkciójának köszönhetően a fejlesztők új termékeket készíthetnek a meglévő EVM-eszközök és a Solidity programozási nyelv használatával, miközben élvezhetik a zkEVM által nyújtott fokozott biztonságot. Ugyanezek az előnyök a felhasználókra is vonatkoznak – továbbra is ugyanazokat a DAppokat és megszokott eszközöket használhatják, nagyobb biztonság és adatvédelem mellett.
EVM-kompatibilitás versus EVM-ekvivalencia
Amikor egy blokkláncot EVM-kompatibilisnek hívnak, az azt jelenti, hogy olyan környezetet kínál, amely képes a Solidity programozási nyelven írt DAppok telepítésére. A Solidity az Ethereum hálózaton futó okosszerződések fejlesztésére szolgál.
Tulajdonképpen az Ethereum-fejlesztők kimásolhatják a meglévő DAppok kódját az Ethereumról, és minimális módosításokkal más EVM-kompatibilis láncokra telepíthetik. A felhasználók számára bármely EVM-kompatibilis lánccím megegyezik az Ethereum-címükkel.
Ez azt jelenti, hogy a címek kompatibilisek az olyan mainstream tárcákkal, mint a Metamask és a Trust Wallet. Jelenleg a főbb EVM-kompatibilis láncok közé tartozik a BNB Chain, az Avalanche C-Chain és a Polygon.
Az EVM-kompatibilitás nem tévesztendő össze az EVM-ekvivalenciával, ami azt jelenti, hogy a DApp-fejlesztő szempontjából a Layer 2 rollupok közel azonosak a Layer 1 Ethereummal.
Az operációs rendszer analógiájával élve, az EVM-ekvivalencia hasonlít ahhoz, amikor az Apple Cloudon keresztül visszaállítják a fájlokat és beállításokat, ha a felhasználó korábbi számítógépe és új számítógépe egyaránt az Apple operációs rendszerén fut.
Ezzel szemben az EVM-kompatibilitás azt jelenti, hogy ha egy új számítógép Windows rendszerre vált, az eredeti fájlokat le kell tölteni a felhőalapú tárhelyről, és át kell alakítani a preferált beállítások és a régi fájlok visszaállításához.
Különböző típusú ZkEVM-ek
A ZKP-k generálása és hitelesítése közvetlenül EVM segítségével rendkívül lassú, mivel az Ethereumot eredetileg nem a ZKP-technológia támogatására tervezték. Bizonyos esetekben ez akár több órát is igénybe vehet. Mindazonáltal fontos, hogy megtaláljuk az egyensúlyt az EVM-kompatibilitás és a ZKP hatékonysága között.
Az Ethereum alapítója, Vitalik Buterin a következő négy típusba sorolta a zkEVM-eket. A blokklánc-trilemmához hasonlóan, mindegyikük különböző kompromisszumokat köt a ZKP teljesítményhatékonysága és az EVM-kompatibilitás között.
1. típus: Konszenzus szintű ekvivalencia – az Ethereummal teljesen egyenértékű zkEVM
Konszenzus szinten az 1. típusú zkEVM – más néven biztosított rollup – megegyezik az Ethereummal, és a zkEVM-lánc állapota és tranzakciói megegyeznek az Ethereuméval. Kölcsönösen hitelesíthetik a blokkokat, és közvetlenül használhatók az Ethereum végrehajtási klienseivel.
Az 1. típusú zkEVM-ek skálázhatóbbá teszik magát az Ethereumot, és közvetlenül bevezethetők az Ethereum mainnetre. Hátránya, hogy a ZKP hatékonysága rendkívül gyenge, és sok számítási munkát igényel az hitelesítés. A megoldás az lenne, hogy a jövőben nagyméretű párhuzamos validátorokat vagy speciális integrált áramköröket használjanak a zk-SNARK-okhoz.
Az 1. típusú, nagy ZK-hatékonyságú zkEVM-ek lennének a zkEVM-ek legideálisabb formája. Jelenleg számos projekt fejleszti vagy vizsgálja ezt a fajta zkEVM-et.
2. típus: Bytecode szintű ekvivalencia – teljesen egyenértékű az EVM-mel
A 2. típus teljesen egyenértékű az EVM-mel, de az Ethereummal nem. Az adatszerkezetek (például a blokkszerkezet és az állapotfa) tekintetében különbözik az Ethereumtól, és töröl néhány olyan veremműveletet, amelyek nem ZK-barátok.
Teljesen kompatibilis az Ethereum meglévő DAppjaival, hibakereső eszközeivel és fejlesztői infrastruktúrájával. A bytecode-szintű ekvivalencia felgyorsíthatja a bizonyítási időt, bár nem jelentősen. A 2-es típus egyértelmű hátránya, hogy drága, nem szinergikus a ZK-val, alacsony és költséges a hatékonysága.
2.5 típus: Hasonló a 2. típushoz, de módosított gas díjakkal
A 2.5 típus osztozik a 2. típus előnyeiben és hátrányaiban, de valamivel alacsonyabb gas díjakkal rendelkezik.
3. típus: Bytecode szintű ekvivalencia – majdnem egyenértékű az EVM-mel
A 2. típusra alapozva a 3. típus tovább csökkenti a kompatibilitást a ZK hatékonyságának növelése érdekében. Törli a zkEVM-en nehezen megvalósítható funkciókat, mint például az előfordításokat, emiatt újra kell írni néhány olyan DAppban használt kódolást, amely ezt a funkciót igényli.
4. típus: Fejlesztői nyelvi szintű ekvivalencia – az EVM-mel egyenértékű magas szintű nyelv
A 4-es típusú EVM-ek rendelkeznek a legmagasabb ZK-teljesítménnyel, de viszonylag gyengébb a kompatibilitásuk.
Záró gondolatok
A zkEVM megvalósításának fő célja a ZKP-számítás támogatásának kiterjesztése az okosszerződések végrehajtására, és ezáltal a DAppok kiterjesztése az összes EVM-kompatibilis protokollra. A ZKP-k lehetséges alkalmazásai persze nem merülnek ki ennyiben.
A ZKP-technológia potenciálisan kompatibilis lehet a Web2 felhasználási területekkel. A különböző Web2 felhasználási területek kombinálása a ZKP-vel gördülékenyebbé és felhasználóbarátabbá teheti a Web3 alkalmazásokat. A hagyományos internetes böngészőkhöz szokott felhasználók számára is hozzáférést biztosítana a Web3-hoz, és ezzel elősegítené a Web3 elfogadását.