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…

Atomic-swap, HTLC: A következő nagy crypto big-bang

Már egy jó ideje téma az atomic-swap és az azt lehetővé tevő HTLC technológia, ugyhogy itt az ideje, hogy alaposabban is megértsem mi is ennek pontosan a technológiája. A téma apropóját leginkább az adja, hogy az eddig lényegében csak ‘whitepaper’ szinten működő történet hírtelen konkrét termékekben manifesztálódott. Ahogy arról a héten írtam a Litecoin csapatának atomic-swap implementációja már ‘release-candidate’ állapotba került és tegnap a Z.Cash csapata is bejelentette, hogy szintén tesztelhető állapotba került a saját XCAT néven futó atomic-swap megoldásuk, ami első körben természetesen a BTC-ZEC párok közötti instant cserét valósítja meg. Az XCAT az Cross-Chain Atomic Transactions rövidítése, ami úgy egyébként valójában nem a Z.Cash saját találmánya, az XCAT egy teljesen független történet amit még egy bitcoin fan TierNolan talált ki, a Z.Cash most csak implementálta ezt a ZEC-BTC páron.

Folytatás…

ETH/Parity végzetes hiba és a mancs őrjárat

Tegnap éjszaka futótűzként terjed el, hogy valami nagyon durva bug van a Parity wallet klienssel. Egészen pontosan annak multi sig smart contract részével. Amennyiben valaki korábban használt ilyen wallettel multi sig smart contractot, akkor annak a pénze lenyúlhatóvá vált.

A történetről tényleg csak annyit, hogy itt még nem érdemes kongatni a vészharangokat, ez nem az Ethereum network és pláne nen a blockchain hibája. Egyszerűen a Paritynek sikerült elrontani az implementációt, ez a kockázat sajnos mindig benne van. A Parity amúgy sem a tökéletes implementációról híres, nagyon sokat támadják pl a blockchain szinkronizációs megoldásai miatt is. Tessék használni a Mistet és a Go Ethereumot, ha már egyszer magyar vonatkozása van utóbbinak azáltal, hogy Szilágyi Péter (alias karalábé) tartja karban.

Szóval aki értetlenül állt a tegnap esti hatalmas árfolyam droppoláson, az most már értheti, hogy mi is történt. A hír bejelentését követően pánikszerűen kezdték el kimenekíteni a pénzüket a befektetők ETH-ből lényegében mindegy milyen áron. Ennek hatására egészen 185 dollárig verték le az árat, amiből folyamatosan próbál visszatérni az árfolyam, de a hírek lassú terjedése miatt késleltetve újra és újra bekövetkezik a beszakadás. Ebben a percben is éppen benézett az árfolyam egészen 208-ig.

Folytatás…