Author: Sovereign Monk | Original Date: 01/11/22 | Translated by: Arpad Muranyi
Mielőtt belevágnánk a Bitcoin műkődésébe, azt ajánlom, bevezetésként olvasd el a "Mi a Bitcoin?" című bejegyzést, amely összefoglalót és rövid kifejtést nyújt a bitcoin szoftverről és a Bitcoin hálózatról.
Arról már valószínűleg hallottál, hogy a bitcoint nem kormány bocsátja ki, és nincs szükség bankokra, sem a kezeléséhez, sem pedig a tranzakciók ellenőrzéséhez, valamint hogy meglepő módon nem tudjuk, hogy ki volt "Satoshi", aki felfedezte. Vegyünk most szemügyre néhány kérdést, hogy azokat megválaszolva jussunk közelebb a Bitcoin működésének megértéséhez! Fejtegetésünk nem tartalmaz magas szintű technikai részleteket, amelyek mélyebb magyarázatot igényelnének.
Kezdjük egy olyan példával, melyben a barátaiddal bonyolítasz tranzakciókat, és valahogy nyomon kell követned a kifizetéseket.
Tegyük fel, hogy egy főkönyvet használsz a kifizetéseid nyilvántartására, valamint Charlie és Bob barátaiddal folytatott tranzakcióid nyomon követésére. Kezdetben a főkönyved és annak frissítése során teljesen másokban megbízva rájuk hagyatkoztál, de egy ponton úgy döntesz, hogy ezt a folyamatot inkább bizalommentessé teszed. Ehhez kriptográfiát vagy valamilyen kódot alkalmazol, hogy fokozott biztonságra törekedve kiiktasd a bizalom elemét. Ahelyett, hogy emberekbe vetnéd a bizalmadat, most egy kódot állítasz be, hogy a továbbiakban kiváltsa számodra ezt a bizalmi részt. Tehát kialakul egy bizalom nélküli modell - akárcsak a Bitcoin esetén -, melyben nem vagyunk ráutalva sem központi autoritásba vetett bizalomra, sem az egymással értéket cserélő felek közötti bizalomra.
Satoshi alkotta meg az első kriptopénzt, mely mind a mai napig az egyetlen olyan kriptopénz, amely teljes mértékben decentralizált, bizalom nélküli modellen alapul. A Bitcoin használatához technikailag nem kell tudni, hogy pontosan mi történik a rendszer egyes pontjain, hasonlóan ahhoz, mint amikor a bankrendszerben a bankkártyás fizetést használjuk. Digitális fizetési hálózat lévén a felhasználóbarátság főként a felhasználói alkalmazásoktól és szolgáltatásoktól függ (mint például a mobiltelefonos vagy számítógépes tárca alkalmazások).
De akkor miben különbözik a Bitcoin a bankrendszertől? Abban, hogy a Bitcoin hálózat gerincét nem egy központi autoritás vagy egy kormány által választott embercsoport alkotja, hanem egy nagyon okos, decentralizált, bizalom nélküli, matematikát alkalmazó hitelesítési rendszer. A matematika ezen elemei a kriptográfia területéhez tartoznak. A matematika univerzális, és emberi döntések által megváltoztathatatlan. 1+1=2, ebben egyetemes megállapodás született, és senki sem változtathatja meg.
Két kiindulási pontunk a főkönyv és a digitális aláírás.
Tegyük fel, hogy van négy barátod, akik megosztják egymással az erőforrásaikat, elmennek vacsorázni vagy árut cserélnek egymással. A négy barát között minden egyes tranzakció nyomon követése fárasztó lehet. Képzeld el, hogy mondjuk adtál Bob barátodnak 10 eurót, és most ő tartozik neked ezzel a 10 euróval. De ahelyett, hogy visszafizetné neked, inkább megkéri Charlie-t, hogy fizessen neked 10€-t, amivel Charlie tartozik Bobnak, vagy megkéri Alice-t, hogy fizessen neked 10€-t, mert Alice 20€-val tartozik Charlie-nak. Ez kezd zavarossá és nehezen követhetővé válni. Ezért elkezdesz írásos nyilvántartást vezetni a tranzakciókról, egy úgynevezett főkönyvet. Ez a főkönyv mindenki számára hozzáférhető, és rögzíti a hónap összes tranzakcióját, a hónap végén pedig mindannyian összeszámoljátok a kifizetett és a még hátralékos összegeket, és rendezitek a végső összegeket. Ez tehát két fő szabályt követ:
- Bárki hozzáadhat tranzakciókat - új sorokat - a főkönyvhöz.
- Minden hónap végén el kell számolni az összes tranzakciót.
Itt felmerül a kérdés, vajon hogy lehet megakadályozni, hogy bárki hamis tranzakciókat (hamis sorokat) adjon hozzá ehhez a főkönyvhöz. Hogy akadályozzuk meg, hogy Alice egyszercsak bejegyezze, hogy "Bob tartozik Alice-nak 50€-val" anélkül, hogy Bob tudná vagy jóváhagyná, hogy ez igaz-e vagy sem? Bíznunk kell abban, hogy minden érintett személy őszinte lesz, és csak valós tranzakciókat vagy tételeket jegyez be.
A bizalom kiváltása érdekében - kriptográfián alapuló - ún. digitális aláírást használunk. Kézi aláírások helyett digitális aláírásnak kell kiemelnie, hogy Bob látta és jóváhagyta az újonnan hozzáadott tranzakciót. Mindez zökkenőmentesen kell, hogy történjen, és ki kell zárni annak a lehetőségét, hogy bárki meghamisítsa az aláírásokat.
De nem lehet a digitális aláírást lemásolni? Hiszen digitális, nem? Nem lehet, hogy egy számítógépes program egyszerűen beolvassa, lemásolja, majd pontosan ugyanolyan változatot készít belőle? Hogy lehet megakadályozni az ilyen aláírások hamisítását?
Ezt a nyilvános és privát kulcsok segítségével lehet megoldani. A privát kulcs egyfajta titkos kulcs. Tehát a privát kulcsot mindig titkosan kezeljük, és kizárólag jogos tulajdonosa számára hozzáférhető.
A fizikai világban minden kézzel készített aláírás ugyanúgy néz ki, függetlenül attól, hogy milyen kapcsolatban áll az aláírt üzenettel. A digitális világban lévő digitális aláírások ennél sokkal erősebbek - az üzenet és a privát kulcs függvényei, melyek az üzenet alapján együttesen határozzák meg az aláírás jellemzőit. A privát kulcsod biztosítja, hogy az üzenettől függetlenül csak te tudsz olyan aláírást készíteni, amely megfelel az adott kulcsnak. Az aláírás pedig rendelkezik azokkal a bitekkel és azonosítható jellemzőkkel, amelyek rávilágítanak a privát kulcs használatára, valamint arra, hogy az adott aláírás mely üzenethez készült. Tehát technikailag senki sem képes lemásolni egy aláírásodat, és hozzárendelni egy másik üzenethez.
De hogyan ellenőrizzük egy üzenet és aláírás hitelességét? Itt kap jelentőséget a nyilvános kulcs szerepe. Nyilvános kulcsot csak a privát kulcs felhasználásával lehet létrehozni. Tehát felismeri, hogy melyik kulcshoz tartozik. Egy igazolás során tehát a nyilvános kulcs párosítása és használata az üzenettel illetve az aláírással igaz/hamis eredményhez vezet, ami alapján a privát kulcshoz viszonyítva az üzenet és az aláírás érvényes illetve nem érvényes. A 256 bitet használó kriptográfiai funkció alkalmazásával kivitelezhetetlenné válik egy bizonyos titkos kulcs (privát kulcs) lemásolása, illetve egy azzal megegyező kulcs létrehozása.
Most már tudjuk, hogy Alice nem tudja lemásolni Bob aláírását és a jóváhagyása nélkül tranzakciókat meghamisítani. Viszont azt még mindig megteheti, hogy lemásol egy korábbi, érvényes üzenet sort a hozzátartozó aláírással, és hozzáadja a főkönyvhöz (például azért, hogy duplikáljon egy Bobtól saját maga felé induló kifizetést - a fordító megjegyzése). Nos, ennek megoldásához a rendszernek tartalmaznia kell egy egyedi azonosítót, amely egyértelműen azonosítja a tranzakciót. Még ha a tranzakciót le is másolják, az egyedi azonosító segítségével ellenőrizhető, hogy melyik a valódi tranzakció.
Ezzel megoldottuk a főkönyvbe történő minden egyes bejegyzés jogszerűségének problémáját. De mi történik akkor, ha Charlie rengeteg adósságot halmoz fel, és a hónap végén nem hajlandó fizetni senkinek? Hiszen a végső elszámolás készpénzben történő teljesítésen múlik. Vajon ki lehetne dolgozni egy olyan módszert, amely megakadályozná, hogy az emberek többet költsenek annál, mint amennyi a bevételük? Akkor nem kellene mindent készpénzben rendezni.
- Vegyünk rá mindenkit, hogy tegyen a kasszába 50 vagy 100 eurót! Tegyük fel, hogy mindenki bedob 100 eurót, ezért a főkönyvbe bejegyezzük, hogy mindenki rendelkezik 100€ elkölthető egyenleggel.
- Túlköltekezés nem megengedett. Mivel mindenki 100 €-t adott, így legfeljebb 100 €-t költhetnek.
Tehát a Bitcoin a kriptográfiának köszönhetően bevezette a főkönyv optimális módon történő fenntartását, az aláírások ellenőrzésével, a túlköltekezés megakadályozásával stb. Megszüntetve ezáltal a készpénztől való függést. Ahogy egyre több felhasználó használja ezt a főkönyvet, előbb-utóbb egész életüket készpénz nélkül élhetik le, pusztán e főkönyv használatával. A Bitcoin terminológiáját használva, ezt "főkönyvi pénznem = bitcoin" néven fogjuk emlegetni, sőt további 100 milliomod részekre osztható, úgynevezett szatosikra. A szatosi - vagy röviden szat - olyan a bitcoinnak, mint az eurónak a cent, tehát 1 btc = 100 000 000 szat.
Manapság a bitcoint dollárra, euróra stb. lehet váltani, ahhoz hasonlóan, mint eurót dollárra vagy épp fordítva. A bitcoin egy saját, független valuta, amely saját decentralizált főkönyvén alapszik, amit úgy hívnak, hogy Bitcoin hálózat.
Ha a Bitcoin decentralizált, hogyan képes bizalom nélkül új tranzakciókat felvenni a főkönyvébe? Nem igényelne a főkönyv fenntartása egy központi székhelyet vagy egy központi autoritást, amelyben megbízhatunk?
A Bitcoin ezt úgy oldja meg, hogy mindenki megkapja a főkönyv saját személyes példányát. Míg ha Alice fizet Bobnak 100 €-t, a tranzakcióról értesülnek a többiek, ők pedig frissítik a főkönyvüket. De ez alapvetően nehezen kezelhető és egyre komplikáltabb, hogy minden fél csak valódi tranzakciókat vezessen, és hogy ugyanabban a sorrendben rögzítsék azokat. Hogy tudja ezt a Bitcoin hatékonyan kezelni?
A Bitcoin megoldásként azt a rendszert vezette be, hogy amelyik főkönyvbe a legtöbb számítási munkát fektették be, az lesz a főkönyv. Ezt hívják hash függvénynek, amely számítási munkát (matematikai feladatok megoldását) jelent, amely a főkönyvek ellentmondás mentességének és csalásoktól való megóvásának alapját képezi. Ezt a koncepciót proof-of-work koncepciónak is nevezik, és ez a Bitcoin lelke.
Leegyszerűsítve egy hash függvény egy matematikai egyenlet, amely bemenete egy üzenet, kimenete pedig egy bitsorozat (0-ások és 1-esek véletlenszerű csoportja - mivel ez a számítógép nyelve). A kimenetet gyakran hash-nek vagy kivonatnak nevezik. Véletlenszerűnek tűnik, de nem véletlenszerű, mivel egy adott bemenetre mindig ugyanazt a kimenetet adja. Ha csak egy karaktert is megváltoztatunk az üzenetben, az eredmény teljesen más lesz. Ezek a kimeneti változások nagyon kiszámíthatatlanok. A kriptográfiában pedig a fordított irányú számítás kivitelezhetetlen. A bemenetet a kimenetből csak találgatással és ellenőrzéssel lehet megtalálni, ami jelentős mennyiségű munkát igényel. A Bitcoin az SHA-256 nevű kódot használja, amely világszerte számos biztonsági protokoll középpontjában áll.
Ahhoz, hogy a főkönyvvel egyező helyes hash-t találjunk, rengeteg munkára van szükség, ezért kapta a proof-of-work kifejezést. Tehát visszatérve a négy barát példájához, a Bitcoint használva főkönyvként. Ez úgy működik, hogy a tranzakciókat "blokkokra" (kisebb tranzakció csoportokra) osztja. Ezek a blokkok a proof-of-work segítségével létrehozott hash-sel illeszkednek egymáshoz, és csak akkor érvényes a blokk. Minden következő blokk az előző blokk hash-ét tartalmazza fejlécként (a blokkok megfelelő sorrendjének jelölése érdekében). És ha egy blokkban bármilyen aláírást vagy tranzakciót megváltoztatunk, akkor a következő blokknak küldött egész hash-t is megváltoztatjuk (annak fejlécében), és ez a következő blokkban is megváltozik, és így tovább. Ehhez újra kell végezni az összes munkát. A blokkok ilyen láncolatát blokkláncnak nevezzük.
A Bitcoin felépítése lehetővé teszi, hogy bárki elvégezze az új blokkok hozzáadását és a főkönyv frissítését. Az új blokkok létrehozóinak jutalmazására Satoshi bevezetett egy speciális tranzakciót, amely minden egyes blokkal együtt bekerül a főkönyvbe, és a blokk létrehozójának ad némi bitcoint (például 10 €-t minden egyes új blokkért). Ezt hívják blokk jutalomnak. Satoshi ügyesen építette be ezt a lehetőséget, hogy milliókat ösztönözzön a Bitcoin használatára és arra, hogy versengjenek egymással ezért a jutalomért (mivel a Bitcoin értéke a használatának köszönhetően növekszik). A blokkok megtalálásának biztosítására ez inkább tűnik lutrinak, mint egy kidolgozott módszernek. Azért pedig, hogy a tranzakcióik bekerüljenek a főkönyvbe, mindenki fizet egy kis díjat a munkásnak. Ezeket a munkásokat bányászoknak nevezik. A Bitcoin konstrukciója 210 000 blokk (vagy nagyjából 4 év) után csökkenti a blokk jutalmat. Ahogy egyre több és több felhasználó csatlakozik, a blokk jutalom egyre csökken, s a bányászok egyre inkább a növekvő díjakból profitálnak.
Szóval minden csomópont őrzi a blokklánc egy példányát, a bányászok megállás nélkül próbálják megtalálni a legjobb megoldásokat a hash függvényre, miközben frissítik a saját főkönyvüket. Felajánlják főkönyveiket, mint frissítendő rekordokat, egymásnak ellentmondó főkönyvek (blokkláncok) esetén pedig a leghosszabbat tekintik érvényesnek. Mindenki azt a láncot részesíti előnyben, amelyikbe több munkát fektettek. Ezáltal kizárólag a számítási munkára hagyatkozva kiváltódik minden központi autoritás és bizalom. Ha Charlie megpróbál Alice-nak téves információt küldeni a blokkokról - hogy becsapja őt -, Alice ellenőrizni tudja azt a saját lánca, a Charlie által küldött láncinformációk és a mások által küldött láncinformációk összehasonlításával. Így Alice el tudja utasítani a Charlie által küldött információt. Annak a valószínűsége, hogy Charlie minden alkalommal megnyeri a blokkkereső lutrit, rendkívül kicsi (mivel mindenki más is azon dolgozik, hogy az ő a blokkjuk érvényesüljön). Charlie-nak több mint 50%-kal nagyobb számítási teljesítményt kellene birtokolnia, mint az egész hálózatnak (51%-os támadás), hogy növelje az esélyeit, mielőtt Alice rájönne, hogy csal. Ekkor Alice és a többiek dönthetnek úgy, hogy elutasítják Charlie láncát, és egy általuk megbízhatónak ítélt láncon folytatják. Ahogy egyre több bányász (munkás) vesz részt a hálózatban és versenyeznek egymással, úgy erősödik a hálózat. Azok a bányászok is biztosítják az egész hálózat biztonságát, akik az esetek túlnyomó többségében nem nyernek a lutrin, mivel felügyelik a teljes számítási teljesítmény egy részét, amellyel egy rossz szereplő visszaélhetne. Ők tartják a hálózatot biztonságban.
A Bitcoin nagyjából 10 percenként új blokkal bővül, 10 percenként mindössze egy lutri nyertessel. A bányászokon kívül vannak olyan felhasználók, akik csak a teljes főkönyv egy másolatát és a bitcoin szoftvert kezelik, ellenőrizve, hogy a bányászok által megadott blokkok követik-e a konszenzust, és nem tartalmaznak-e csalárd tranzakciókat. Ezeket csomópontoknak nevezik. A hálózatot a csomópontok üzemeltetői és a felhasználók kontrollálják. A bányászok a csomópontoknak dolgozó munkások. Alacsony Bitcoin blokkmérettel a lánc ismert és gazdaságos módon növekszik, ezáltal csökkentve a belépési nehézséget azon felhasználók számára, akik további csomópontokat akarnak hozzáadni a hálózat decentralizáltságának fenntartása érdekében.
Related Posts
Ma is forradalom részesei vagyunk
Oct 23, 2024
Mit mond a sofőr a szakadékhoz közeledve?
Oct 20, 2024
Első magyar Bitcoin konferencia
Oct 14, 2024