23.1 C
Budapest, HU
2019-04-25
Bitcoin Blokklánc Kripto

Blokklánc alapú konszenzus algoritmusok

konszenzus algoritmus blokklanc
Várható olvasási idő: 9 perc

Ha nincs időd elolvasni, meg is hallgathatod! Kattints a kis fehér nyílra a sárga körben!

A blokklánc technológia már születésének pillanatában sikeres üzleti modellek katalizátora volt. Nem is az a kérdés, hogy mely iparágakat hódítja meg, hanem sokkal inkább az, hogy milyen sorrendben? Mivel a blokkláncra épülő hálózatok működése minden esetben valamilyen konszenzuson alapul, érdemes megvizsgálni, hogy milyen típusú konszenzus algoritmusokat ismerünk. A konszenzus algoritmusoknak köszönheti a blokklánc technológia a két legfontosabb tulajdonságát: az átláthatóságát és a megmásíthatatlanságát.

Ha a blokkláncon szeretnénk tárolni valamilyen információt, akkor már az alapoknál el kell döntenünk, hogy milyen konszenzus algoritmus alapján validáljuk majd a blokkláncon rögzített adatokat. Mert nagyon nem mindegy, hogy azok, akik validálják és időpecséttel ellátják az adott blokkokat, azok meg tudnak-e egyezni, többségbe kerülhetnek-e és van-e valakinek velük ellentétes érdeke.

Miért van szükség a konszenzus algoritmusokra?

A jelenlegi pénzügyi rendszerben a fedezetlen papírpénzt az államok kormányai nyomtatják. Ezeket “fiat” pénznek nevezzük. A bitcoint viszont nem lehet nyomtatni, a bitcoint fel kell “fedezni”. A bitcoin hálózat tagjai folyamatosan küldözgetnek egymásnak bitcoint. Ahhoz, hogy ezek a tranzakciók nyomon követhetőek maradjanak, ahhoz valamilyen úton-módon nyilvántartásba kell venni a bitcoin-ok mozgását. Ezeknek a tranzakcióknak a története egy ún. blokkláncon gyűlik és blokkokban tárolódik. Mivel ez magától nem történne meg, ehhez szükség van olyan emberekre (számítógépekre), akik ezeket a tranzakciókat jóváhagyják, és elkönyvelik, őket hívjuk node-oknak, így marad nyomonkövethető a pénzmozgás. Itt jönnek a képbe a bányászok, akiknek az a feladatuk, hogy a node-ok által jöváhagyott és mempool-ba helyezett tranzakciókat ellenőrízzék, jóváhagyják és validálják ezeket a tranzakciókat annak érdekében, hogy ne tudjuk kétszer elkölteni ugyan azt a bitcoint. Egy kriptográfiai feladat megoldásával jön létre a blokk és az a bányász kapja meg érte a jutalmát, aki elsőként oldotta meg a feladatot és ugyanaz az eredmény (hash) több bányásznak is a megoldása.

Mi az a konszenzus algoritmus?

A konszenzus egy megegyezési módszer egy adott csoport, vagy egy hálózat tagjai között. A konszenzuson alapuló döntéshozatal során minden egyes csoporttag véleményét komolyan veszik. Elvileg ritka az ellenvélemény meghallgatása nélküli cselekvés és a döntések meghozatala során minden résztvevő ügyel arra, hogy ne sérüljenek a személyes kapcsolatok. A konszenzus jellemzően együttműködéssel jár, nem kompromisszummal. A tagok addig tárgyalnak egymással, amíg a többség be nem látja, hogy mi a legjobb döntés mindenki számára.

A blokklánc technológiában egy központi “agy” (szerver) helyett, sok-sok “agyacska” (számítógép) gondolkodik, rakja össze a tudását és próbál megegyezésre jutni. Ha megegyeztek, akkor mindannyian aláírják, “lepecsételik” a megegyezést és onnantól kezdve azt a döntést visszamenőleg már senki sem kérdőjelezheti meg.

A konszenzusnak több fajtáját különböztetjük meg: egységes, többségi, alternatív, stb. A lényeg, hogy a személyes hasznonszerzés, vagy az árulás gyanúja egyik esetben se merülhessen fel. A blokklánc technológiában az egyes protokollok más és más konszenzuson alapulnak. Ahhoz, hogy el tudjuk dönteni, hogy melyik konszenzus mögött milyen döntésmechanizmus áll és melyiket tartjuk hitelesnek, többet is megvizsgálunk, hogy melyik mire alapoz.

A blokkláncok esetében a konszenzus mechanizmusok biztosítják azt, hogy a hálózat minden egyes szereplője pontosan ugyanazt lássa. Egy központi irányítás szóba sem jöhet ha elosztott technológiáról beszélünk. Mivel az egész blokklánc technológia még gyerekcipőben jár, kisérleti szakaszban van, ezért erre is, arra is találunk példát.

 

Mi az a bizánci hibatűrés probléma?
Byzantine Fault Tolerance (BFT)

A blokklánc technológiában sok-sok számítógép található a hálózatban. Néhány gép meghibásodása esetén is működőképes marad a rendszer. A problémát csak az jelentheti ha egy számítógép más értéket mér, vagy egy vezérlő máshogyan dönt, mint a többi.

A probléma bemutatására a bizánci tábornokok problémáját használják, amely így hangzik: N tábornok táborozik a seregeivel (1000, 2000, 3000 és 4000 fős seregek) egy város körül, amit meg akarnak ostromolni. (A várost 5000 fős sereg védi.) Tudják, hogy elég sokan vannak ahhoz, hogy ha az összesített haderejüknek legalább a felével sikerül egyszerre támadniuk, akkor győzni fognak. Ha azonban nem sikerül pontosan koordinálniuk a támadás időpontját, akkor szétszóródnak a seregeik, és csatát veszítenek. Sejtik továbbá azt is, hogy vannak köztük árulók is, akik hamis üzeneteket küldenek majd. Mivel csak futárok útján tudnak kommunikálni egymással, így nem tudják ellenőrizni az egyes üzenetek hitelességét. Hogyan egyezhet meg a közös támadás időpontjáról egy ilyen nagy csoport egy bizalmas központi hatóság nélkül – főleg akkor, ha még zavarkeltő árulókkal is meg kell küzdeniük?

Az adatok alapján látszik, hogy a támadó seregek csak összefogással győzhetik le a várost védőket. Jelen esetben tehát az adat érvényességével van a baj, nem a kommunikációval. A bizánci hibarűrés problémáját 1982-ben publikálta Lamport, Shostak és Pease amelyben modellezték az olyan szituációkat amikor egy számítógépes rendszerben egymásnak ellentmondó információkat kell kezelni.

A Bitcoin megoldást ad a bizánci hibatűrés problémára, a közmegegyezés kialakításának egyik legnagyobb kihívására. A Bitcoin megoldása a következő: minden tábornok (a bitcoin esetében bányász) elkezd dolgozni egy olyan matematikai probléma megoldásán, ami statisztikailag 10 percet vesz igénybe akkor, ha mindannyian munkálkodnak rajta. Amint az egyikük megtalálja a megoldást, nyomban elküldi azt az összes többinek is. Ezt követően mindenki ezzel a megoldással dolgozik tovább, ebből kiindulva keresi a következő megoldást, ami megint csak tíz percet vesz igénybe. Minden tábornok mindig az általa ismert leghosszabb megoldássorozattal dolgozik, azt bővítve tovább. Ha pedig már van egy 12-szeresen kibővített megoldásuk, akkor mindannyian teljesen biztosak lehetnek benne, hogy egyetlen áruló sem hozhatott létre sehogyan sem egy ilyen hosszú megoldássorozatot anélkül, hogy ne rendelkezne mindannyiuk összesített számítókapacitásának legalább a felével. A 12 blokkos lánc léte minden résztvevő számára egyértelműen bizonyítja, hogy a többségük tisztességesen kivette a részét annak a létrehozásából. Ezt nevezzük munkabizonyíték-rendszernek (PoW).

Mindez azt jelenti, hogy a vitathatatlanul hiteles közmegegyezés kialakítását a rendelkezésre álló számítási erőforrások korlátozottsága teszi lehetővé. Ahhoz, hogy sikeresen támadható legyen a rendszer, egy támadónak nagyobb számítási kapacitással kellene rendelkeznie annál, mint amennyit a tisztességes csomópontok birtokolnak együttesen.

Különböző módszerek vannak annak biztosítására, hogy minden tranzakció érvényben maradjon és a végén konszenzus szülessen. A bitcoin például a Proof-of-Work konszenzus mechanizmusra épít.

Az összes konszenzus algoritmus listája:

  • Proof-of-Work
  • Proof-of-Stake
  • Delegated Proof-of-Stake
  • Leased Proof-Of-Stake
  • Proof of Elapsed Time
  • Practical Byzantine Fault Tolerance
  • Simplified Byzantine Fault Tolerance
  • Delegated Byzantine Fault Tolerance
  • Directed Acyclic Graphs
  • Proof-of-Activity
  • Proof-of-Importance
  • Proof-of-Capacity
  • Proof-of-Burn
  • Proof-of-Weight

Nyolc különböző konszenzus algoritmus részletesen

konszenzus algoritmusok a blokklánc technológiában

Proof-of-Work algoritmus (PoW)

A legtöbben talán már hallottak a Proof-of-Work-ről, hiszen az első blokklánc – a Bitcoin is ezt használja. Ezért a PoW-öt a bitcoin példáján keresztül vezetjük le. A bitcoin nyilvános főkönyve valójában blokkok sora, amelyek egy hosszú láncot alkotnak, ez a blokklánc. A blokkláncon bármilyen korábbi tranzakciót vissza lehet követni. Amikor egy új tranzakció történik, azt a bitcoin hálózat összes tagja láthatja, mivel mindeki rendelkezik a tranzakciók folyamatosan frissülő teljes history-jának egy-egy példányával.

Amikor egy tranzakciós blokk létrejön, akkor a bitcoin bányászok az adott adatblokkot matematikai képletek segítségével betűkből és számokból álló sorozattá alakítják át. Ez a hash. Az újonnan létrehozott hash a blokklánc végére kerül. Mindegyik hash magába foglalja az összes őt megelőző blokk hash-ét is. Ez az ún. viaszpecsét, amely igazolja az adott blokkban lévő adatok hitelességét.

Hogy néz ki ez fizikailag? Bányászfarmokat és pool-okat létesítenek, ahova a mennyezetig pakolják a bányászgépeket, hogy azok a nap 24 órájában azon versenyezzenek ki a jobb matekos. A PoW a hálózati konszenzusok legelső formája, ennek ellenére sok kritika éri nagy energiaszükséglete miatt.

Van néhány másik gyenge láncszeme is a PoW konszenzusnak. Ha a szükségesnél kevesebb bányász van a hálózatban, úgy a hálózat sebezhetővé válik egy ún. 51%-os támadással szemben. Ez azt jelenti, amikor egy bányászcég, vagy egy pool ellenőrzi a hálózat számítási kapacitásának több mint 50%-át, akkor bármikor megteheti, hogy meghamisít egy tranzakciót, hogy cserébe több jutalmat zsebeljen be.

De nem csak az 51% támadás teszi sebezhetővé, további kockázat pl. a Vector76 támadás, a Finney támadás, valamint a 0 confirmation és az 1 confirmation támadás.

Proof-of-Stake algoritmus (PoS)

A Proof-of-Stake a Proof-of-Work alternatívájaként jött létre, hogy megoldást adjon a PoW energiaszükségletének problémájára. Bányászati képességet rendel a bányász által tartott coin-okhoz, vagy tokenekhez. Mit is jelent ez pontosan? Minél nagyobb mennyiségű coin-al rendelkezik az adott coin-ból a bányász, annál nagyobb eséllyel számol ki egy blokkot, amiért aztán megkapja a jutalmát. Azaz minél több coin van a bányász tárcájában, annál nagyobb számítási kapacitást tulajdonít neki a rendszer.

Azaz ugyan úgy jutalmazza a bányászokat mint a PoW esetében azzal a különbséggel, hogy nem fogyasztunk plusz áramot. Nincs más dolgunk, mint betárazni az adott PoS alapú coin-ból és a nap 24 órájában futtatni azt a számítógépünkön. Ehhez jól jön mondjuk egy VPS szerver, azaz egy virtuális szerver.

A PoS esetében még ha sikerülne is valakinek 51%-os többségi tulajdonra szert tennie, még akkor sem állna érdekében, hogy támadást indítson, hiszen az adott blokkláncon többségi tulajdonos. Arról nem is beszélve, hogy ha kiderülne, hogy egy bányásznak többségi tulajdona van az adott coin-ból, a többi bányász azonnal kiugrana mellőle, eladná mindenki a részesedését, így végül csökkene a coin árfolyama a piacon.

Az a tény, hogy “elkötelezetté” teszik a bányászokat a coin-ok birtoklásának révén megakadályozza, hogy hamis tranzakciót validáljanak, mert ebben az esetben az érintett összeg elvész. Hamarosan az ethereum is átáll PoW-ről PoS-re. Ez egy fokozatos folyamat lesz, de a lényege viszont az, hogy a bányászatot pénzügyileg veszteségessé tegyék azáltal, hogy szimultán megemelik az Ethash proof-of-work algoritmus nehézségét is.

A PoS sebezhetősége a nothing at stake attack, de egyelőre még nem használták ki.

Delegated-Proof-of-Stake algoritmus (DPos)

A DPoS működésében hasonlít a PoS-hez, annyi különbséggel, hogy a résztvevők szavazás útján választanak delegáltakat, akik aztán a többi résztvevő nevében hitelesítik a blokkokat. Csak a megválasztott hitelesítők hozhatnak létre új blokkokat. Őket tanúknak nevezik, ők teszik biztonságossá a hálózatot és odafigyelnek arra is, hogy nehogy valaki duplán költsön. Bárki, aki rendelkezik valamennyi coin-nal, részt vehet a tanúk megszavazásában. A szavazásban való részvételhez nincs minimum mennyiség meghatározva, de a résztvevők szavazata a birtokukban lévő coin-, vagy tokenmennyiség arányában számít.

Ha a tanúk nem viselkednek megfelelően, a szavazók eltávolítják őket. A résztvevők ösztönözve vannak arra, hogy tanúkká váljanak, hiszen ők fizetést kapnak a munkájukért. Azok a kriptopénzek, amelyek a DPoS konszenzus algoritmust alkalmazzák, másodpercenként több ezer tranzakció végrehajtására képesek.

A Visa másodpercenként több mint 1500, a Paypal közel 200 tranzakciót képes feldolgozni. Hozzájuk képest a Bitcoin mindössze 3-4-et, az Ethereum pedig 20-at. Az ok amiért enniyre lassúak a blokklánc alapú alkalmazások, hogy a hálózatot üzemeltetőknek (node-ok) konszenzusra kell jutniuk a tranzakciókat illetően. A DPoS modell képes másodpercenként több millió tranzakciót is végrehajtani.

Ez jobb skáláshatóságot biztosít a PoW-el és a PoS-el szemben, viszont tekintettel arra, hogy delegált node-ok, azaz tanúk vannak, nem 100%-ig decentralizált a rendszer. Számos kripto project használja a DPoS konszenzus algoritmust: Cardano, List, Ark, EOS, Steem, BitShare.

Proof of Elapsed Time algoritmus (PoET)

A PoET konszenzus algoritmust konzorciumos blokkláncon használják, ami azt jelenti, hogy minden egyes node pontosan azonosítható és a hálózat részét képzi. Mint ahogy egy osztályban is mindenki ismeri egymást és mindenkinek részt kell vennie az előadásokon ahhoz, hogy a végén vizsgázhasson.

De van benne egy csavar. A PoET minden node-ot másképp időzít, a node-ok pedig általában ismerik egymást. Konzorciumos blokkláncnak tekinthetjük azt a blokkláncot, ahol a konszenzusos folyamatot előre kiválasztott csomópontok (node, a hálózat által tárolt elosztott adatbázisokat osztják el) végzik, például 15 pénzügyi szervezet, mely mind irányítanak egy-egy csomópontot. Konszenzussal például minden blokk létrejöttéhez legalább 10 csomópontnak hitelesítenie kell azt, hogy érvényes legyen. Eldönthető továbbá, hogy a blokkláncok olvasása nyilvános legyen, vagy korlátozott a résztvevők részére. Ezeket a blokkláncokat hívhatjuk részlegesen decentralizáltnak.

PoET a gyakorlatban: a PoET konszenzus mechanizmusát az Intel alkalmazta először 2016-ban és a Hyperledger Sawtooth platformokon használják elsőrorban pénzügyi területeken. A Proof-of-Stake-től annyiban különbözik hogy tekintettel arra, hogy bizonyos node-ok időközönként “pihenésre vannak ítélve”, ezáltal energiahatékonyabb.

Proof of Authority (PoA)

A PoA sok mindenben hasonlít a PoS-re és a DPoS-re, ahol előre kiválasztott node-ok felelnek a blokklánc biztonságáért (ezek az ún. validátorok). Csak ők képesek lezárni és generálni is új blokkokat. Az új blokkokat a blokkláncon csak akkor hozzák létre, hogy szuper többséget érnek el. A PoA egy egyszerűsített és főleg konzorcium környezetben alkalmazható konszenzus algoritmus és nagyobb számú tranzakció érhető el vele.

A hitelesítők független, előre kiválasztott személyek, akik token-t kapnak jutalmul a hálózatért tett szolgálataikért. A hitelesítő nem kell, hogy birtokolja a hálózat coin-ját, vagy token-ét, viszont kell, hogy legyen igazolt személyazonossága, így még inkább ösztönözve van arra, hogy tisztességesen cselekedjen és visszautasítsa, hogy összejátsszon más hitelesítőkkel. Ilyen esetben – ha mégis előfordulna – őket azonnal eltávolítják a hálózatból.

A PoA konszenzus modell a konzorcium típusú blokklánc megoldások körében terjedt el. Nem titkolt célja, hogy áthidalja a privát láncok és a nyilvános láncok közötti “szakadékot”, éppen ezért támogatja a hálózatok közötti tranzakciókat is.

Jelenleg a PoA konszenzus modelljét használják: Vechain, Rinkeby, Giveth, TomoChain, Rublix, Swarm City, Go Chain.

Delegált Bizánci Hiba Tolerancia (dBFT)
Delegated Byzantine Fault Tolerant

A dBFT lehetővé teszi a hálózat gyorsabb szinkronizálását anélkül, hogy sok energiát használna fel ehhez. Másodpercenként akár 10 000 tranzakciót is támogat, ezzel szemben az Ethereum másodpercenként mindössze 20 tranzakciót.

A dBTF előnye, hogy alacsony tranzakciós költségei vannak, nagy teljesítményre képes és jól skálázható. Ugyanakkor centralizált és engedélyhez kötött. A Hyperledger Fabric által használt konszenzus algoritmus kevesebb, mint 20 előre kiválasztott validátort használ a hálózati konszenzus meghatározásához.

A NEO is a dBFT mellett rakta le a voksát. Aki rendelkezik NEO-val, az kiválaszt valakit, aki képviseli. Ez lehet egy hiteles természetes személy, vagy akár egy intézmény. Lehetőség van meghatalmazott szavazati jogot adni nagyobb gyülekezeteknek, akik ezáltal az érdekeidet képviselik.  Ez lehetővé teszi az öröklést is.

Proof of Importance (PoI)

Itt nincsen bányászat. Például a NEM protokoll a PoI konszenzus algoritmusát használja: a nyers munkát a node-ok végzik, emellett pedig a forrásokból részesülnek azok is, akik használják, forgatják a NEM kriptopénzét. Az egyenletekben az idő is számít és az elvárt eredmény az volna hosszútávon, hogy a közösséget építő, aktív személyek kerüljenek helyzetbe az inaktív személyekkel szemben.

Összegzés

A mostanában futó ismertebb blokklánc projektek (EOS, NEO, Lisk, stb.) mindegyikében közös motívum, hogy a rendszert a költséges és sebezhető PoW helyett pár választott node futtatja. Az a szép a blokklánc technológiában, hogy ennyire színes és egyelőre még minden képlékeny, nincs olyan kész megoldás, amire rásüthetjük a bélyeget, hogy az a tökéletes.

Várjuk hozzászólásaitokat/véleményeiteket a cikkhez, illetve a közösség oldalakon is!

Hogy ne maradj le az új cikkekről, iratkozz fel RSS-re, vagy hírlevelünkre (jobb oldalsáv!)!

Szeretnéd támogatni a munkánkat, akkor az alábbi kripto címeinkre teheted meg.

  • BTC: 3CmeUs1PjHs5158rHKRwLRye4c4PpFQ93A
  • ETH: 0xB4185d344b1241C5129f1C18e8cCa75820b10e3F
  • LTC: MJ2hWahbpgotX8Pb2A56h6WKM1bv9fjNQ2

Köszönjük!

Szeretnél nyerni egy Trezor One kriptotárcát?

Ha szeretnél nyerni egy Trezor One kriptopénztárcát, iratkozz fel hírlevelünkre (jobb oldalsávban tudod megtenni) és kövesd a Facebook oldalunkat. Fontos, hogy csak a 2 együtt jogosít fel a sorsolásra! Minden hónap végén elemezzük az adatokat és a következő hónap első hetén sorsolunk, amely eredményét a Facebook oldalunkon publikáljuk! Várunk!

ui: Hogy biztosra menj, küld el a Facebook profilod címét és az email címed a [email protected] email címre, hogy be tudjunk azonosítani!

A témához kapcsolódó bejegyzések

Mi az a kriptopénz? Hogyan működik? És milyen típusai vannak?

Németh Krisztián

Mitől megy lefele ennyire a kriptopiac?

Roland

Mi az Atomic Swap és hogyan működik?

Lívia