Hozzáadva: 2021. Október 31.
A PoW hitelesítési algoritmust alkalmazó kriptovaluta hálózatokban a blokkok ellenőrzésének lépése elengedhetetlen a konszezushoz. Az ethereum ökoszisztémában viszont a bányászok nem kapnak jutalmat a blokkok ellenőrzésért. Ebből következően az ethereum bányászok mindig vacillálni fognak. Ellenőrizzék-e a blokkokat, vagy a számítási erőforrásaikat új blokkok bányászatára használják? A bányászok ilyen jellegű dilemmáját adat alapú gépi tanulásos analitikai technikákkal lehet elemezni. A diszkrét térben történő szimulációk eredményeiből sokat lehet tanulni. A jelen munkában Gaussian Keverék Modellek (Gaussian Mixture Models) és Véletlenszerű Erdő Regressziós (Random Forest Regression) transzformációs mechanizmusok lettek alkalmazva. Kiderül, mindig megérni nem ellenőrizni, de a probléma orvosolható. Nézzük hogyan!
A blokkláncok csak a bányászok közreműködésével tudnak helyesen működni. Csak így garantálható a blokkláncban tárolt adatok helyessége és a végrehajtott tranzakciók validitása.
A nyilvános, engedélyeztetést nem igénylő blokkláncok esetében a bányászokat pénzügyi ösztönző mechanizmusokkal csábítják a szükséges munka elvégzésére. A munkáért cserébe kriptovalutát fizet a hálózat. Ezzel biztosítható a blokklánc elvárt működése. A jól megtervezett ösztönző modellek fenntartják a bányászok lelkesedését és így képes jól működni a rendszer.
Az ethereum rendszerében viszont, érdekes módon a konszenzus algoritmus olyan módon van kialakítva, hogy a bányászok közvetlenül nincsenek motiválva a tranzakciók és a blokkok ellenőrzésére. Természetes módon felmerül tehát a kérdés: Van-e bármiféle értelme a bányászoknak a blokkok ellenőrzését elvégezni ha nem kapnak értelme jutalmat?
Ha minden blokk helyes adatot tartalmaz, akkor az ellenőrzésre nincs szükség és lehet számolni a következő blokk hitelesítéséhez szükséges adatokat.
A Hitelesítők Dilemmája a Demystifying Incentives in the Consensus Computer és az A scalable verification solution for blockchains című művekben részletesen van taglalva, de a problémát még nem analizálták számszakilag. Ezt a hiányt próbálja pótolni a lenti taglalás.
A különböző technikák használatával elemezni lehet, hogy az ethereum bányászok milyen jutalmakra tehetnének szert ha részt vennének a blokkok ellenőrzésében. Jó modellek felépítésével különböző kimeneteket is meg lehet vizsgálni és csupán a jelenleg is futó ethereum hálózat vizsgálatával erre nem lenne lehetőség. A modell alapú vizsgálódás, helyes parametrizációval az egyetlen lehetőség a dilemma vizsgálatára.
A jelen munkában a BlockSim programcsomag lett használva. Ez egy publikus ethereum szimulátor. Általános célú és tetszőleges mértékben kibővíthető. A megfelelő kibővítéseket elvégezvén a Hitelesítők Dilemmája vizsgálható. A való életet megközelítéséhez ethereum okos szerződésekből is kellett adatot gyűjteni. A jelen munkában 324 ezer okos szerződés lett analizálva. A szimulátor bemenetéhez az adatokat statisztikus és gépi tanulásos technológiák segítségével alakították át. Az adatok illesztéséhez Gaussian Mixture Models algoritmust használtak a szerzők. Ilyen adatok voltak például az egy okos szerződés által elhasznált Gas költségek. A Random Forest regresszióval pedig egy okos szerződéshez szükséges CPU időt lehetett közelíteni az adott Gas költségek mellett. Az így kapott eloszlások segítségével lehetett parametizálni a szimulációkat. A végső eredményekből pedig néhány zárt alakú formulát is elő lehetett állítani. Ha például nincsenek érvénytelen blokkok a rendszerben, akkor a bányászok jutalmait, attól függően, hogy hitelesítenek-e vagy nem zárt alakban ki lehet fejezni.
A végső eredmények szerint a bányászok akkor járnak el racionálisan ha bizonyos körülmények között nem ellenőrzik a blokkokat. Természetesen ez az ethereum blokkláncot veszélynek teszi ki, azért mert az ethereum konszenzus algoritmusa arra épül, hogy a blokkok érvényesek.
A problémát valamilyen szinten a következő két megoldással lehet orvosolni:
1. A blokkokat párhuzamos módon kell hitelesíteni
Ez az eljárás a Adding Concurrency to Smart Contracts című munkában már bemutatásra került. Így le lehet csökkenteni az ellenőrzéshez szükséges időt és a bányászok gyorsabban mehetnek át a következő blokkra.
2. Érvénytelen blokkok szándékos betöltése
Ha a rendszer szándékosan érvénytelen blokkokat állít elő, akkor azon bányászok, akik nem ellenőriznek büntetve lesznek. Az ellenőrzést nem végző bányászok így nagyobb rendszerességgel fognak érvénytelen blokkokat előállítani és ezen blokkok hozzáadását le fogják szavazni a többiek. Így a nem ellenőrző bányászok hozama csökkenni fog.
Ha szinte csak érvényes blokkok jönnek létre, akkor ez annyira nem nem fog számítani, de az ethereum blokkláncának limitjének emelkedésével ez a probléma egyre inkább súlyosbodik majd. Emiatt fontos lesz a bányászok motivációs mechanizmusának korrekciója.
A blokklánc egy elosztott főkönyv, amelybe blokkokat fűznek. Ezek a blokkok tranzakciókat tartalmaznak. A blokklánc hálózatokban a csomópontok egy bizonyos csoportja, a bányászok felenek a blokklánc integritásáért a blokkok folyamatos hozzáfűzésével. Az új blokkok generálásához és hozzáadásához a bányászok először kiválasztanak és végrehajtanak bizonyos tranzakciókat a hálózatból, majd a Proof Of Work mechanizmus segítségével blokkba foglalják a tranzakciókat. Az így előálló blokkot elküldik a hálózat többi csomópontjának is. Miután egy csomópont megkapta az új blokkot, elvileg felelőssége lenne a blokk valódiságának leellenőrzése és csak ezután adhatná hozzá a saját lokális blokkláncához.
A blokk valódiságának leellenőrzése a blokk szerkezetének megvizsgálásából és a blokkban található tranzakciók végrehajtásából áll. Az ellenőrzés és a bányászok munkájának felülvizsgálata során hitelesítődik véglegesen egy blokk.
Az első generációs blokkláncok, mint például a bitcoin alapvetően kriptovaluta tranzakciókat valósítottak meg. A már okos szerződéseket is támogató blokkláncok bonyolultabb feladatok elvégzésére is alkalmasak. Az okos szerződés tulajdonképp egy számítógépes program, amit a blokklánchoz lehet fűzni. Feltételes elágazások találhatók benne és az okos szerződés helyes működését a konszenzus algoritmus garantálja. Jelenleg az ethereum a legnépszerűbb okos szerződés platform, Turing teljes programozási nyelvvel.
Az ethereum hálózatában kétféle fiókot lehet kezelni. Vannak az egyszerű felhasználói számlák. Ezek a hálózat natív kriptovalutájának utalását biztosítják. Emelett vannak még okos szerződés fiókok is és ezekkel lehet az okos szerződések funkcióit használni. Mindezek mellett a blokklánc ad némi tárhelyet is a különböző változók tárolására. Az ethereum számlák tranzakciók segítségével lépnek kapcsolatba egymással. Az ethereum esetében vagy kriptovalutákat utalnak egymásnak a felhasználók vagy az okos szerződésekkel kommunikálnak.
A hálózat natív kriptovalutáját ethernek hívják, ezt lehet egymás közt utalni. A második esetbe a felhasználók új szerződéseket publikálhatnak a blokkláncra vagy a már meglévőket használhatják. Az új szerződések publikálása során a szerződés bytekódját kell elküldeni a blokklánc irányába. Amint az kikerül a blokkláncra érvényes lesz és egy egyedi azonosító segítségével el lehet érni. Az okos szerződéshez úgy lehet hozzáférni, hogy az egyedi azonosító megadása mellett a bemeneti paramétereket is meg kell adni egy szerződés végrehajtó tranzakcióban. Az ethereum hálózatában minden egyes csomópont futtatja az Ethereum Virtuális Gépet (EVM) és ez a virtuális gép a felelős a szerződések kezeléséért. A szerződések végrehajtásakor opcode-okat használ. Jelenleg az EVM a szerződéseket szekvenciálisan hajtja végre és így is ellenőrzi őket.
Szerző: LB
Figyelem: A bejegyzésben található információk tartalmazhatnak hibát. A szerző az abból eredő károkért nem vállal felelősséget!