Gyakran kerül elő a blockchain paradigmaváltó tulajdonságainak méltatása kapcsán a kriptopénz mint rákfenéje ennek az egésznek. Tudom, hogy most ezzel a cikkel nagyot ugrok a “Nagy Fogalmatlanság Határozó” rovatban, de engedjétek meg, hogy ma előrevegyem ezt a témát. Egy ismerősömmel beszélgettem és szóba került, hogy mi is az én “story”-m a blockchain kapcsán, hogy lehet, hogy néhány éve nagy hirtelenséggel beleszerettem ebben a történetbe és perpillanat alárendelek ennek mindent (még a szakmai karrieremet is). Nekifutottam: miért is jó a blockchain, mennyire disruptív, paradigm shift és whatever, mégse tudtam átadni igazán az esszenciáját. Miért is vagyok annyira oda mindezért? Az ilyenfajta kérdések jót tesznek az embernek, hiszen segítenek újraértelmezni mindazt, amiért éppen rajongunk. Unalomig csépelt az a frázis, hogy a blockchain talán legfontosabb forradalmi vívmánya, hogy azon keresztül kizárható a harmadik féllel szembeni bizalom és ez mindenkinek jó. De mégis mi a baj azzal a harmadik féllel? Tényleg itt csak annyiról van szó, hogy mindenkiben korrupt tolvajt látunk, akinek egyetlen célja mások megkárosítása és megtévesztése? Bár ez is ide sorolható, de ez kétségtelenül csak egy véglet.

Mielőtt rátérnék a mai témára megosztanám veletek a saját revelációmat. Közel 20 éve találtam meg a hivatásomat, ami az IT biztonságtechnológia lett. Amikor az mondom, hogy közel 20 éve az nem csak költői túlzás, tényleg néhány hónap híján 20 éve történt meg, amikor a fősulin egy kurzus után böngésztem az internetet és rátaláltam arra a bizonyos hacker szubkulturára, ami azonnal magával ragadott és beszippantott. Ezt követően már semmi sem volt fontosabb akkor, mint ez a téma (meg is lett az eredménye…). Gyakorlatilag nagyon hamar belecsöppentem az akkori hazai itsec guruk világába, ami némi idő után sokkal inkább szólt a közösségről mintsem a technológiáról. Persze ha a tudás és a hírnév az ember előtt jár, akkor könnyen köveződik ki a karrierútja is. Multik kértek fel etikus hackelésre, majd a rommá tört rendszerek befoltozására. Az egyik legizgalmasabb feladat mindig az akkor – egyébként hibásan – “loyalty testing” néven futó gyakorlatilag whitebox test szolgáltatásunk volt, amikor egy bizalmi ember bőrébe bújva annak információi segítségével kellett kideríteni, hogy mennyire lehet úgy kárt okozni, rootkitet elhelyezni vagy információt szerezni, hogy annak lehetőleg ne legyen semmi nyoma. Lássuk be, az ilyen jellegű teszteléseknek ma különösen nagy fontossága van, hiszen az internet korában átléptünk az adat, mint nyers erő korába, ahol már nem az adat tartalma a fontos, hanem azok sokaságának jellemzője. Talán egyetlen olvasónak sem kell bemutatnom azt, hogy mekkora értéket képeznek ma olyan nyers adott személyhez köthető adatok, amikből tökéletes profilok és profilcsoportok alkothatók. A machine learning és a big data modern korunk egyik legfélelmetesebb eszköze, éppen ezért kulcsfontosságú mindenki számára, hogy milyen adatokat enged ki magáról az internetre és olyan bizalminak tűnő harmadik személyek felé, akikről utólagosan kiderül, hogy csak elherdálták a feléjük táplált bizalmat. Néhány éve egy ilyen véleményre még megkaptam volna a “paranoid” jelzőt és csavarták is volna a fejemre a tinfoil-hat-et, de mára kézzelfogható eredménye van az adatelemzésből alkotott profilalapú targetálás sikerességének. Nem kell messzebbre menni, elég kinyitni bármelyik sajtóorgánumot, minden a Facebook botrányról, a bugos apijukról és ennek a vélt vagy valós kihatásáról szól az amerikai elnökválasztás kapcsán.

De zökkenjünk vissza az alapokhoz, akkoriban a munkák nagy része lényegében arról szólt, hogy miként tudjuk manipulálni a biztonságért felelős erőforrásokat… Legyen az akár egy rendszer, akár egy konkrét személy. Volt egy nagyon kellemetlen ‘kalandom’, amikor betoppantam a 15 éves érettségi találkozómra, ahol lelkesen ecseteltem azt, hogy mivel is foglalkozom.  A mondandóm végén az egyik volt osztálytársam felállt és jelezte, hogy maximálisan alá tudja támasztani amit mondtam, mivel 2 hónapja az ő cégüknél végeztünk egy ilyen jellegű vizsgálatot, ahol kiderítettük, hogy ott konkrétan ő az a bizonyos gyenge láncszem (márhogy az osztálytársam), aki céges erőforrásokon üzemeltetett torrentszervert IT security specialist sapkában. A vizsgálatot követően rövidtávon menesztették is a cégtől. Nekem ő csak egy nicknév volt a megannyi ügyfél egyik szerverén, neki pedig egy kellemetlen hónap, amíg talált egy olyan újabb munkahelyet, ahol tolhatta tovább a torrentszerverét…

Minden egyes ilyen teszt és vizsgálat után készült természetesen egy eredménydokumentáció, ami tartalmazott egy külön fejezetet a javasolt intézkedésekről. Az intézkedéseket, aminek a lényege leginkább az indokolatlan és megalapozatlan bizalom kiiktatása volt a szükséges technológiai és adminisztratív kontrollok implementálásával. Ha valaki végiggondolja az IT biztonságtechnika elmúlt 10-15 éves evolúcióját, akkor gyakorlatilag azt fogja látni, hogy a legtöbb fejlesztés erre a tényre koncentrált: miként tudjuk a személyek iránti bizalmat kontrollálni? Hogy mi volt ennek az útja: minél bonyolultabb, minél komplexebb biztonsági infrastruktúra, legyen jó sok tűzfal, meg behatolásdetektáló, gyakorlatilag minden komponens kerüljön külön VLANba, mindenhol alkalmazásproxyk vigyázzák az adatokat, titkosítsuk a kapcsolatokat, tereljünk mindent protokollszinten definiált security middlewarekbe, központi security logging lehetőleg 3 különböző helyen és … és… és… sorolhatnám. Kvázi építsünk Fort Knox szintű védelmi rendszert.

Az elmúlt hat évben persze visszanyalt a fagyi nekem is… vagy, ahogy szokás mondani akasztották a hóhért. Több felkérést is kaptam audit felkészítésre és audit recommendation portfolió kezelésre.  Olyan ajánlások kezelésére, amiket külső és belső ellenőrök megállapítottak. A kezelés a gyakorlatban egyrészt challenginget (firtatni az ajánlás indokoltságát) jelent, majd ami valóban indokolt, annak a javítását, nyomonkövetését. Érdekes módon, ezen időszakban is ugyanazt tapasztaltam… a kotta semmit sem változott 20 év alatt: kinek mihez van joga, mihez is fér hozzá egy rendszergazda, milyen jogai vannak a DBadminnak, miért kell schemaowner jog egy alkalmazásnak (dehogy kell…), hogyan tudjuk az audit logokat független helyen tárolni, mi védi a journal logot, whatever… Mintha  semmit sem változott volna a környezet és továbbra is az a bizonyos szuperuser jogokkal rendelkező személy lenne az ellenség. Hogyan tekinthető egy alkalmazás adattartalma hitelesnek, ha egyszer azt egy rendszergazda egyetlen INSERT/UPDATE utasítással felül tudja írni, hogyan tekinthető az auditlog hitelesnek, ha azt az it security felelős ki tudja kapcsolni, hogyan tekinthető egy számlaegyenleg hitelesnek, ha egy implementációs hiba okán azt akár a négy-szem elv kontroll kikerülésével is lehet módosítani? És a megoldás minderre? Építsünk még robusztusabb rendszereket, még több harmadik félre bízzuk a felügyeletet, még több kontroll, még több compliance, még több audit… Jöttek is szépen szembe a jobbnál jobb megoldások, ahol HSMekben tárolt biztonsági kulcsokkal hitelesített független replikákkal védett auditlogokat kaptunk, nem is beszélve a privileged access management toolokról, amik nyilván a rendszergazdák érdekét szolgálták és persze a kezüket is megkötötték… Jött sok értelmesnek tűnő de egyébként csak újabb fejtörőket okozó megoldás az évek során.

De valahogy a rengeteg, jobbnál jobb megoldás ellenére, mindig ugyanoda jutottunk, bármennyire is komplex a védelmi rendszer, bármennyire is négyszemelv kell mindenhez…, mégsem sikerült igazán kiküszöbölni azt a fránya emberi tényezőt! Az észérvek mindig győznek, marad egy kiskapu, hiszen első az üzleti folytonosság biztosítása, márpedig a sokszor silány minőségű alkalmazások között nem opció, hogy minden rendszergazdai művelethez négy-szem vagy éppen audit review társuljon. Amíg az üzletfolytonosság és a leszállítási képesség fontosabb a biztonságnál, addig a rengeteg intézkedés valójában csak a teljes körű védelem illúzióját próbálja elhitetni velünk. Ahogy teltek múltak az évek úgy törődtem bele én is ebbe a felettébb komplex és kétségtelenül önellentmondásos környezetbe. Márpedig a beletörődés egyértelmű következménye a motivációvesztés.

Majd jött Satoshi, jött a Bitcoin és jött a Blockchain és jöttek a smart contractok. Míg, egyszer csak ráébredtünk, “itt a megoldás…”. Az indokolatlan harmadik féllel szembeni bizalom kiküszöbölésének eszköze és ezáltal a manipulálhatlan (immutable) nyilvántartás eszköze. Mindez hogyan? Komplexebb folyamatok, zártabb rendszerek, irányított kontroll és reguláció? Dehogyis! Fordítsunk ki mindent: pszeudonimitással vegyített transzparencia, érdekeltek anyagi motivációja a tisztességes magatartásért cserébe. Persze a blockchain sem ultimate megoldás, a blockchain nem old meg mindent, de egy halom olyan problémát igen, amire eddig nem volt jó megoldás. Tároljuk az adatok elosztott környezetben blockchainen, legyen a nodeok között konszenzus elv, a hálózat zárja ki a manipulált nodeokat, mindig a leghosszabb lánc legyen a valid, ami mögött a legtöbb munka áll és a döntések (pl.: superuser access) smart contractokon keresztül kerüljenek kiértékelésre, ami a blokkláncon fut le. Legyen nyilvános? Megoldható. Legyen nyilvános, de csak az érintett felek láthassák a tartalmat? Megoldható, ott vannak a zkSnarks megoldások.

Kis átkötéssel, de el is jutottunk a mai témához:

A Bitcoin rossz, a blockchain jó?

A fenti kifejtés talán bőséges alapot ad az unalomig ismételt fázishoz. Az értékhordozó (kriptopénz vagy tokenziált érték) nélküli blokklánc valójában nem blokklánc, hanem csak egy buta adatbázis. Legyen az akár privát (permissioned), akár publikus (permissonless). A blokklánc csak akkor képes megfelelni az elvárásoknak, ha valódi pénzben mérhető érték áll a benne tárolt adatok mögött. Ez a technológia immáron 8 éve bizonyít nap, mint nap. Ez egy olyan modell, ami teljesen trustless környezetben igazolja  az adatok manipulálhatatlanságát. Egyszerűen olcsóbb és kifizetődőbb minden szereplő számára. A blockchain technológia nem hibátlan, tele van olyan hibákkal, amik miatt nem hogy 8-at, de egy évet sem élhetett volna túl. A Bitcoin Cash hálózatot perpillanat a bányászok egy relatív kicsi része is le tudná állítani azáltal, hogy visszatartott blokkokban végeznek doublespendinget. Ez egy teljesen ismert hiba, amivel sikeresen ki is végezték az olyan valódi értékkel nem igazán rendelkező minority hashpowerrel bányászott kriptopénzeket, amelyek egy nagyobb szereplővel közösen osztoztak a bányászok hashpowerén (lásd peercoin). Mégsem történnek ilyen visszaélések az életképesebb blokkláncokon, hiszen ilyen esetben értékes bevételtől esnének el a bányászok, ami nem tudna megtérülni a támadás/doublespending miatt.

Függetlenül a blokklánc céljától, jellegétől, kialakításától: az csak akkor fog megfelelni az előzőekben kifejtett értékeknek, ha a szereplők gazdaságilag érdekeltek abban, hogy tisztességesen járjanak el. Lehet, hogy az Ether árfolyama szinte követhetetlenül ingadozik, de egy dolog biztos: értéket képvisel. A smart contractba betöltött Ether mennyiség ma is és holnap is reprezentálni fog bizonyos  vagyont/értéket. Ez az érték tudja azt garantálni, hogy a kontraktusért felelős szereplők minden körülmény között tisztességesek maradjanak.

Vegyünk egy egyszerű példát: Adott egy publikus blokklánc, aminek az üzemanyaga egy bizonyos volatilis cryptopénz (legyen ez mondjuk az Ether) és vegyünk egy másik blokkláncot, amit mondjuk valamelyik nagyvállalat hoz létre azért, hogy azon keresztül végezzen smartcontract ügyletekkel biztosított árucserét. Egyszerűsítsük le ezt egy konkrét ügyletre: akarok venni valakitől egy biciklit 100 euroért. Az illető mondjuk Ausztriában él, de megbeszéljük, hogy a szállítási költségekkel együtt el tudja nekem küldeni a cangát 130 euroért. Adott a probléma: ki küld először? Én utaljam el a pénzt, vagy a másik fél indítja el először a biciklit? Erre a típusú probléma ugye már tudjuk, hogy megoldást nyújt a blockchain. De mégis hogyan? Nézzük a fenti két alternatívát:

Kriptopénz (érték) alapú blockchain – trustless trading smart contracttal

Létrehozunk egy smart contractot, ami a következő entry pointokkal rendelkezik:

  • Purchase() payable -> A vevő jelzi a vételi szándékát és elhelyezi fedezetként a vásárlás ellenértékének dupláját prompt Ether árfolyamon. Ezen a ponton a vevő bármikor tudja cancelezni a smart contractot és ilyenkor visszakapja az összes Etherjét, amit berakott.
  • ConfirmPurchase() payable -> Az eladó visszaigazolja a vásárlás tényét, amihez ő is elhelyez azonos mennyiségű Ethert a smart contractban. Tehát ekkor a smart contractban már 4x annyi pénz van lekötve, mint maga a bicikli ára. Ezen pontot követően már sem az eladó, sem a vevő nem tudja cancelezni a smart contractot.
  • confirmReceived() -> A vevő jelzi, hogy megérkezett a bicikli.
  • confirmPayment() -> Az eladó jelzi, hogy megérkezett a számlájára a 130 euro. Ekkor mindkét fél visszakapja a letétjét.

A történetben nincs semmilyen harmadik fél, mégis mindkét résztvevő abban van motiválva, hogy tökéletesen korrektül járjon el, hiszen mindannyian elhelyezik a letétet, amit nyilván szeretnének visszakapni, mivel ellenkező esetben az a pénz örökre beragad a smart contractban. A 2x-es letét persze lehet akár 10x-es is, sőt az egész confirmPayment() kihagyható, ha pl., nem egy független pénzügyi utalással rendezik a felek az ellenértéket, hanem Etherből. Maga a contractus igen butácska, számtalan extra védelmet, biztosítékot lehet belerakni. De jól látható, hogy az ügylet védelmét maga a túlbiztosított letét adja. Egy olyan letét, amihez nem kell bankgaranciáért szaladgálni, nem kell ügyvédhez menni, hogy ott hagyjuk meg a letétet, nem kell lombard hitelt kötni a termékre és nem kell semmi olyan dolgot tenni, ami extra költségeket jelentene. Csak annyi kell, hogy mindkét fél odaadja a fedezetet a smart contractnak és mindkét fél megbízik az okosszerződés technológiájában.

Kriptopénz (érték) NÉLKÜLI blockchain

A felek rögzítik a trade paramétereit egy smart contractban (bicikli jellemzői és az ár), majd létrehozzák az előző pontban lévő entry pointokat és reménykednek, hogy végig is nyomkodja azt mindkét fél. Ha valamelyik mégsem akar korrekt lenni, akkor nincs direkt jogorvoslat. Lehet rohangálni az üzemeltetőhöz, ügyvédekhez, beperelni a másikat a bíróságon és beterjeszteni hozzá egy szakértői véleményt a smart contractról… és X év múlva talán meg is lesz a bicikli… Rengeteg köztes szereplő, rengeteg járulákos költség és a végén talán ki is jön néhány ezer euróból az a 100 eurós bicikli. De persze az ügymenet során életben tartottunk egy olyan komplex üzletágat, aminek egyetlen célja a jogorvoslat kezelése egy ilyen környezetben.

Mindez persze poénosan hangzik egy bicikli kapcsán, de gondolkodjunk nagyobban. Lehet a Bitcoint, az Etheret és a többi kriptopénzt értéktelen játékszernek vagy akár spekulatív szeméthalmaznak tekinteni, de a blockchain technológia implementációja semmit sem ér ha a közvetített adat mögött nincs olyan érték, ami minden szereplőt a tisztességes magatartásra ösztönöz. Mi történik olyankor, ha az egyik szereplő mégis fittyet hány az értékre? Nos itt lép be a blokklánc adta védelem második szintje! Mivel minden trantakció nyilvános, vagy legalábbis disztributált, így bármelyik szereplő bármikor tudja ellenőrizni egy tranzakció vagy kontraktus eredményének hitelességét. Az ehhez szükséges hitelesítő adatok (publikus kulcsok, külső adatforrások adatai, stb.) minden esetben elválaszthatatlan részét képezik a blokkláncnak. Ha valaki csalni akar, annak azonnal látható nyoma van. Ha valaki pedig képes is csalni, onnantól az a blokklánc már alkalmatlan az érték tárolásra. A kriptopénz vagy token alapú blokklánc értékét nem az egyes coinok értéke adja, a Bitcoin hálózat értéke nem egyenlő az 1 coin US$price x 17m coin értékével. A marketcap egy csalóka szám, könnyen lehet manipulálni. A Bitcoin értéke az, hogy ma már akár több száz milliós ügyletekhez is lehet használni a coinokat, mert van akkora cirkuláció és aggregált érték, ami ezt lehetővé teszi. Ha ma valaki utalni akar Bitcoint, akkor igen nagy biztonsággal számíthat arra, hogy a tranzakció teljesülésekor az a másik félnél is közel ugyanannyit fog érni. Ugyanígy, ha valaki ma köt egy értékkel rendelkező smart contractot (lásd a fentebbi példát), akkor biztos lehet benne, hogy a befektetett vagyon (pl.: Ether) elégséges motiváció lehet a feleknek arra, hogy tisztességesen járjanak el.

Blokklánc = trustless transparent ledger. Trustless = érték alapú garancia, ami a feleket becsületes viselkedésre kényszeríti. Értékalapú garancia = kriptopénz… Ahol teljesül ez a három feltétel, ott beszélünk valódi blokkláncról, minden más csak mese habbal…

Source: Variance

%d bloggers like this: