Főoldal

"Mérnököt a mérnöktől"

A Schönherz Bázis összeköti az állást kereső és állást kínáló mérnököket.

CV küldés

Küldj önéletrajzot! Gyorsan, egyszerűen.
Megjegyzésbe írd be a pozíció nevét.
CV küldés

Iratkozz fel hírlevelünkre!

Kövess minket!

Kövess minket!

Hírek

Ezért problémás a Blockchain 1.
Ezért problémás a Blockchain 1.

Elég masszív felhajtás övezi a blockchain technológiákat. Ahogy a hype-vonat hangoztatja, a blockchain:


1. Megoldja a jövedelmi egyenlőtlenségekből adódó problémákat

2. Minden adatot örökké biztonságossá tesz

3. Mindent sokkal hatékonyabbá és kevésbé megbízhatatlanná formál

4. Megmenti a haldokló gyerekeket


Amúgy is, mi a fene az a blockchain? És tényleg képes mindezen dolgokra? Képes lenne valami hihetetlent hozni akár annyira különböző iparágakba, mint az egészségügy, pénzügy, ellátásilánc-menedzsment vagy a zenei jogok?

És ha a Bitcoin mellett vagy, az nem jelenti azt is, hogy a blockchain mellett is vagy? Hogyan találhatod jónak a Bitcoint, de rossznak a mögötte húzódó technológiát?

Ebben a cikkben próbáljuk megválaszolni ezen kérdések nagy részét, mégpedig úgy, hogy először megnézzük mi az a blockchain, és ami még ennél is fontosabb, mi az, ami nem.


1. Mi az a blockchain?

Hogy megvizsgáljuk ezen kijelentések egy részét, definiálnunk kell, hogy mi az a blockchain. Ugyanis a zűrzavar nagy része innen ered. Rengeteg cég a „blockchain” szót egy mágikus eszközre használja, mely által az adataik sosem lesznek tévesek. Természetesen ilyen eszköz nem létezik, legalábbis amikor a való világról beszélünk.

Szóval mi is az a blockchain? Technikailag blokkok egy láncolt listája, ahol a blokkok rendezett tranzakciókból állnak. Ha nem értetted meg az utóbbi mondatot, akkor gondolj rá úgy, mint egy adatbázis részhalmaza néhány tulajdonsággal kiegészítve.

A fő dolog, mely megkülönbözteti a blockchaint a hagyományos adatbázisoktól, hogy az előbbiben csak specifikus szabályok szerint helyezheted el az adataidat. Így az nem ütközhet a már adatbázisban lévő adatokkal (ellentmondásmentes), csak hozzáfűzhető (megváltoztathatatlan), és maga az adat egy tulajdonoshoz van kötve (birtokolható), replikálható és elérhető. Végül pedig mindenki megegyezik az adatbázisban tárolt dolgok állapotában (kanonikus) központi fél nélkül (decentralizált).

Ez az utolsó pont az, ami a blockchain Szent Grálja. A decentralizáció azért nagyon vonzó, mert azt jelenti, hogy nincs központi elem, melynek a hibája az egész rendszer bénulásához vezethet. Ez olyan, mintha nem lenne egy központi hatóság, mely eltulajdoníthatja a vagyontárgyaidat, vagy megváltoztathatja a történelmet a saját kénye-kedve szerint. Ez a megváltoztathatatlan tevékenységnapló, ahol nem kell bíznod senkiben, az előny, melyre minden ebben a technológiában mozgó ember vágyik. Azonban ez az előny nagy költséggel jár.



2. A blockchainek ára

A megváltoztathatatlan, semelyik egyéni fél által sem kontrollált tevékenységnapló egyértelműen hasznos, de rengeteg áldozatot kell hozni egy ilyen rendszer létrehozásáért. Vizsgáljuk meg a problémák egy részét.


A fejlesztés merevebb és lassabb

Egy bizonyíthatóan konzisztens rendszer létrehozása nem egy könnyű feladat. Akár egy kis bug is elronthatja az egész adatbázist, vagy változást okozhat abban. Természetesen egy sérült vagy szétesett adatbázis már nem tud semmilyen konzisztenciát garantálni. Továbbá minden ilyen rendszert a kezdetektől kell tervezni, hogy konzisztens legyen. A blockchainek tervezésénél nincs „move fast and break things” mottó. Ha elrontod a dolgokat, akkor elveszted a konzisztenciát, és így a blockchain sérült és hasznavehetetlen lesz.

Most azt gondolhatod, hogy ez esetben miért nem lehet megjavítani az adatbázist, vagy újrakezdeni és továbblépni? Ez elég egyszerű lenne egy centralizált rendszerben, de annál nehezebb kivitelezni egy decentralizáltban. Konszenzusra vagy a rendszerben tartózkodó összes játékos beleegyezésére van szükség az adatbázis megváltoztatásához. A blockchain lényege, hogy publikus eszköz legyen, mely nem áll semmilyen egyedi egység irányítása alatt (elvégre ezt jelenti a decentralizáció), különben az egész csak egy nagyon drága erőfeszítés egy lassú, centralizált adatbázis létrehozására.



Az ösztönző struktúrák tervezése nehéz

A megfelelő ösztönző struktúra hozzáadása, és annak biztosítása, hogy a rendszer egyik szereplője sem tud visszaélni az adatbázissal vagy megsérteni azt, meglehetősen nagy megfontolást igényel. Egy blockchain lehet, hogy konzisztens, de nem lesz túl hasznos, ha rengeteg jelentéktelen és használhatatlan adat van benne az adat hozzáadásának olcsósága miatt. Ugyanígy haszontalan egy majdnem üres blockchain, hiszen az adatok hozzáadása ebben az esetben nagyon drága.

Mi ad az adatoknak véglegességet? Hogy tudod biztosítani, hogy a jutalmak igazodjanak a hálózat céljaihoz? Miért tartják meg vagy frissítik a csomópontok az adatokat, és mi alapján választják ki az egyiket a másik helyett egy konfliktushelyzetben? Ezek mind olyan kérdések, melyekre kellenek jó válaszok, és ezeket mind igazítani kell nem csak a kezdetekben, hanem onnantól folyamatosan ahogy a technológia és a cégek változnak, különben a blockchain használhatatlan lesz.

Ám újfent csodálkozhatsz, hogy miért nem lehet az elromlottakat csak „megjavítani”. Erre megint csak azt lehet mondani, hogy ez egy centralizált rendszerben egyszerű, de egy decentralizáltban egyszerűen nem tudsz megváltoztatni semmit konszenzus nélkül. Nem tudsz „megjavítani” semmit, csak ha van beleegyezésed mindenkitől.



A karbantartás nagyon költséges

Egy hagyományos centralizált adatbázist csak egyszer kell megírni, egyszer kell ellenőriznie és tárolásra továbbítania az adatot. Egy blockchain-nek ezzel szemben több ezerszer kell ezeket a folyamatokat elvégeznie.

Egy blockchain karbantartása nagyságrendekkel többe kerül, és a költséget hasznossággal kell kompenzálni. A legtöbb alkalmazás, mely a fentebb felsorolt tulajdonságokra pályázik, ezeket sokkal olcsóbban megkaphatja sértetlenségellenőrzés, nyugták vagy backup bevezetésével.  


A felhasználó uralkodik

Ez azért előnyös, mert a cégek nem szeretik a felhasználói adatok tárolásával járó felelősséget. De árnyoldala is van, ha például a felhasználó „rosszul viselkedik”. Nincs mód a blockchaint jelentéktelen adatokkal spammelő, vagy mások kárán profitáló felhasználók kirúgására. Ez kapcsolódik a fenti megfigyeléshez, hogy az ösztönző rendszereket nagyon, nagyon jól kell megtervezni, hiszen ha a felhasználó talál egy sebezhetőséget, nem fogja csak úgy ott hagyni, pláne, ha profitálhat belőle.

Gondolhatod azt, hogy egyszerűen megtagadod a szolgáltatást a rosszindulatú felhasználóktól, és ez elég könnyen kivitelezhető is lenne egy centralizált rendszerben. Azonban a centralizált rendszerekkel szemben itt egyetlen személynek sincs meghatalmazása, hogy bárkit kirúgjon, így a szolgáltatást megtagadni elég komplikált. A blockchainnek pártatlannak kell lennie, és érvényre juttatnia a szoftver által definiált szabályokat. Ha a szabályok nem elegek az elrettentésre, akkor nincs szerencséd. Itt nincs a „törvény szellemében”. Egyszerűen csak kezelned kell a rosszindulatú vagy rosszul viselkedő szereplőket, akár nagyon hosszú ideig is.


Csak akkor frissítesz, ha akarod

Egy kényszerített frissítés nem opció. A hálózat más szereplőinek nem kötelessége megváltoztatni a te szoftvered. Ha lenne, akkor ezt centralizált rendszerként könnyebb, gyorsabb és olcsóbb lenne megcsinálni. A blockchainnek ez lenne a lényege, hogy nem irányítja semmilyen felsőbb erő, és ezt az alapelvet megsértené egy erőltetett frissítés.

Ehelyett minden frissítésnek visszafelé is kompatibilisnek kell lennie. Ez egyértelműen elég nehezen kivitelezhető, főleg, ha új funkciókat szeretnénk hozzáadni, és ennél is inkább, ha tesztelői perspektívából nézzük. A szoftver minden egyes verziója rengeteget ad hozzá a tesztmátrixhoz, és növeli a kiadáshoz szükséges időt.

Ismételten, ha ez egy centralizált rendszer lenne, ezt nagyon könnyen meg lehetne oldani a régebbi rendszerek kiszolgálásának megtagadásával. Azonban ezt nem tudod megtenni, mivel egy decentralizált rendszerben nem kényszeríthetsz senkit semmire.



A méretezés nagyon nehéz

A méretezés számos nagyságrenddel nehezebb itt, mint egy tradicionális centralizált rendszerben. Ennek az oka elég egyértelmű. Ugyanannak az adatnak több száz vagy ezer helyen kell élnie, nem csak egy helyen. Az átvitel, verifikáció és a tárolás költsége hatalmas, hiszen az adatbázis minden egyes példányának meg kell ezeket fizetnie a tradicionális adatbázisokkal szemben, ahol ezek a költségek csak egyszer lépnek fel.

Természetesen csökkentheted a terhet a csomópontok számának csökkentésével. De ezen a ponton miért van szükség egy decentralizált rendszerre? Miért nem csinálsz csak egy centralizáltat, ha a méretezés a legfőbb gond?


A cikket hamarosan folytatjuk. 


(Forrás


***

Ha Te is kreatív, kihívásokkal teli mérnök állást keresel minõségi munkáltatónál, jó helyen jársz, mert a Schönherz Bázis épp azért jött létre, hogy Neked segítsen.
Gyere, nézz szét aktuális állásaink között!