E25 Bitcoin: Egy peer-to-peer elektronikus készpénzrendszer
Az adás tartalmából
Átirat
Sziasztok! Ez a HUSZONEGY Bitcoin Podcast, a Mi az a Bitcoin podcastunk 25. adása. Jelenleg nincsenek vendégeim, mert mindenki a szabadságát tölti, úgyhogy most be kell érnetek velem. De hogy a bitcoinerek ilyenkor sincsenek egyedül, azt majd meglátjátok ebből az adásból. Ilyenkor a legjobb, amit tehetünk, az, hogy elmegyünk olvasunk egy kicsit. Úgyhogy úgy gondoltam, hogy egy kicsi hiánypótló epizódot tartok, aztán mindenki eldönti, hogy nézi-e, hallgatja, vagy elolvassa magának.
Arra gondoltam, hogy a Bitcoin white papert, a Satoshi Nakamoto által publikált white papert, magyarul tanulmányt olvasnám föl, és egy pár gondolatot, amit bennem ébresztett, ezeket átvenném veletek. Ez egy nagyon-nagyon fontos írása a korunknak, mert ezzel mutatta be a Bitcoint, és ezzel írta le, hogy a Bitcoin hogyan működik. Úgyhogy nem is szeretném tovább szaporítani a szót, hanem belekezdek.
Gondoltam, hogy felolvasom nektek, mert egyébként ez egy alapmű a Bitcoinon belül, és biztos vagyok benne, hogy sokan nem olvasták, mert nagyon sokan csak azért ugranak bele a Bitcoinba, hogy egy kicsit több pénzük legyen. Ez elsődlegesen nyilván nem egy hatalmas bűn, mert mindenki szeretne egy kicsit jobban élni. Aztán amikor az embert megérinti a Bitcoin filozófiája, akkor elkezd megjelenni az igény, hogy tulajdonképpen mi is ez, amibe én rakom a pénzem, vagy amiben megtakarítok. Ezt legjobban ezzel a white paperrel, ezzel a Bitcoin tanulmánnyal lehet bemutatni. Úgyhogy essünk neki, olvassuk együtt!
Satoshi Nakamoto írta, és ez a tanulmány magyar nyelven elérhető a huszonegy.world alatt. Nyilván az angol az eredeti, tehát egy csomó minden fordítás lesz, és egy csomó minden ilyen hátborsózós, vagy hogy mondják szépen, tehát egy kicsit azért furcsa ezt magyarul olvasni. Megmondom nektek őszintén, hogy még nem olvastam el magyarul, úgyhogy itt az alkalom.
Tehát így szól: „Bitcoin: Egy peer-to-peer elektronikus készpénzrendszer”, Satoshi Nakamoto. Ez a satoshin@gmx.com e-mail címről került publikálásra a Bitcoin levelezőlistára, és itt meg is jelenik, hogy a bitcoin.org címen érhető el az eredeti.
Van egy kivonat az elején. Egy tisztán peer-to-peer alapú elektronikus készpénz lehetővé tenné az online kifizetések küldését az érintett felek között anélkül, hogy arra egy pénzügyi intézményt kellene igénybe venni. A digitális aláírások jelentenék a megoldás egyik részét, de a fő előnyök elvesznének, ha a dupla költések megakadályozásához még mindig szükség lenne egy megbízott harmadik személyre. Egy olyan megoldást javasolunk, ahol a dupla költés problémája egy peer-to-peer hálózat használatával lenne kiküszöbölve. Ez a hálózat időbélyegezné a tranzakciókat úgy, hogy egy folyamatos, hash-alapú proof of work láncolatba hasheli őket, egy olyan rekordot hozva létre, amit a hitelesítési algoritmus megismétlése nélkül nem lehetne megváltoztatni.
A leghosszabb lánc nem csupán arra lenne bizonyíték, hogy az események, tranzakciók rendje ellenőrzött, hanem arra is, hogy a lánc létrehozásához a legtöbb CPU-erőforrást használták fel. Addig, amíg a CPU-erőforrások többségét olyan együttműködő, igaz csomópontok működtetik, amik nem a hálózat támadása céljából működnek együtt, addig ezek a csomópontok hozzák létre a támadóikkal szemben a leghosszabb blokkláncot. Ez mondjuk nincs benne talán az eredetiben. Egy ilyen hálózat csak minimális struktúrát igényel. Az üzenetek a legjobb erőfeszítés elve szerint közvetítődnek, a csomópontok tetszés szerint léphetnek ki és csatlakozhatnak újra a hálózathoz, hogy aztán elfogadják a leghosszabb proof of work láncot annak igazolásaképpen, ami a távollétükben történt.
Első rész: bevezetés. Az internetes kereskedelem az elektronikus kifizetések feldolgozásánál szinte kizárólag pénzügyi intézményekre mint megbízott harmadik személyekre hagyatkozik. Noha a rendszer a tranzakciók többségénél elég jól működik, még mindig a bizalomalapú modell rendszerhibájától szenved. Ebben a rendszerben nem igazán lehetségesek a teljesen visszafordíthatatlan tranzakciók, ugyanis a pénzügyi intézmények nem tudják kikerülni, hogy vitákban közvetítsenek. A közvetítés eleve megdrágítja a tranzakciókat, a költség pedig limitálja a praktikus tranzakcióméretet. Annak is ára van, hogy nem lehetséges nem visszafordítható módon fizetni nem visszafordítható szolgáltatásokért.
A visszafordíthatóság egy nagyobb bizalmi szintet igényel a felek között. A kereskedőknek ebben a rendszerben muszáj tartaniuk a vásárlóiktól, és ez több információ igénylésére ösztönzi őket, mint amennyire egyébként szükségük lenne. Ebben a rendszerben egy bizonyos csalási százalékot elkerülhetetlennek tartanak. Ezek a költségek és fizetési bizonytalanságok elkerülhetőek akkor, ha egy fizikai fizetőeszközt használunk, de olyan mechanizmus nem létezik, amikor fizikai fizetőeszközzel kommunikációs csatornákon keresztül, megbízott harmadik fél nélkül fizetünk.
Amire szükség van, az egy olyan elektronikus fizetési rendszer, ami a bizalom helyett egy kriptográfiai bizonyítási eljáráson alapul, és ami lehetővé tenné, hogy a két érintett fél közvetlenül egymásnak utaljon anélkül, hogy egy megbízott harmadik félre lenne szükség. Az olyan tranzakciók, amiknek a visszafordítása a számítási kapacitásigényt tekintve nem lenne praktikus, védenék az eladókat a csalástól, a vásárlók védelmére szolgáló zálog-, zárójelben escrow-mechanizmusok pedig könnyűszerrel kivitelezhetők lennének. Ebben a tanulmányban mi egy olyan megoldást javasolunk a dupla költés problémájára, ami egy peer-to-peer elosztású időbélyegző szervert használna a tranzakciók időbeli sorrendjét igazoló számítási bizonyítékok létrehozására. Egy ilyen rendszer addig biztonságos, amíg az igaz hálózati csomópontok több CPU-erőforrást birtokolnak, mint a támadó csomópontok bármely együttműködő csoportja.
Második rész: a tranzakciók. A mi definíciónk szerint egy elektronikus pénzérme nem más, mint digitális aláírások láncolata. Egy érmetulajdonos az előző tranzakció hash-kódjának és a következő tulajdonos nyilvános kulcsának aláírásával, ezek hozzáadásával az érme végéhez juttatja el azt annak új tulajdonosához. A kedvezményezett az aláírás megerősítésével megerősíti a korábbi tulajdonosok láncolatát is. És akkor itt látható ez az ábra, ahol a tranzakciók össze vannak fűzve, ezt majd megpróbálom nektek bevágni, hogy közben lássátok. Itt három tranzakció van, a kulcsok használatát mutatja be: mivel erősíti meg, mivel írja alá, és hogyan hashelődik be a következő blokkba.
A probléma ezzel az, hogy a kedvezményezett nem tudja azt megerősíteni, hogy az előző tulajdonos nem költötte-e el kétszer ugyanazt az érmét. Az általános megoldás erre a problémára egy megbízott központi hatóság vagy pénzkibocsátó igénybevétele, amely minden egyes tranzakciót külön ellenőriz. Ilyenkor minden egyes tranzakció után az érme visszatér a pénzkibocsátóhoz, amely kibocsát egy új érmét, és csakis a kibocsátó által közvetlenül kiadott érme tekinthető nem kétszer elköltöttnek. Ezzel a megoldással az a probléma, hogy a teljes pénzügyi rendszer sorsa attól a társaságtól függ, ami a pénzkibocsátót működteti, mivel minden tranzakciónak rajtuk keresztül kell történnie, akárcsak egy banknál.
Nekünk egy olyan módra van szükségünk, ahol a kedvezményezett tudja, hogy az előző tulajdonosok ugyanarra az érmére nem hagytak jóvá más, korábbi tranzakciókat. A mi nézőpontunk az, hogy a legrégebbi tranzakció az, ami érvényes, ezért nem kell később dupla költési kísérletekkel foglalkoznunk. Az egyetlen módja annak, hogy megerősítsük az egyéb tranzakciók nemlétét ugyanarra az érmére, ha az összes tranzakció ismert. A pénzkibocsátó-alapú modellnél a kibocsátónak tudnia kell az összes tranzakcióról, és el kell döntenie, melyik érkezett be elsőnek. Hogy ezt elérhessük egy megbízott harmadik fél nélkül, a tranzakciókat nyilvánosan meg kell hirdetni, és egy olyan rendszerre lesz szükség, aminek a résztvevői egyetértenek abban az egyetlen tranzakciós előzményben, amin keresztül kifizetik őket. A kedvezményezetteknek bizonyosságra lesz szükségük, hogy a tranzakciók ideje alatt a hálózati csomópontok többsége egyetértett abban, hogy az ő kapott érméjük volt a legrégebbi.
Ezzel vezetik föl a time chain, tehát az időlánc problémáját, és hogy a digitális térben létre kell hozni az időt. Satoshi, amit már korábbi prezentációkból is megtudhatunk, nagyon jól kitalálta: a digitális térben az időt most már nem lehet csak úgy ide-oda ugrálni.
Az időbélyegző szerver, ez a harmadik rész. Az általunk javasolt megoldás kiindulópontja egy időbélyegző szerver. Egy időbélyegző szerver adatblokkok hash-eit időbélyegzi, majd ezt a hash-t széles körben nyilvánosságra hozza, mintha csak egy napilapról vagy egy Usenet-bejegyzésről lenne szó. Az időbélyegzés megerősíti, hogy az adatnak abban az időben nyilvánvalóan léteznie kellett ahhoz, hogy bekerülhessen a hash-be. Minden időbélyeghez tartozó hash tartalmazza az előző időbélyeget, ezáltal egy lánc jön létre, ahol minden egyes újabb időbélyeg léte igazolja az azt megelőzőket. Továbbá van még itt egy kicsi ábra, a hash-ek egymáshoz kötöttségét mutatja be.
Negyedik rész: a proof of work hitelesítési algoritmus. Egy peer-to-peer alapú, megosztott időbélyegző szerverhez egy olyan proof of work rendszerre lesz szükségünk, mint Adam Back Hashcash-e, hatos hivatkozás, nem pedig újságokra vagy Usenet-bejegyzésekre. A proof of work rendszerhez tartozik egy olyan hash-elt érték beolvasása, mint az SHA-256 esetében is, ahol a hash több nullbittel kezdődik. A szükséges átlagos munka a szükséges nullák számát tekintve exponenciális, és egyetlen hash végrehajtásával megerősíthető.
A mi időbélyegző szerverünknél a proof of work hitelesítést egy nonce kiegészítő változónak az eredeti hash-adatsorhoz való hozzáadásával valósítjuk meg. Ez hozzáadódik a blokkhoz addig, amíg a csomópontok egyike rá nem lel arra az értékre, ami a tranzakciós blokk új hash-éhez biztosítja a szükséges számú nullát. Amint egy adott mennyiségű számítási kapacitás felhasználásra került a hitelesítési algoritmus végrehajtásához, a blokk többé nem lesz megváltoztatható anélkül, hogy e munkát ne kelljen újból elvégezni. Mivel a későbbi blokkok hash-értékei az előzőekre épülnek, egy blokk megváltoztatásával az összes azt követő tranzakciós blokkot újra létre kellene hozni. Újabb ábra: a blokkok hogyan követik egymást, és a korábbi hash-ek hogyan fűződnek föl.
A proof of work a többségi döntéshozatalhoz szükséges arányok meghatározásának kérdését is megoldja. Ha a szavazatok IP-cím alapján oszlanának el, ez megkerülhető lenne bárki által, aki több IP-címet is ki tud magának osztani. A proof of work rendszerben lényegében egy CPU jelentene egy szavazatot. A többségi döntést az a leghosszabb blokklánc jelenti, amibe a hálózat szereplői a legtöbb hitelesítési erőfeszítést fektették. Ha a számítási kapacitás többségét az igaz csomópontok birtokolják, az igaz blokklánc növekszik majd a leggyorsabban, más, versengő láncokat megelőzve.
Itt egy komment, hogy az eredetiben a blokklánc kifejezés nem szerepel, azt sokkal később vezette be a kriptoközösség, úgymond. Tehát az eredeti, angol nyelvű white paperben a blokklánc helyett chain of time vagy ilyesmi, tehát time chainként hivatkozik Satoshi erre.
Egy régi blokk módosításához a támadónak újra kellene csinálnia a hitelesítést abban és az azt követő összes blokkban, majd be kell érnie és meg kell haladnia az igaz csomópontok munkáját. Demonstráljuk majd, hogy annak a valószínűsége, hogy egy lassabb támadó behozza ezt a lemaradást, exponenciálisan csökken azzal, hogy a lánchoz az együttműködő csomópontok folyamatosan újabb és újabb blokkokat adnak. A várhatóan növekvő hardversebességet és a hálózati csomópontok futtatása iránt idővel esetleg változó érdeklődést kompenzálandó, a proof of work nehézségét egy mozgóátlag határozza meg, ami egy óránként megadott átlagos blokkszámot céloz. Ha az új blokkok túl gyorsan jönnek létre, a nehézség fokozódik.
Ötödik rész: a hálózat. A hálózat működtetésének az alábbiak a feltételei. Első: minden hálózati csomópont megkapja az új tranzakciókat. Második: minden csomópont egy blokkba gyűjti az új tranzakciókat. Harmadik: minden egyes csomópont próbál rálelni a proof of work adatsorra a saját blokkjához. Negyedik: ha egy csomópont rálel a proof of work adatsorra, a megoldott blokkot közvetíti a többi csomópontnak. Ötödik: a többi csomópont akkor fogadja el a blokkot, ha az abban szereplő összes tranzakció érvényes, és nincs benne dupla költés. Hatodik: a csomópontok azzal fejezik ki a blokk elfogadását, hogy a láncban elkezdik a következő blokk létrehozását, az elfogadott blokk hash-ét használva előző hash-ként.
A csomópontok mindig a leghosszabb blokkláncot fogadják el helyesnek, és azon dolgoznak majd, hogy azt tovább hosszabbítsák. Ha két csomópont a következő blokkra két különböző verziót közvetít, az egyes csomópontok egyiket vagy másikat kaphatják meg elsőnek. Ebben az esetben az elsőként beérkezetten kezdenek el dolgozni, de másolatot készítenek a másikról is arra az esetre, ha az bizonyul hosszabbnak. Ez az egyenértékűség akkor szűnik meg, amikor egy csomópont rálel a proof of work adatsorra, és valamelyik ág hosszabb lesz a másiknál. Ekkor a csomópontok, amik addig a másik ágon dolgoztak, átállnak a hosszabbra. Az új tranzakciókat nem kell feltétlenül az összes csomópontnak vennie: amíg elegendő csomóponthoz közvetítik azokat, addig a blokkláncba kerülnek. A blokkok közvetítése emellett toleráns az elhagyott üzenetekkel szemben is. Ha egy csomópont nem kap meg egy blokkot, akkor azt akkor fogja kérni, amikor megkapja a rákövetkezőt, és észleli, hogy egyet kihagyott.
Hatodik, ez az ösztönzők, incentívák része, tehát mi alapján működik az ösztönzés. Megegyezés alapján egy blokk első tranzakciója egy olyan különleges tranzakció, ami a rendszerben egy új érmét hoz létre, és amit a blokk létrehozója birtokol. Ez arra ösztönzi a csomópontokat, hogy támogassák a hálózatot, és arra is alkalmas, hogy eleinte segítse az érmék forgalomban való eloszlását, hiszen azok kibocsátására itt nincsen központi szerv. Az új érmék folyamatos forgalomba kerülése ahhoz hasonló, mint amikor az aranybányászok erőforrásokat fordítanak arra, hogy több arany kerüljön forgalomba. A mi esetünkben ez a ráfordított erőfeszítés elektromosság és számítási kapacitás.
Ösztönző lehet még a tranzakciós díjak megállapítása is. Ha egy tranzakció kimenetének az értéke kisebb, mint a bemeneté, a különbséget egy tranzakciós díj jelenti, ami a tranzakciót tartalmazó blokk ösztönzési értékéhez adódik. Amint egy előre meghatározott mennyiségű érme forgalomba kerül, az ösztönzők rendszere teljesen átállhat a tranzakciós díjakra, és emellett teljesen inflációmentes is lehet.
Az ösztönzők arra motiválhatják a csomópontokat, hogy elfogadják a játék feltételeit. Ha egy kapzsi támadó több CPU-kapacitást tud összegyűjteni, mint amennyit az összes együttműködő csomópont birtokol, választania kell: becsap másokat azzal, hogy visszalopja a másnak küldött összeget, vagy használhatja ezt a kapacitást új érmék létrehozására. Úgy találhatja majd, hogy jobban megéri a szabályok szerint játszania, hiszen azok ekkora kapacitás mellett lehetővé teszik, hogy legálisan több érméhez jusson, mint az összes többi szereplő összesen, míg a rendszer aláásásával a saját vagyonának érvényességét is kikezdi.
Hetedik rész: a tárolókapacitás kérdése. Ha egy érme utolsó tranzakcióját már elég blokk lefedi, a megelőző tranzakciókat a tárhellyel való spórolás érdekében törölni lehet. Hogy ezt megtehessük anélkül, hogy megtörnénk a blokk hash-ét, a tranzakciókat egy úgynevezett Merkle-fában, Merkle tree-ben hasheljük úgy, hogy a blokk hash-ébe csak a rootot, a gyökeret vesszük be. A régi blokkokat úgy tehetjük kompaktabbá, hogy a fának lefűrészeljük a felesleges ágait, a belső hash-ek tárolására nem lesz szükség. És akkor itt van a hash-ek felépítésének, és hogy a tranzakciók milyen hash-eket adnak, ennek egy ábrája, azt is majd bevágom.
Egy blokkfejléc tranzakciók nélkül körülbelül 80 byte. Ha azt feltételezzük, hogy új blokkok minden 10 percben jönnek létre, akkor 80 byte szorozva 6-tal, szorozva 24-gyel, szorozva 365-tel, az egyenlő 4,2 MB évente. Hát ez nem pont így lett, kicsit több. Tekintetbe véve, hogy 2008-ban a számítógépeket tipikusan 2 GB RAM-mal értékesítették, a Moore-törvény pedig 1,2 GB-ra becsüli az éves növekedést, a tárhely még akkor sem okozhat problémát a jövőben, ha a blokkfejléceket memóriában kell majd tárolni.
Nyolcadik rész: egyszerűsített fizetésmegerősítés. A kifizetések megerősítése hálózati csomópontok futtatása nélkül is lehetséges. A felhasználónak csupán egy másolatot kell megőriznie a leghosszabb proof of work lánc blokkfejléceiről. Ehhez addig kell lekérdeznie a csomópontokat, amíg meg nem győződik arról, hogy övé a leghosszabb lánc, és meg nem kapja a Merkle-ágat, ami összeköti a tranzakciót azzal a blokkal, amiben az időbélyegezve van. A felhasználó nem tudja magának ellenőrizni a tranzakciót, de a láncba való belinkelésével láthatja, hogy a hálózati csomópont elfogadta azt, valamint a további blokkok jelenléte is a hálózat elfogadását erősíti meg.
Az efajta megerősítésben mindaddig megbízhat, amíg az igaz csomópontok uralják a hálózatot. Akkor válik kérdésessé, ha a hálózatot egy támadó legyűrte. Noha a hálózati csomópontok maguk is meg tudnak erősíteni tranzakciókat, az egyszerűsített mód becsapható a támadó által fabrikált tranzakciókkal addig, amíg a támadó erőforrásai továbbra is uralják a hálózatot. Egy lehetséges védelmi stratégia, hogy a hálózati csomópontok riadóztatják egymást, ha találnak egy érvénytelen blokkot, ami arra kényszeríti a felhasználó szoftverét, hogy letöltse a teljes blokkot és a kérdéses tranzakciókat, hogy azok érvényességét újból megerősítse. Az olyan vállalkozások, amik rendszeresen fogadnak kifizetéseket, valószínűleg saját csomópontokra akarnak majd támaszkodni a gyorsabb megerősítés és a függetlenebb biztonság érdekében. Ez így is van, tehát futtassuk a saját node-unkat, erre ösztönöz.
Kilencedik rész: értékek kombinálása és megosztása. Noha elvben lehetséges az érmék külön kezelése, külön tranzakció létrehozása minden egyes centre túl körülményes lenne. Hogy egy érték megosztható és kombinálható legyen, a tranzakciók több bemenetet és kimenetet foglalnak magukba. Normál esetben egy nagyobb tranzakciónál egyetlen bemenet lesz, vagy több olyan bemenet, ami kisebb értékeket kombinál. A legtöbb esetben két kimenet van: egy a fizetésnek, egy pedig a visszajárónak a feladó felé, ha van ilyen. Érdemes megjegyezni, hogy a kimeneti terhelhetőség, fan-out, ahol egy tranzakció több más tranzakció függvénye, és ezek maguk is mások függvényei, itt nem jelent problémát. Soha nem lesz szükség arra, hogy a tranzakciós előzményekről egy teljes, magában álló másolat készüljön.
Tizedik rész: adatvédelem. A hagyományos banki modell úgy valósít meg egy adatvédelmi szintet, hogy korlátozza az információhoz való hozzáférést az érintett felek és a megbízott harmadik személy felé. Az összes tranzakció nyilvános meghirdetésének szükségessége ezt nem teszi lehetővé, de az adatvédelem még mindig fenntartható úgy, hogy az információ áramlását egy nem kívánt helyre a nyilvános kulcsok anonimitásával megtörjük. Az látható lesz, ha valaki egy bizonyos összeget küld valaki másnak, de az információ, amivel egy konkrét személyhez lehet kötni a tranzakciót, senki számára nem lesz látható. Ez hasonlít ahhoz az információs szinthez, amit a tőzsdéken használnak: az egyes ügyletek ideje és mérete nyilvános, de az információ nem számol be az abban résztvevő felek kilétéről.
Egy további tűzfalat jelent, ha minden egyes tranzakciónál új kulcspárt használunk, hogy a privát kulcsokat se lehessen egy tulajdonoshoz kötni. A több bemenetes tranzakcióknál némi összekapcsolás azért elkerülhetetlen lesz, hiszen szükséges annak megerősítése, hogy az összes bemenet egy tulajdonoshoz köthető. Kockázatot jelent, ha egy privát kulcs tulajdonosára fény derül, hiszen akkor a kulcsnál hitelesített összes tranzakció is visszakövethetővé válik.
Tizenegyedik rész: számítások. Most egy olyan lehetőséget veszünk számításba, ahol a támadó megpróbál gyorsabban létrehozni egy alternatív blokkláncot az igaz lánccal szemben. Még ha ez sikerül is neki, ettől a rendszeren nem lehet olyan önkényes változtatásokat elvégezni, mint érték létrehozása a semmiből, vagy olyan pénz eltulajdonítása, ami sosem volt a támadó birtokában. A csomópontok nem fognak elfogadni fizetés gyanánt egy érvénytelen tranzakciót, az együttműködő csomópontok pedig soha nem fogadnak el olyan blokkot, ami ilyet is tartalmaz. A támadó csak a saját tranzakcióit változtathatja meg úgy, hogy visszaveszi a nemrég elköltött pénzét. Ez a támadás esetére vonatkozik.
Az igaz és a támadó blokklánc közötti versenyt egy binomiális véletlen sétával írhatjuk le. A sikeresemény, ahol az igaz lánc egy blokkal meghosszabbodik, plusz eggyel növeli annak az előnyét, a kudarcesemény, ahol a támadó lánca bővül egy blokkal, vagyis az előny mínusz eggyel változik. Annak a valószínűsége, hogy a támadó behoz egy adott hátrányt, analóg azzal a jelenséggel, amit a statisztikában a szerencsejátékos tönkremenésének hívnak. Tegyük föl, hogy egy szerencsejátékos végtelen számú kredit birtokában veszteséggel kezd, és potenciálisan végtelen mennyiségű próbát kell tennie azért, hogy nullszaldós legyen. Ki tudjuk számolni annak a valószínűségét, hogy a szerencsejátékos valaha is nullszaldós lesz-e, vagy hogy a támadó lánca valaha is beéri-e az igaz blokkláncot. Ez a nyolcas hivatkozás, erről továbbiakat lehet olvasni.
És akkor itt felvezeti a képletet, ezt inkább majd bevágom. Behozza a valószínűségeket: p annak a valószínűsége, hogy egy igaz csomópont találja meg a következő blokkot, q annak a valószínűsége, hogy a támadó találja meg a következő blokkot, qz pedig annak a valószínűsége, hogy a támadó valaha is beéri az igaz láncot z blokk hátrányból indulva. És itt van akkor a képlet. Ha azt feltételezzük, hogy p nagyobb, mint q, a támadó felzárkózásának a valószínűsége a támadó lánca által beérendő blokkok számának növekedésével exponenciálisan csökken. A valószínűségek annyira a támadó ellen szólnak, hogy hacsak nem sikerül egy nagyot ugrania előre az elején, az esélyei egyre csak halványulnak azzal, hogy a lemaradása növekszik.
Most azt vesszük számításba, mennyit kell az új tranzakció kedvezményezettjének várnia arra, hogy kellően biztos lehessen abban, hogy a feladó nem változtatja meg a tranzakciót. Feltételezzük, hogy ez a feladó maga a támadó, aki azt akarja elhitetni a kedvezményezettel, hogy már kifizette, majd egy bizonyos idő elteltével a tranzakciót úgy változtatja meg, hogy visszaküldi saját magának a pénzét. A kedvezményezett erről értesül, a feladó viszont abban reménykedik, hogy ez nem történik meg időben. A kedvezményezett létrehoz egy új kulcspárt, majd átadja a nyilvános kulcsot a feladónak közvetlenül a tranzakció aláírása előtt. Ez elejét veszi annak, hogy a feladó idő előtt előkészítsen egy blokkláncot, dolgozzon rajta mindaddig, amíg sikerrel nem jár az előrejutásban, majd abban a pillanatban végrehajtson egy megváltoztatott tranzakciót.
Ahogy a tranzakció feladásra kerül, a csaló elkezd titokban dolgozni egy párhuzamos láncon, abban a tranzakció egy alternatív verziójával. A kedvezményezett addig vár, amíg a tranzakció hozzáadódik a blokkhoz, és z blokk azt rendben követi. Azt nem tudja, mennyit haladt a támadó a saját láncával előre, de azt feltételezve, hogy az igaz blokkok a várható átlagos időtartam alatt kerülnek az igaz láncba, a támadó potenciális haladása egy Poisson-eloszlást követ majd, a lambda egyenlő z szorozva q per p várható értékkel. Hogy megkapjuk a támadó felzárkózási valószínűségét, a Poisson-sűrűséget megszorozzuk minden egyes haladással, amit attól a ponttól kezdve a valószínűség szerint megtehetett. Itt van ennek a képlete. Ezt újrarendezi, hogy elkerülje a végtelen eloszlás összegzését, majd Satoshi betesz egy C kódú konverziót, ezt most nem olvasom föl.
Itt lehet látni, és lefuttatja: a lefuttatási eredményből látszik, hogy ahogy a z növekszik, tehát a blokkok száma növekszik, és a q, a valószínűség 0,1 volt, úgy a nagy P valószínűség rendre csökken. A végén már nagyon kicsi szám, hat nagyságrenddel veszített 10 blokk alatt a valószínűségéből. Ha 30%-os valószínűséggel indul, akkor pedig ez még kisebb szám.
Konklúzió, a 12-es részben. Ebben a tanulmányban az elektronikus tranzakciók és készpénz egy olyan rendszerét javasoltuk, ami nem bizalmi alapú. A digitális aláírásokkal létrehozott érmék egy szokványos keretrendszerével kezdtük, ami erős kontrollt biztosít a tulajdon felett, de nem lehet teljes a dupla költés megakadályozása nélkül. Az utóbbi probléma megoldására egy olyan, proof of work hitelesítési algoritmust használó peer-to-peer hálózatot javasoltunk, amit a számítási kapacitást tekintve addig nem praktikus a támadónak megváltoztatnia, amíg az igaz csomópontok birtokolják a CPU-kapacitás nagyobb részét.
A hálózat ereje a strukturálatlan egyszerűségében rejlik. A hálózati csomópontok egyszerre dolgoznak, kevés koordinációval. A csomópontok azonosítására nincs szükség, hiszen az üzenetek nem egy adott helyre vannak irányítva, és a kézbesítésük a legjobb erőfeszítés alapján történik. A csomópontok kedvük szerint csatlakozhatnak a hálózathoz és hagyhatják el azt, a távollétükben keletkezett proof of work láncot pedig visszatértükkor érvényesnek fogadják el. A csomópontok a CPU-kapacitásukkal szavaznak: az érvényes blokkok elfogadását a blokklánc meghosszabbításával, az érvénytelen blokkok elutasítását az azokon való munka megtagadásával fejezik ki. Bármilyen szükséges szabály és ösztönző ezzel a konszenzusos mechanizmussal érvényesíthető.
Hát ennyi lenne a Bitcoin white paper, a Bitcoin tanulmány. Azért van benne egy-két dolog, ami első hallásra nem olyan egyértelmű, de szerencsére többször is el lehet olvasni. És ez indította el a Bitcoint. Ehhez azért kapcsolódott egy kód, és ezt természetesen megírták C-ben, Satoshi és csapata, vagy bárki, akit mi őt nevezünk, egyedül, de valószínűleg többen voltak. És itt a forrásoknál meghivatkozza, hogy kinek a munkáit használta fel ennek a megalkotására.
Úgyhogy körülbelül ennyi ez a white paper. Innen indul ki az egész Bitcoin, innen indul ki az emberiség megváltása a bankrendszertől. Ez az első kezdeményezés, ami működött az emberiség történelmében arra, hogy a pénzt harmadik fél uralma alól kivegyük, és mindössze a két tranzaktáló fél között legyen. Szerintem óriási nagy dolog. Nyilván erre aztán egy csomó minden rátelepedett, ezt kihasználva, és ennek az előnyét próbálta visszahozni a kriptoiparág, amikor mindenféle shitcoinokkal bejött, és próbálta újra feltalálni. Ezt nem sikerült beérni, ahogy látjuk.
Hiába emlegetik, hogy itt a blockchaintechnológia volt az áttörő, valójában nem az volt, hanem itt sok mindennek kellett kombinálva lennie. Tehát a decentralizált pénzrendszernek, sokszor említi a peer-to-peer hálózatot, behozza a digitális szűkösséget, a blokkonkénti jutalom fix, és 210 000 blokkonként csökken, így érve el, vagy így soha nem érve el azt a határértéket, azt a 21 milliós bitcoinszámot, ami felé tartunk. És behozza a proof of workot, ezt a konszenzusmechanizmust, ami a tranzakciók hitelességét és a rendszer biztonságát biztosítja. Nagyszerű. Sokan azt mondják, hogy ez felfedezés volt, sokan azt mondják, hogy találmány. Mindenki döntse el magának, melyik táborba áll be, igazából tök mindegy, mert ez attól még van.
Én nem tudom, mit fűzzek ehhez hozzá, óriási dolog. Az a baj, hogy így egyedül monológot nem kívánok adni. Csak tényleg azt mondom mindenkinek, hogy nagyon sokszor vagyunk úgy, hogy van egy csomó időnk, és akkor például tudunk a Bitcoinnal foglalkozni olyan módon, hogy könyveket olvasunk. Nagyon sok könyv van a Bitcoinban, ezeket reményeim szerint majd azért átvesszük, hogy melyiket érdemes. De nektek azt javasolnám, hogy kezdjétek a huszonegy.world könyvek oldalán átnézni, hogy honnan induljatok el, mert ott nagyon jó minőségű munkákat találhattok. Kezdve a Kis Bitcoin könyvtől, amit Kovács Andrea, Bánfi Balázs Miklós és Optout fordított, aztán ott van Saifedean Ammousnak a Bitcoin standardja. Ez szerintem kötelező, mindenkinek el kell olvasnia, hogy lássa, hogyan épül fel a pénz, mi az, amit mi nem tudunk a pénzről.
Hiába vagyunk közgazdászok, mérnökök vagy akármilyen végzettségű emberek, nem tudunk a pénzről, mert nem tanítanak minket a pénzről, mert ha tanítanának, akkor nem működne így ez a világ. És ez a világ úgy van kitalálva, hogy ez így működjön. Tehát amikor azt mondjuk, hogy hú, milyen gonosz meg csúnya meg rettenetes, akkor igazából, ha a másik oldalról nézzük, ez egy nagyon csodálatosan megalkotott rendszer, hiszen működik, persze nem a mi javunkra.
Na most, amikor elolvassátok a Bitcoin standardot, vagy értelmezitek a Bitcoin white papert, hogy ez milyen lehetőségeket nyit meg az emberiségnek, akkor szerintem kevés ember van úgy, hogy ne robbanjon el az agya a szobában, vagy ahol éppen van, és ne tudja magát utána úgy összeszedni, hogy te jó isten, eddig hol éltem, miben éltem, és a többi ember hol él és miben van, hogyan működik a gazdaság, ha ekkora óriási kamu az egész. De hát most már adott a Bitcoin, megvan, kiszabadult a szellem a palackból. Nincs más dolgunk, mint működtetni, használni, és ha így teszünk, akkor nagyon-nagyon meg fog minket jutalmazni.
Egy emberiség szintjén is, hiszen egy csomó fölösleges dologtól megvéd. Tehát nem kell többé azon gondolkodni, hogy a valójában megtermelt javaimnak mennyi része marad az enyém, mert itt megmarad az összes. Nincs tovább az a kaszt, ami eddig évezredeken keresztül beékelődött az ember és a javadalmazás közé. A magukra elitként hivatkozó kasztról beszélek, de tulajdonképpen aki máson élősködik, az nem elit, hanem parazita. És ez a Bitcoinban a nagyszerű, hogy mindezt felfedi, ad rá egy megoldást, és lehet szintet lépni az emberiségnek: 2.0.
Egyébként ha valaki belemegy a Bitcoin nyúlüregébe, például itt van Gigitől a 21 lecke. Ez tipikus nyúlüreges könyv, mert ahogy egyre mélyebbre kerülsz benne, egyre jobban meglátod, hogy valójában a világ hogyan is működik, és mik mentén működtették. Szóval ezt a könyvet is mindenkinek ajánlom. Itt most csak scrollozok végig a huszonegy.world könyvei között, rohadt jó. Meg hát aki beszél angolul, annak érdemes az Amazonra is fölmenni, és ott a Bitcoin témájú könyvekből nagyon sok jó van.
Persze egy idő után mindenki megtapasztalhatja, hogy azért nagyon sok minden ismétlődik, tehát nincs új a nap alatt, de különböző értelmezésekben azért mindig lehet valami újat behozni ebbe a Bitcoin tudásba. És ugyanez igaz arra is, amikor az ember hegedülni tanul, és elolvas róla egy cikket: akkor még nem fog róla sokat tudni, és nem is fog tudni eljátszani semmilyen művet. Aztán ha a kezébe vesz egy hegedűt, akkor már tudja, hogy milyen hangok tudnak belőle kijönni, 10 óra után már lehet, hogy valamit meg is tud szólaltatni, egy „Boci, boci tarkát”. Ugyanígy van a Bitcoinnal is, tehát ez egy nagyon összetett tudásrendszer, és nagyon sok minden megértését igényli, ezért sok órát kell vele eltölteni, hogy leessen az embernek, pontosan mi ez.
Jó, hát köszönöm a figyelmeteket, nem akarom itt a nyaratokat rabolni, csak gondoltam, hogy most ezt a white papert fölolvasom. Lehet, hogy nem volt minden része érthető, de olvassátok el ti is, ha lehet magyarul, ha lehet angolul, és elemezzétek szét! Legyetek biztosak abban, hogy a tudásotok a saját fejeteken alapszik, nem pedig mások véleményén! Köszönöm a figyelmet. A jövő héten azért sokkal érdekesebb lesz a műsor, mert két vendégem is lesz, és akkor egy kicsit aktuális dolgokkal is fogunk foglalkozni. Sziasztok!