Miért vagyok az Ethereummal eddig… eddig… eddig…

Bő egy éve folyik aktívan az INLOCK körüli szolgáltatások fejlesztése, aminek az egyik nagyon fontos részét képezi a nyílt blokkláncokkal történő kapcsolattartás. Mit is jelent ez pontosan? Egy teljesen online rendszer esetén nyilvánvaló, hogy pl. a deposit (beutalás), withdraw (kiutalás) és a különböző (pl. exchange) művelet is teljesen automatikusan működjenek. Akinek kellett valaha is programoznia pl. Bitcoin ÉS Ethereum payment gatewayt az tudja pontosan, hogy miért pofon egyszerű ez a Bitcoin (és klónjai) esetén és miért egy totális világégéssel felérő katasztrófa az Ethereum kapcsán.

Aki viszont nem…

… annak álljon érdekességként itt ez a cikk. Anélkül, hogy túlságosan belevezetném az olvasót a technológia mélységeibe nézzük, hogy miért is annyira nagyon különböző a két technológia: a nyílt blokkláncoknál közismert tény, hogy a blokklánc valamilyen elv mentén tárolja az értékeket. Ez Bitcoin esetlén az UTXO (unspend transaction output), míg Ethereum kapcsán a blokkonkénti balance nyilvántartás.

Mit jelent ez a gyakorlatban? A Bitcoin esetén onnan tudod, hogy mennyi egy address egyenlege, hogy megnézed az adott addresshez tartozó összes UTXO-t és azok amountját összegzed, míg ezzel szemben az Etheruem-ban könnyedén le tudod kérni egy adott address egyenlegét, sőt node típustól függően akár visszamenőlegesen is le tudod kérni, hogy X blokkal korábban mennyi volt az egyenlege, így látszólag sokkal könnyebben tudsz pl. egy fizetésforgalmi szolgáltatást fejleszteni Ethereumra, hiszen a (geth/parity) node a kezed alá ad mindent. Blokkonként tudod a fogadó címek egyenlegét és a blokkból szépen ki is tudod olvasni, hogy az adott címre mennyi Ethereum érkezett. Ergo könnyedén lehet kezelni pl. a blokklánc elágazásait (Uncle blokkok), és ha megfelelő mennyiségű confirmationt hagysz rá, akkor egész komoly reorgok esetén sem kell attól félned, hogy olyan egyenleget írsz jóvá, ami valójában nem is létezik.

UTXO: A blokklánc nodejai egy kivonatot képeznek az összes el nem költött outputról, amik összege explicit megadja egy address szabadon felhasználható balanceát. A Bitcoin és abból forkolt blokkláncok az UTXO technológiát használják az egyenlegek nyomon követésére.

Uncle blokk: Ethereum esetén azon blokkok, amik bár elkészültek és propagálódtak is, de nem képezik részét a főláncnak.

Reorg: Ha egy blokk uncle-be kerül, akkor a nodeok újraépítik a saját főláncukat az uncle előtti állapotból, ezt a folyamatot nevezzük blokklánc reorganizációnak.

Ezen a ponton persze feltehetnénk a kérdést, hogyha egyszer ennyire egyszerű ás kezesbárány az Ethereum, akkor mégis mi is a bajom vele? Az ördög ezúttal is a részletekben lakozik.

Folytatás…