A Bitcoin megértéséhez először el kell felejteni a digitális érmék egy virtuális széfben pihenő képét. A hagyományos banki világban a pénz számlaegyenlegek által van meghatározva. Ha van pénzed a bankban, egy központi adatbázis egy adott számot tart a neved mellett. A Bitcoin teljesen másképp működik. Nincsenek fizikai érmék, sem digitális fájlok, amelyek egyedi érméket képviselnének. Nincsenek számlák sem a protokoll rétegben, amelyek egyszerűen felsorolnák a felhasználó egyenlegét.
Ehelyett az egész rendszer a tranzakciók történetére támaszkodik. Amit „bitcoin”-nak hívunk, az lényegében egy digitális aláírások lánca, amely az értékátruházás történetét tükrözi. A tulajdonjog nem egy statikus tárgy birtoklásával jön létre, hanem azzal a képességgel, hogy új bejegyzést hozzunk létre ebben a főkönyvben. Amikor egy felhasználó ellenőrzi a tárcája egyenlegét, a szoftver valójában a teljes blokkláncot átvizsgálja, hogy kiszámítsa az összes, a kulcsaihoz hozzáférhető felhasználatlan tranzakció összegét.
Ez az architekturális különbség alapvető ahhoz, hogy a hálózat decentralizált maradjon. Központi bank nélkül, amely frissítené az egyenlegek főkönyvét, a hálózat egy átlátható, ellenőrizhető láncra támaszkodik a tulajdonjog nyomon követéséhez. Minden tranzakció visszamutat egy előzőre, egészen addig a pillanatig, amikor az érméket először bányászta egy bányász. Ez a struktúra biztosítja, hogy az érték ne jöjjön létre a semmiből, és hogy minden bitcoin töredék története nyomon követhető és megváltoztathatatlan legyen.
A tulajdonjog alapja: Nyilvános kulcsú kriptográfia
A kulcspárok megértése
A Bitcoin tranzakció mechanikájának szívében a nyilvános kulcsú kriptográfia áll. Ez a matematikai keretrendszer lehetővé teszi a felhasználók számára, hogy biztonságos digitális identitást generáljanak anélkül, hogy központi hatósághoz regisztrálnának. A tulajdonjogot a kulcspár birtoklása határozza meg: egy privát kulcs és egy nyilvános kulcs. A privát kulcs egy véletlenszerűen generált titok, hasonló egy jelszóhoz, de sokkal bonyolultabb. Ez adja a jogosultságot a pénzeszközök mozgatására.
A nyilvános kulcs matematikailag levezethető a privát kulcsból. Nyíltan megosztható anélkül, hogy a biztonságot veszélyeztetné. Ebből a nyilvános kulcsból a hálózat generál egy Bitcoin címet, amely a pénzeszközök céljaként szolgál. Ez az egysávos utca kulcsfontosságú. Könnyen generálhatsz nyilvános kulcsot egy privát kulcsból, de lehetetlen visszafelé csinálni, és a privát kulcsot levezetni a nyilvánosból.
Ez az aszimmetria lehetővé teszi, hogy a hálózat bizalom nélkül működjön. Ha egy felhasználó pénzt akar kapni, megosztja a címét. Ha költeni akar, a privát kulcsával kriptográfiai aláírást készít egy üzenethez. Ez az aláírás bizonyítja, hogy ő a tulajdonosa annak a privát kulcsnak, amely a pénzt tartó címhez tartozik, anélkül, hogy valaha is felfedné a privát kulcsot a hálózat vagy a címzett előtt.
A digitális aláírások szerepe
Egy Bitcoin tranzakció lényegében egy üzenet, amely azt állítja: „Ezeket a konkrét bitcoinokat ebbe az új címbe mozgatom.” Ahhoz, hogy ez az üzenet érvényes legyen, digitálisan alá kell írni. A digitális aláírást a küldő privát kulcsával alkalmazzák a tranzakció adataira. Ez a folyamat egy egyedi adatsort generál, amely kizárólag arra a pontos tranzakcióra jellemző.
Ha a tranzakció bármely részlete megváltozna – például az összeg vagy a célcím –, az aláírás már nem egyezne meg. Ez biztosítja, hogy amint egy tranzakció aláírt és közzétett, harmadik felek nem babrálhatnak vele. A hálózati résztvevők, vagy node-ok, a küldő nyilvános kulcsával matematikailag ellenőrizhetik az aláírást.
Ha a matek stimmel, a hálózat tudja, hogy a tranzakció legitim és a valódi tulajdonos által jóváhagyott. Ha nem, a tranzakciót azonnal elutasítják. Ez az ellenőrzés automatikusan történik ezres számú számítógépen világszerte, biztosítva a hálózatot emberi beavatkozás nélkül.
| Komponens | Funkció | Láthatóság |
|---|---|---|
| Privát kulcs | Aláírja a tranzakciókat a tulajdonjog bizonyítására | Titkos (csak tulajdonos) |
| Nyilvános kulcs | Ellenőrzi az aláírásokat a cím ellen | Nyilvános (hálózat) |
| Cím | Cél a pénzeszközök fogadására | Nyilvános (bárki) |
A felhasználatlan tranzakció kimenet (UTXO) modell
Hogyan kezeli a Bitcoin az értéket
A legtöbb ember a bankok és hitelkártyák által használt „számlaalapú” modellhez van szokva. Abban a rendszerben, ha van 100 dollárod és elköltsz 20-at, a bank egyszerűen frissíti az adatbázis bejegyzésedet 80 dollárra. A Bitcoin egy másik logikát használ, az Unspent Transaction Output (UTXO) modellt. Ebben a rendszerben nincsenek kitartó egyenlegek, csak bitcoin darabok, amelyek érkeztek, de még el nem költve.
Képzeld el ezeket az UTXO-kat digitális készpénzként vagy aranyrögökként különböző méretekben. Ha kapsz egy 0.5 BTC tranzakciót és egy másikat 0.3 BTC értékben, két különálló UTXO-t tartasz a tárcádban. Nem olvadnak össze egyetlen 0.8 BTC „érmévé” a blokkláncon, még ha a tárcád szoftvere kényelmi okokból mutatja is az összesített összeget. Különálló értékrekordok maradnak, várva a felhasználást.
Amikor tranzakciót indítasz, a tárcád kiválaszt elegendő UTXO-t a küldeni kívánt összeg fedezésére. Nem bonthatod kettét egy UTXO-t anélkül, hogy teljesen elkölnéd. Ez hasonló a fizikai készpénzhez. Nem tépheted szét egy 20 dolláros bankjegyet egy 10 dolláros áru kifizetéséhez. Az egész bankjegyet át kell adnod, és visszajárót kapsz.
Bemenetek, kimenetek és visszajáró
Minden Bitcoin tranzakció bemenetekből és kimenetekből áll. A bemenetek hivatkozások korábbi UTXO-kra, amelyeket most költesz el. A kimenetek az érték új céljai. Amikor összeállítasz egy tranzakciót, meglévő UTXO-kat fogyasztasz bemenetként és új UTXO-kat hozol létre kimenetként.
Például, ha egy bányász 6.25 BTC blokkjutalomot kap, az egy egyetlen UTXO. Ha a bányász 1 BTC-t akar küldeni Alice-nak, nem egyszerűen küldhet 1 BTC-t. Tranzakciót kell összeállítania, amely a 6.25 BTC UTXO-t veszi bemenetként. A tranzakciónak akkor két kimenete lesz.
Az első kimenet 1 BTC-t küld Alice-nak. A második kimenet a maradék 5.25 BTC-t küldi vissza a bányász saját címére. Ezt a második kimenetet „visszajáró kimenet”-nek hívják. A blokkláncon az eredeti 6.25 BTC UTXO elköltöttként van megjelölve, és már nem érvényes jövőbeli tranzakciókra. Helyette két új UTXO (1 BTC és 5.25 BTC) jön létre és rögzítődik. Ez a bemenetek és kimenetek lánca teremti meg a valuta törhetetlen történetét.
Bitcoin Script: A tranzakciók nyelve
Veremalapú végrehajtás
A Bitcoin tranzakciók nem csupán egyszerű értékátutalások; programozható utasítások. Ezeket az utasításokat Bitcoin Script nevű nyelven írják. A általános szoftverfejlesztéshez használt bonyolult programozási nyelvekkel ellentétben a Script szándékosan egyszerű. „Veremalapú”, ami azt jelenti, hogy adatokat a veremre (listára) tol be és műveleteket végez a tetején lévő elemeken.
A Script nem Turing-teljes. Ez azt jelenti, hogy hiányzik belőle a végtelen ciklusok vagy bonyolult logika létrehozásának képessége. Ez a tervezési választás szándékos biztonsági funkció. A nyelv komplexitásának korlátozásával a hálózat megakadályozza a végtelen ciklusokat, amelyek összeomlaszthatnák a node-okat vagy lehetővé tennék támadók számára, hogy számításigényes parancsokkal zsúfolják tele a rendszert.
A script meghatározza azokat a feltételeket, amelyeknek teljesülniük kell egy UTXO elköltéséhez. Amikor egy tranzakció létrejön, a küldő egy „Záró Script”-et (ScriptPubKey) csatol a kimenethez. Ez a script lényegében azt mondja: „Ezeket a pénzeszközöket csak az mozdíthatja el, aki megadja az ehhez a konkrét nyilvános kulcs hash-hez illeszkedő aláírást.”
Feloldás és ellenőrzés
Ahhoz, hogy később elköltse ezeket a pénzeszközöket, a tulajdonos új tranzakciót hoz létre „Feloldó Script”-tel (ScriptSig). Ez a script tartalmazza a digitális aláírást és a nyilvános kulcsot. Amikor egy node ellenőriz egy tranzakciót, a két scriptet együtt futtatja. A feloldó scriptet helyezi a veremre, majd a záró scriptet az előző tranzakcióból.
A node sorrendben hajtja végre az utasításokat. Ha a végső eredmény „Igaz”, a tranzakció érvényes, és a pénzeszközök mozgathatók. Ha „Hamis”, a tranzakció érvénytelen. Ez a mechanizmus lehetővé teszi összetettebb feltételeket, mint a egyszerű tulajdonjog.
Például scriptet lehet írni több aláírásra (Multi-Sig), ahol három megjelölt kulcsból kettőnek alá kell írnia a pénzeszközök mozgatása előtt. Scripttel időzárakat is lehet érvényesíteni, megakadályozva a pénzeszközök elköltését egy bizonyos blokkmagasság elérése előtt. Ez a programozhatóság az alapja fejlett funkcióknak, mint a Lightning Network és sidechain-ek, amelyek összetett scripteket használnak gyorsabb, olcsóbb láncokon kívüli elszámolásokhoz.
A tranzakció életciklusa: A tárcától a blokkláncig
Létrehozás és közzététel
Egy Bitcoin tranzakció útja a felhasználó tárca szoftverében kezdődik. A tárca összegyűjti a szükséges bemeneteket a felhasználó elérhető UTXO-iból, és meghatározza a kimeneteket. Kiszámolja a bemenetek és kimenetek közötti különbséget, amely a tranzakciós díj lesz. Miután a részletek megvannak, a tárca a privát kulccsal generálja a digitális aláírást.
Ezt az aláírt adatcsomagot aztán közzéteszi a hálózaton. A felhasználó node-ja elküldi a társaiknak, akik továbbterjesztik világszerte. Minden node, amely megkapja a tranzakciót, kezdeti ellenőrzést végez. Ellenőrzik, hogy a digitális aláírás érvényes-e, hogy a bemenetek még el nem költöttek-e, és hogy a tranzakció értékei nem negatívak-e.
Ha a tranzakció átmegy ezeken az ellenőrzéseken, a node hozzáadja a saját ideiglenes tárolójához, a „mempool”-hoz (memória pool). A mempool nem egyetlen központi sor, hanem minden egyes node helyi gyűjteménye a érvényes, meg nem erősített tranzakciókból. Ezen a ponton a hálózat ismeri a tranzakciót, de még nem része a permanens blokklánc történetének.
A díjpiac és priorizálás
Mivel a Bitcoin blokklánc blokkjai korlátozott méretű kapacitással rendelkeznek, nem minden mempool-tranzakció fér be a következő blokkba. Ez a hiány létrehozza a díjpiacot. A bányászok, akik a blokkokat állítják össze, pénzügyileg motiváltak a legmagasabb bájtonkénti díjat fizető tranzakciók beillesztésére.
A díjakat nem a küldött bitcoin értékének százalékában határozzák meg, hanem a tranzakció adatméretében. Egy 10 millió dolláros tranzakció nagyon kicsi lehet adatméretben, ha csak egy bemenetet és egy kimenetet használ. Ezzel szemben egy 100 dolláros tranzakció nagy lehet adatméretben, ha ötven apró bemenetből gyűjt porokat a fizetéshez.
Aki gyorsan akar megerősítést, versenyképes díjat kell fizetnie a bányászok csábítására. Hálózati zsúfoltság idején a mempool megtelik megerősítetlen tranzakciókkal. A bányászok természetesen a legmagasabb licitálókat választják. Alacsony díjas tranzakciók órákig vagy napokig várhatnak a mempoolban, amíg a forgalom csökken vagy a küldő megemeli a díjat.
Bányászat és konszenzus
A bányászok játsszák a végső szerepet a tranzakció mechanika megszilárdításában. Egy bányász kiválaszt egy köteg tranzakciót a mempooljából jelölt blokkhoz. Aztán Proof of Work (PoW) folyamatba kezdenek, egy számításigényes eljárásba, ahol versenyeznek egy matematikai rejtvény megoldásáért a blokk adatai alapján.
Ez a folyamat a blokkfejléc ismételt hash-elését igényli egy véletlenszerű számmal, a nonce-szal, amíg az eredményes hash egy adott célnehézségen aluli lesz. A nehézség automatikusan állítódik 2016 blokkonként, hogy új blokkok kb. 10 percenként kerüljenek megtalálásra, függetlenül attól, mennyi számítási kapacitás csatlakozik a hálózathoz.
Ha egy bányász talál érvényes megoldást, közzéteszi az új blokkot a hálózaton. Más node-ok megkapják a blokkot és ellenőrzik a megoldást. Újraellenőrzik a blokkban lévő minden tranzakciót, hogy biztosak legyenek a szabályok betartásában. Miután érvényesítették, a node-ok frissítik a helyi blokklánc másolatukat, eltávolítva a benne lévő tranzakciókat a mempoolból. A tranzakció most megerősített.
A dupla költés probléma kezelése
A digitális duplikáció kihívása
A digitális világban az információ könnyen másolható. Ha e-mailben küldesz egy fotót, megtartod az eredetit. Digitális valuta esetén ez kritikus sérülékenységet jelent, a dupla költés problémát. Mechanizmus nélkül egy rosszindulatú szereplő aláírhat egy tranzakciót 1 BTC kereskedőhöz, és egyszerre egy másikat ugyanazzal az 1 BTC-vel önmagához vagy más félhez.
Központosított rendszerben a bank megakadályozza ezt egy főkönyv fenntartásával. Decentralizált hálózatban nincs központi hatóság, amely megmondja, melyik tranzakció volt első. A Bitcoin a nyilvános blokklánc főkönyv és a Proof of Work kombinációjával oldja meg.
Mivel minden teljes node teljes blokklánc másolatot tart, a hálózat konszenzusban van afelől, mely UTXO-k érvényesek jelenleg. Ha egy felhasználó két ellentmondó tranzakciót próbál közzétenni, a node-ok az elsőt fogadják el, amit látnak, és elutasítják a másodikat, mint már hivatkozott bemenetek elköltési kísérletét.
Visszavonhatatlanság a Proof of Work révén
Azonban időzítési különbségek miatt különböző node-ok ideiglenesen különböző igazságverziókat fogadhatnak el. Itt lesz döntő a bányászat. A Bitcoin „igazsága” a leghosszabb lánc a legtöbb felhalmozott Proof of Work-kel. Miután egy tranzakció bekerült egy blokkba, része lesz ennek a hivatalos történetnek.
Egy már megerősített blokkban lévő tranzakció megfordításához vagy dupla költéséhez egy támadónak újra kell bányásznia azt a blokkot és az összes utána következőt gyorsabban, mint a hálózat többi része együttvéve. Ezt 51%-os támadásnak hívják. Az ehhez szükséges hatalmas energia- és hardverköltség gyakorlatilag megváltoztathatatlanná teszi a főkönyvet.
Minél több blokk kerül rá egy adott tranzakciót tartalmazó blokkra, annál exponenciálisan nő a biztonság. Egy megerősítésű tranzakció általában biztonságos, de hat megerősítésű matematikailag lehetetlen megfordítani normál hálózati körülmények között. Ez a mechanizmus a általában könnyen másolható digitális adatot egyedivé, véges digitális eszközzé változtatja.
A node-ok szerepe a hálózati integritásban
Ellenőrzés vs. bányászat
Gyakori tévhit, hogy csak a bányászok biztosítják a hálózatot. Bár a bányászok rendezik a tranzakciókat és blokkokat állítanak elő, a „node-ok” a szabályokat érvényesítő ellenőrök. Egy node bármely Bitcoin szoftvert futtató számítógép, amely tárolja a blokkláncot és ellenőrzi a forgalmat.
Teljes node-ok letöltik minden blokkot és tranzakciót. Ellenőrzik a digitális aláírásokat, megvizsgálják, hogy a bemenetek összege fedje a kimenetekét, és biztosítják, hogy ne legyen dupla költés. Fontos, hogy a node-ok ellenőrzik a bányászok munkáját is. Ha egy bányász olyan blokkot állít elő, amely megsérti a protokoll szabályait – például túl sokat jutalmaz magának bitcoinban vagy érvénytelen tranzakciót tartalmaz –, a node-ok azonnal elutasítják a blokkot.
Ez az elutasítás független attól, mennyi energiát fordított a bányász a blokk létrehozására. Ez a hatalmi egyensúly biztosítja, hogy a bányászok ne változtathassák meg a rendszer szabályait vagy ne nyomtathassanak extra pénzt. Ők a protokoll szolgái, akiket a világban szétszórt egyének és vállalkozások által futtatott decentralizált node hálózat tartja kordában.
Decentralizáció és megbízhatóság
A Bitcoin tranzakció mechanikájának robusztussága ezeknek a node-ok sokszínűségén és számán múlik. Minél elosztottabbak a node-ok, annál nehezebb bármely entitásnak cenzúráznia tranzakciókat vagy leállítania a hálózatot. A node-ok peer-to-peer kommunikálnak, tranzakcióadatokat terjesztve, mint egy pletyka a tömegben.
Nincs feltörhető központi szerver. Ha az internet egy része offline megy, a maradék node-ok tovább működnek. Amikor a leválasztott node-ok visszatérnek, szinkronizálnak a hálózattal a hiányzó történet letöltéséhez. Ez az architektúra biztosítja, hogy a főkönyv konzisztens és globálisan elérhető maradjon, 24/7, leállás nélkül.
A felhasználók futtathatnak saját node-okat a pénzügyi szuverenitás megszerzéséhez. Saját tranzakcióik ellenőrzésével, harmadik féltől függetlenül, megszüntetik a pénzügyi állapotukban való megbízás szükségességét. Ez összhangban van a Bitcoin alapelveivel: „Ne bízz, ellenőrizz.”
Hálózati díjak és adat súly
Költségek számítása
A Bitcoin tranzakció költsége gyakran félreértett. Nem a küldött összeg százalékában áll, mint egy hitelkártya feldolgozási díj. Hanem szigorúan blokktér fizetése. A blokktér ritka áru, korlátozott kapacitással blokkonként (koncepcionálisan 1MB, de SegWit súlyozással előrehaladott).
Mivel a rendszer UTXO modellt használ, egy tranzakció adatmérete a bemenetek és kimenetek bonyolultságától függ. Egy tíz kis bemenetet egy kimenetbe konszolidáló tranzakció több digitális aláírás adatot tartalmaz, mint egy egy bemenetű. Következésképpen több bájtot fogyaszt a blokkban.
A bányászok egységnyi adat után számolnak, jellemzően satoshi bájtonként (sat/vB). A „satoshi” a Bitcoin legkisebb egysége (0.00000001 BTC). Ha a jelenlegi piaci ár 50 sat/bájt, egy egyszerű tranzakció 2 dollárba kerülhet, egy bonyolult pedig 10 dollárba, még ha azonos értéket is mozgatnak.
| Tényező | Hatása a díjra | Ok |
|---|---|---|
| Bemenet szám | Növeli a díjat | Minden bemenet digitális aláírás scriptet igényel |
| Kimenet szám | Növeli a díjat | Minden kimenet hozzáad adatot az új címhez |
| Zsúfoltság | Növeli az árat | Magas kereslet növeli a sat/bájt piaci árat |
Zsúfoltság kezelése
A hálózati díjak vadul ingadoznak a kereslet alapján. Üres mempoolnál a minimum díjjal is bekerülhetsz a következő blokkba. Zsúfolt hálózatnál versenyezned kell. A tárcák általában a mempool jelenlegi torlódása alapján becslik a szükséges díjat.
Aki túl alacsony díjat állít be, a tranzakció nem vész el; egyszerűen lóg a mempoolban. Végül, ha soha nem veszi fel bányász, a node-ok memóriájából kiesik, és a pénzeszközök hatékonyan a küldő tárcájában maradnak. Sürgős esetben a felhasználók tranzakció gyorsítókat vagy „Replace-by-Fee” (RBF) protokollokat használhatnak egy elakadt tranzakció díjának emelésére, újraközvetítve magasabb ösztönzővel a bányászoknak.
Összefoglalás
A Bitcoin tranzakciók mechanikája a bizalomalapú pénzügyi rendszerektől a ellenőrzésalapú kriptográfiai rendszerek felé való eltolódást jelenti. A számlaegyenlegek UTXO modellel való felváltásával a Bitcoin az értéket digitális tulajdonlási láncként kezeli, amelyet bárki auditálhat. A nyilvános kulcsú kriptográfia biztosítja, hogy csak a privát kulcs tulajdonosa indíthassa el ezeket az átutalásokat, banki széfektől vagy személyazonosítástól független biztonságot nyújtva.
Ezt a rendszert node-ok, bányászok és a Bitcoin Script specifikus szabályainak kölcsönhatása tartja össze. A szkriptnyelv, bár szándékosan korlátozott hatókörű, biztosítja a szükséges logikát a tulajdonjog ellenőrzésére és összetett költési feltételek lehetővé tételére anélkül, hogy a hálózati stabilitást veszélyeztetné. A versenyző díjpiac és a mempool biztosítja a korlátozott blokktér hatékony kiosztását, míg a Proof of Work termodinamikus biztonságot nyújt a főkönyv megváltoztathatatlanságához.
Ezeknek a mechanikáknak a megértése feltárja, miért nevezik a Bitcoint decentralizált főkönyvnek. Nem csupán valuta, hanem szigorú, automatizált számviteli rendszer, amelyet globális konszenzus tart fenn. Minden aspektus, a kulcsok matematikájától az UTXO halmaz bemeneteiig, úgy van tervezve, hogy idegenek értékcserét végezhessenek közvetítők nélkül, megoldva a dupla költés problémát kóddal, nem pedig hatalommal.
A Bitcoin a intézményekbe vetett bizalmat kriptográfiai bizonyítékkal váltja fel, biztosítva az értékátutalás ellenőrizhetőségét, megváltoztathatatlanságát és szigorú tulajdonlását a kulcs birtokos által.