2019.06.07.

A kiterjesztett blokklánc algoritmusokról

Szerző:

Kategóriák:

A blokklánc keretrendszerek jelentős elméleti és koncepcionális fejlődésen mentek keresztül az elmúlt pár évben. A kutatás egyik legfontosabb iránya az úgynevezett skálázhatósági problémák legyőzése. A legnagyobb problémát az okozza, hogy a nyilvános blokklánc rendszerek áteresztő képessége eléggé limitált.

A Bitcoin hálózat 3,5-7 tranzakciót képes feldolgozni másodpercenként, míg az Ethereum körülbelül 15-öt. Ez a szám a PayPal több százas vagy a VISA több ezres másodpercenkénti tranzakció számához képest nem túl jelentős. Egyenlőre sajnos nem sikerült tökéletes skálázási megoldást találni.

A megoldások nagy része bár a nettó tranzakció számot javítja, ugyanakkor a keretrendszer valamely más paraméterét lerontja. Általánosságban a kutatási irányokat az alábbi ábrán látható blokklánc skálázhatósági trilemma foglalja össze a legjobban.

A trilemma

A trilemma lényege, hogy a blokklánc rendszerek három fontos követelményéből: skálázhatóság, decentralizáció és biztonság maximum kettőt lehet hatékonyan megvalósítani. Például a klasszikus nyilvános kripto rendszerek ,mint például az Ethereum vagy Bitcoin elég biztonságosak és decentralizáltak azonban nem túl hatékonyak.

Ezzel ellentétben a konzorcium elosztott főkönyvi technológiák, mint például a Hyperledger Fabric, vagy a Corda, gyorsak és biztonságosak, viszont nagyon sokat feladtak a decentralizáltságból. Ehhez hasonló kezdeményezések, mint például EOS sikeresen skáláztak egy sokkal magasabb tranzakció számra, azonban ezt egy sokkal centralizáltabb modellel sikerült elérni, aminek a biztonsági tulajdonságai is kérdésesek.

Annak ellenére, hogy a kutatás fő iránya az ideális blokklánc és konszenzus algoritmus megtalálására fókuszál, érdekes innovatív ötleteket találunk a blokklánc kiterjesztésével kapcsolatban is. Az ilyen kiterjesztett algoritmusok általában feltételezik, hogy létezik már egy jól-rosszul működő blokklánc platform, amin tranzakciókat lehet érvényesíteni, vagy okosszerződéseket lehet implementálni. Ezt az alapfunkcionalitást terjesztjük ki további praktikus elemekkel.

A következőkben ilyen kiterjesztett algoritmusokra és alkalmazásokra látunk egy pár példát.

A konzorcium blokklánc legfontosabb tulajdonságai

Konzorcium blokkláncok és platformok elemzésénél a következő fontosabb tulajdonságokat kell figyelembe venni:

Hash és időzárú szerződések (HTLC, hashed timelock contract):

Alapesetben egy blokklánc protokollban egy tranzakció feldolgozása végleges. Egy idő után biztosak lehetünk abban, hogy a tranzakciónkat a rendszer feldolgozta és érvényesnek, vagy érvénytelennek találta.

A hash és időzárú szerződések lényegében olyan tranzakciókat valósítanak meg, amik nem hajtódnak végre teljesen, hanem csak feltételesen. A hash zár lényegében egy klasszikus zárhoz hasonlít: bárki, akinek kulcsa van a zárhoz ki azt tudja nyitni. Az időzár pedig egy bizonyos ideig lezár valamilyen funkciót, ami az idő lejárta után elérhetővé válik.

Ha egy hash és időzárú tranzakciót elindítunk, akkor lényegében egy átmeneti tranzakció, például átmeneti pénz átutalás jön létre a blokkláncon. A tranzakció teljesen végrehajtódik, ha bárki bemutatja a hash zárhoz a kulcsot – gyakorlatilag a kulccsal feloldja a tranzakciót. Ha a határidő előtt ez nem történik meg, akkor a tranzakció vissza lesz vonva. Ezt valósítja meg az időzár.

Habár a funkcionalitás elsőre nem tűnik túlságosan komplikáltak, a legtöbb következőkben ismertetett algoritmusnak és alkalmazásnak ez az alapja.

blank

Hash és időzárú szerződés, Forrás: jeffersoncapital.info

Atomi blokkláncok közötti váltás (atomic cross-chain swaps):

Klasszikus pénzváltásnál és értékcserénél az alapvető probléma a bizalom. Például, ha a sarki pénzváltónál forintot váltunk euróra, akkor valamennyire meg kell bíznia a feleknek egymásban. Tekintve, hogy itt a tranzakciók egyszerre zajlanak, az egyik fél adja a forintot és kapja azonnal az eurót. A helyzet egy kicsit komplikáltabb, ha a tranzakciók időben elkülönülnek, például előbb átutalom a forintot, majd három nap múlva kapom meg az eurót. Az ilyen modellekben általában valamiféle intézmény alakult ki a felek között, mely intézmény a bizalmat és a tranzakciók létrejöttét garantálja.

A blokklánc alkalmazásokkal kapcsolatban is felmerülnek hasonló problémák. Természetesen a legtöbb blokklánc erősen decentralizált, így amennyiben mindkét valutánk ugyanazon a blokkláncon van, az egyidejű váltást képes a blokklánc garantálni mindenféle központosított modell nélkül. Például, ha két Ethereum token között szeretnénk váltani, megvalósítható egy olyan okosszerződés, ami ezt a váltást bármiféle központi intézmény nélkül garantálja, még akkor is, ha a tranzakciók időben eltolva hajtódnak végre. A probléma azonban fennmarad, ha különböző blokkláncok között szeretnénk váltani, például Bitcoin-t Litecoinra vagy etherre. Természetesen itt is lehetne valamiféle központi kritpo váltó intézményt megvalósítani, ez azonban eléggé ellentétes a blokklánc filozófiájától.

Az atomi blokkláncok közötti váltók képesek garantálni, hogy két tranzakció közül, ami technikailag két különböző blokkláncon van megvalósítva , vagy mindkettő végrehajtódik vagy egyik sem. Például, ha Bitcoint akarok váltani Litecoinra, és egy tranzakcióban elutalok valakinek Bitcoin-t, akkor az én tranzakcióm csak akkor hajtódik végre, ha a nekem utalt Litecoin tranzakció is végrehajtódik. Az atomi végrehajtást pedig egy blokkláncok között kiterjesztett algoritmus garantálja mindenféle intézményi háttér nélkül.

Technikailag az atomi váltók hash és időzárú szerződésekkel valósulnak meg. Gyakorlatilag mindkét blokkláncon elindítunk egy-egy tranzakciót, ami ugyanazzal a hash és időzárral van lezárva. Ha az adott időablakon belül valaki feloldja az egyik tranzakciót, akkor a zárat feloldó kulcs nyilvánossá válik és a másik tranzakció is feloldható. Ha a tranzakciókat nem oldják fel adott időn belül, mindkét tranzakció visszavonásra kerül. Így a tranzakciók atomi végrehajtását az algortimus garantálja.

blank

Az atomi blokkláncok közötti csere játékelméletileg egy inverz mexikói felállás

Decentralizált kripto tőzsdék (decentralized exchange):

A decentralizált kriptovaluta tőzsdék az atomi blokkláncok közötti váltást fejlesztik tovább egy lépéssel. A kriptovaluta tőzsdének algoritmikusan két nagy funkciója van: egyrészt az eladási és vételi ajánlatokat kell párosítani (order book matching), másrészt a párosított opciók között kell a konkrét értéktranszfert megvalósítani (settlement).

Ebből az első lépésre többféle centralizált és decentralizált algoritmus is létezik. Ha viszont már egyszer megtörtént a párosítás, akkor a konkrét értékcserét atomi blokkláncok közötti váltással lehet a legdecentralizáltabban megvalósítani.

Második rétegű skálázás (second layer scaling):

Hasonló ötleteken és algoritmusokon működnek a második rétegű skálázást megvalósító rendszerek. Itt az alapötlet az, hogy mivel egy nyilvános blokklánc tranzakció drága és lassú is lehet, próbáljuk meg a tranzakciók egy részét a blokkláncon kívül végrehajtani. Természetesen az algoritmusnak továbbra is úgy kell működnie, hogy a bizalmi réteget egy szoftverprotokoll valósítsa meg, és ne kelljen intézményi szereplőket bevonni az értéktranzsferbe.

A gyakorlati megvalósítás során általában egy blokkláncon kívüli privát kommunikációs csatornát szokott nyitni az a két szereplő, akik egymással értéket akarnak cserélni. Ezen a kommunikációs csatornán érvényes és aláírt blokklánc tranzakciókat küldenek egymásnak, ezek a tranzakciók azonban nem kerülnek feltétlenül feldolgozásra a blokkláncon.

Egy tranzakció feldolgozása során a blokklánc által való feldolgozás az, ami lassú és költséges. Ha tranzakciókat csak privát csatornán küldözgetünk decentralizált feldolgozás nélkül, az gyakorlatilag költség nélküli és azonnali. Természetesen fontos kérdés, hogy mi történik az értéktranszferrel, ha valamelyik résztvevő csalni akar, vagy egyszerűen off-chain megy. Ilyenkor a másik fél a legutolsó érvényes tranzakciót elküldheti a blokkláncnak, így gyakorlatilag az értéktranszfert lezárja és az addig neki elküldött értéket megkapja.

blank

Blokkláncon kívüli csatorna, Forrás: achainofblocks.com

Fizetési megoldások dinamikus útvonalválasztással (routed payment):

Talán a legizgalmasabb és legkomplexebb alkalmazási példa az irányított fizetés. Itt lényegében az előző pontok ötleteit és algoritmusait kombináljuk. Két főbb alkalmazási példa ismert:

  • A legismertebben a lightning network-ben az előző pontban ismertetett off-chain privát tranzakciós csatornát egészítjük ki többszereplőssé. Amennyiben Alice Bob-nak szeretne Bitcoin-t küldeni egy off-chain csatornán keresztül, de nincs közöttük közvetlen csatorna, akkor egy harmadik szereplőn keresztül is meg tudják valósítani az értéktranszfert. Természetesen az algoritmusnak biztosítania kell, hogy a harmadik szereplőben se kelljen teljesen megbízni: a protokollnak továbbra is működnie kell akkor is, ha egyes szereplők csalnak, vagy offline mennek.
  • A másik inkább intézményi példa az Integledger Protocol, mely többszereplős fizetésirányítást valósít meg különböző főkönyvi technológiák között. Ezen technológiák alapulhatnak blokkláncon, de lehetnek klasszikus centralizált banki főkönyvi rendszerek is.

Konklúzió

Érdekes kérdés, hogyan alakul pontosan a technológia jövője. De kétségtelen a blokkláncban jelentős lehetőségek vannak, és nem csak az alapvető rendszereiben, hanem az ezekre épülő kiterjesztett megoldásokban is.

Címkék: