Norint suprasti Bitcoin, pirmiausia reikia atsisakyti skaitmeninių monetų, esančių virtualiame seife, idėjos. Tradiciniame bankininkystės pasaulyje pinigai apibrėžiami sąskaitų balansas. Jei turite pinigų banke, centrinė duomenų bazė šalia jūsų vardo laiko konkretų skaičių. Bitcoin veikia visiškai kitaip. Nėra fizinių monetų, nėra ir skaitmeninių failų, atstovaujančių atskiroms monetoms. Taip pat protokolo sluoksnyje nėra sąskaitų, kurios tiesiog išvardina vartotojo balansą.
Užuot tai, visa sistema remiasi sandorių istorija. Tai, ką vadiname „bitcoin“, iš esmės yra skaitmeninių parašų grandinė, atspindinti vertės perdavimo istoriją. Nuosavybė nustatoma ne laikant statinį objektą, o turint galimybę sukurti naują įrašą šioje knygoje. Kai vartotojas tikrina savo piniginės balansą, programa iš tikrųjų nuskenuoja visą blokų grandinę, kad apskaičiuotų visų nepanaudotų sandorių, prieinamų jų raktais, sumą.
Šis architektūrinis skirtumas yra esminis tam, kaip tinklas išlieka decentralizuotas. Be centrinio banko, atnaujinančio pagrindinės balansų knygos įrašus, tinklas remiasi skaidria, patikima turėjimo grandine. Kiekvienas sandoris nukreipia atgal į ankstesnį, siekdamas iki pat momento, kai monetos pirmą kartą buvo nukaldintos kalnakasio. Ši struktūra užtikrina, kad vertė negali būti sukurta iš nieko ir kad kiekvienos bitcoino dalelės istorija yra sekuama ir nekeičiama.
Nuosavybės pagrindas: viešojo rakto kriptografija
Raktų porų supratimas
Bitcoin sandorių mechanikos širdyje slypi viešojo rakto kriptografija. Ši matematikos sistema leidžia vartotojams generuoti saugią skaitmeninę tapatybę be registracijos centrinėje institucijoje. Nuosavybė apibrėžiama raktų poros valdymu: privataus rakto ir viešo rakto. Privatusis raktas yra atsitiktinai sugeneruotas paslaptis, panašus į slaptažodį, bet kur kas sudėtingesnis. Jis suteikia teisę perkelti lėšas.
Viešasis raktas matematiškai išvedamas iš privataus rakto. Jį galima laisvai dalytis nesukeliant saugumo problemų. Iš šio viešo rakto tinklas generuoja Bitcoin adresą, kuris veikia kaip lėšų paskirtis. Ši vienakryptė gatvė yra lemiama. Lengva generuoti viešąjį raktą iš privataus, bet neįmanoma apversti proceso ir išvesti privataus rakto iš viešo.
Ši asimetrija leidžia tinklui veikti be pasitikėjimo. Kai vartotojas nori gauti lėšas, jis dalinasi savo adresu. Kai nori išleisti lėšas, jis naudoja savo privatųjį raktą kriptografiškai pasirašyti pranešimui. Šis parašas įrodo, kad jie valdo privatųjį raktą, susijusį su adresu, laikantis lėšas, neatskleisdamas privataus rakto tinklui ar gavėjui.
Skaitmeninių parašų vaidmuo
Bitcoin sandoris iš esmės yra pranešimas, sakantis: „Aš perkeliu šiuos konkrečius bitcoinus į šį naują adresą.“ Norint, kad šis pranešimas būtų galiojantis, jis turi būti skaitmeniškai pasirašytas. Skaitmeninis parašas sukuriamas taikant siuntėjo privatųjį raktą sandorio duomenims. Šis procesas generuoja unikalų duomenų eilutę, specifinę tam tikram sandoriui.
Jei bet kuri sandorio detalių dalis būtų pakeista – pavyzdžiui, suma ar paskirties adresas – parašas nebepadėtų. Tai užtikrina, kad pasirašius ir išsiuntus sandorį, jį negali pakeisti trečiosios šalys. Tinklo dalyviai, arba mazgai, gali naudoti siuntėjo viešąjį raktą matematiškai patikrinti parašą.
Jei matematika sutampa, tinklas žino, kad sandoris yra teisėtas ir patvirtintas tikrojo savininko. Jei ne, sandoris iš karto atmetamas. Ši patikrinimo procedūra vyksta automatiškai tūkstančiuose kompiuterių visame pasaulyje, užtikrindama tinklą be žmogaus įsikišimo.
| Komponentas | Funkcija | Matomumas |
|---|---|---|
| Privatusis raktas | Pasirašo sandorius, kad įrodytų nuosavybę | Slaptas (tik savininkui) |
| Viešasis raktas | Tikrina parašus prieš adresą | Viešas (tinklui) |
| Adresas | Paskirtis gauti lėšas | Viešas (bet kam) |
Nepanaudotos sandorio išvesties (UTXO) modelis
Kaip Bitcoin tvarko vertę
Dauguma žmonių įpratę prie „sąskaitomis pagrįsto“ modelio, kurį naudoja bankai ir kredito kortelės. Toje sistemoje, jei turite 100 USD ir išleidžiate 20 USD, bankas tiesiog atnaujina jūsų duomenų bazės įrašą į 80 USD. Bitcoin naudoja kitokią logiką, vadinamą nepanaudotos sandorio išvesties (UTXO) modeliu. Šioje sistemoje nėra nuolatinių balansų, tik bitcoin dalys, kurios gautos, bet dar neišleistos.
Įsivaizduokite šias UTXO kaip skaitmeninius grynuosius ar aukso luitus įvairaus dydžio. Jei gaunate sandorį už 0.5 BTC ir kitą už 0.3 BTC, jūsų piniginėje laikote dvi atskiras UTXO. Jos nesusilieja į vieną 0.8 BTC „monetą“ blokų grandinėje, net jei jūsų piniginės programa rodo bendrą sumą patogumui. Jos lieka atskiros vertės įrašai, laukiantys panaudojimo.
Kai inicijuojate sandorį, jūsų piniginė atrenka pakankamai šių UTXO, kad padengtų siunčiamą sumą. Negalite padalyti UTXO per pusę be visiško jos išleidimo. Tai panašu į fizinių grynųjų veikimą. Negalite suplėšyti 20 USD banknoto, kad sumokėtumėte už 10 USD daiktą. Turite atiduoti visą banknotą ir gauti grąžą.
Įvestys, išvestys ir grąža
Kiekvienas Bitcoin sandoris susideda iš įvesčių ir išvesčių. Įvestys yra nuorodos į ankstesnes UTXO, kurias dabar leidžiate. Išvestys yra nauja vertės paskirtis. Kurdamas sandorį, vartojate esamas UTXO kaip įvestis ir kuriate naujas UTXO kaip išvestis.
Pavyzdžiui, jei kalnakasis gauna bloko atlygį 6.25 BTC, tai yra viena UTXO. Jei kalnakasis nori siųsti 1 BTC Alisai, jis negali tiesiog siųsti 1 BTC. Jis turi sukurti sandorį, kuris ima 6.25 BTC UTXO kaip įvestį. Sandoris tada turės dvi išvestis.
Pirmoji išvestis siunčia 1 BTC Alisai. Antroji išvestis siunčia likusius 5.25 BTC atgal kalnakasio adresui. Ši antroji išvestis žinoma kaip „grąžos išvestis“. Blokų grandinėje originali 6.25 BTC UTXO pažymima kaip panaudota ir nebegaliojanti ateities sandoriams. Jos vietoje sukuriamos ir įrašomos dvi naujos UTXO (1 BTC ir 5.25 BTC). Ši įvesčių ir išvesčių grandinė sukuria nepalaužiamą valiutos istoriją.
Bitcoin Script: The Language of Transactions
Stack-Based Execution
Bitcoin transactions are not just simple value transfers; they are programmable instructions. These instructions are written in a language called Bitcoin Script. Unlike complex programming languages used for general software development, Script is intentionally simple. It is "stack-based," meaning it processes data by pushing items onto a list (the stack) and performing operations on the top items.
Script is also not Turing-complete. This means it lacks the ability to create loops or complex logic that could run indefinitely. This design choice is a deliberate security feature. By limiting the complexity of the language, the network prevents infinite loops that could crash nodes or allow attackers to jam the system with computationally expensive commands.
The script dictates the conditions that must be met for a UTXO to be spent. When a transaction is created, the sender attaches a "Locking Script" (ScriptPubKey) to the output. This script essentially says, "These funds can only be moved by someone who can provide a signature matching this specific public key hash."
Unlocking and Validation
To spend those funds later, the owner creates a new transaction containing an "Unlocking Script" (ScriptSig). This script contains the digital signature and the public key. When a node validates a transaction, it runs the two scripts together. It places the unlocking script on the stack followed by the locking script from the previous transaction.
The node executes the instructions sequentially. If the final result is "True," the transaction is valid, and the funds can be moved. If the result is "False," the transaction is invalid. This mechanism allows for conditions more complex than simple ownership.
For instance, scripts can be written to require multiple signatures (Multi-Sig), where two out of three designated keys must sign before funds move. Scripts can also enforce time locks, preventing funds from being spent until a certain block height is reached. This programmability is the foundation for advanced features like the Lightning Network and sidechains, which use complex scripts to enable faster, cheaper off-chain settlements.
Sandorio gyvavimo ciklas: nuo piniginės iki blokų grandinės
Kūrimas ir siuntimas
Bitcoin sandorio kelionė prasideda vartotojo piniginės programinėje įrangoje. Piniginė surenka reikiamas įvestis iš vartotojo prieinamų UTXO ir apibrėžia išvestis. Ji apskaičiuoja skirtumą tarp įvesčių ir išvesčių, kuris tampa sandorio mokesčiu. Nustatžius detales, piniginė naudoja privatųjį raktą generuoti skaitmeninį parašą.
Šis pasirašytas duomenų paketas tada siunčiamas į tinklą. Vartotojo mazgas siunčia pranešimą savo partneriams, kurie savo ruožtu platina jį po visą pasaulį. Kiekvienas mazgas, gavęs sandorį, atlieka pradinį patikrinimą. Jie tikrina, ar skaitmeninis parašas galiojantis, ar įvestys dar nebuvo panaudotos ir ar sandorio vertės neigiamos.
Jei sandoris praeina šiuos patikrinimus, mazgas prideda jį prie savo laikino laikymo ploto, vadinamo „mempool“ (atminties baseinas). Mempool nėra singularus centrinis eiliavietis, o vietinis galiojančių, nepatvirtintų sandorių kolekcija, saugoma kiekviename mazge. Šiame etape sandoris žinomas tinklui, bet dar nėra nuolatinės blokų grandinės istorijos dalis.
Mokestis rinka ir prioritetizavimas
Kadangi blokai Bitcoin blokų grandinėje turi ribotą dydžio talpą, ne visi mempool sandoriai telpa į kitą bloką. Šis trūkumas sukuria mokesčių rinką. Kalnakasiai, kurie kuria blokus, finansiškai motyvuoti įtraukti sandorius, mokančius aukščiausią mokestį už baitą duomenų.
Mokesčiai nėra nustatomi pagal siunčiamos bitcoino vertę, o pagal sandorio duomenų dydį. Sandoris, perkelia 10 mln. USD, gali būti labai mažas duomenų dydžio, jei naudoja tik vieną įvestį ir vieną išvestį. Priešingai, sandoris už 100 USD gali būti didelis duomenų dydžio, jei renka dulkes iš penkiasdešimt mažų įvesčių mokėjimui.
Vartotojai, norintys greito patvirtinimo, privalo pridėti pakankamai konkurencingą mokestį, kad sudomintų kalnakasius. Aukšto tinklo užimtumo laikotarpiu mempool prisipildo nepatvirtintų sandorių. Kalnakasiai natūraliai renkasi aukščiausius kainotojus. Sandoriai su mažais mokesčiais gali kabėti mempool valandas ar dienas, kol eismas sumažės ar siuntėjas padidins mokestį.
Kasyba ir sutarimas
Kalnakasiai atlieka galutinį vaidmenį stiprinant sandorių mechaniką. Kalnakasis atrenka sandorių paketą iš savo mempool, kad sudarytų kandidato bloką. Tada jie įsitraukia į Darbo įrodimo (PoW) procesą, skaičiavimu intensyvų procesą, kur konkuruoja sprendžiant matematinę užduotį pagal bloko duomenis.
Šis procesas reikalauja bloko antraštės maišavimo su atsitiktiniu skaičiumi, vadinamu nonce, kol gaunamas maiša žemiau specifinio taikinio sunkumo. Sunkumas automatiškai reguliuojamas kas 2 016 blokų, kad nauji blokai būtų randami maždaug kas 10 minučių, nepaisant prisijungusios skaičiavimo galios kiekio.
Radęs galiojantį sprendimą, kalnakasis siunčia naują bloką tinklui. Kiti mazgai gauna bloką ir tikrina sprendimą. Jie taip pat iš naujo tikrina kiekvieną bloke įtrauktą sandorį, kad užtikrintų, jog nepažeistos taisyklės. Patvirtinus, mazgai atnaujina savo vietinę blokų grandinės kopiją, pašalindami įtrauktus sandorius iš mempool. Sandoris dabar patvirtintas.
Dvigubo išleidimo problemos sprendimas
Skaitmeninio dubliavimo iššūkis
Skaitmeninėje srityje informacija lengvai kopijuojama. Jei siunčiate nuotrauką el. paštu, vis dar išlaikote originalų failą. Skaitmeninei valiutai tai kelia kritinį pažeidžiamumą, vadinamą dvigubo išleidimo problema. Be mechanizmo tai užkirsti, piktybiškas subjektas galėtų pasirašyti sandorį, siunčiantį 1 BTC prekeiviui, ir tuo pačiu pasirašyti kitą sandorį, siunčiantį tą patį 1 BTC sau ar kitai šaliai.
Centralizuotoje sistemoje bankas to užkerta kelia, palaikydamas pagrindinę knygą. Decentralizuotame tinkle nėra centrinės institucijos, kuri pasakytų, kuris sandoris pirmas. Bitcoin tai išsprendžia derindamas viešą blokų grandinės knygą ir Darbo įrodimą.
Kadangi kiekvienas pilnas mazgas palaiko pilną blokų grandinės kopiją, visas tinklas turi sutarimą, kurios UTXO šiuo metu galiojančios. Jei vartotojas bando siųsti du prieštaringus sandorius, mazgai priims pirmąjį, kurį pamatys, ir atmes antrąjį kaip bandymą panaudoti jau nurodytas įvestis.
Negrįžtamumas per darbo įrodimą
Tačiau laiko skirtumai galėtų lemti, kad skirtingi mazgai laikinai priimtų skirtingas tiesos versijas. Čia kasyba tampa lemiama. „Tiesa“ Bitcoin apibrėžiama ilgiausia grandine su didžiausiu sukauptu Darbo įrodymu. Įtrauktas į bloką sandoris tampa šios oficialios istorijos dalimi.
Norint apversti ar dvigubai išleisti jau patvirtintą sandorį bloke, puolėjui reikėtų perkalti tą bloką ir visus sekančius blokus greičiau nei visas likęs tinklas kartu. Tai žinoma kaip 51 % ataka. Milžiniškos energijos ir aparatinės įrangos išlaidos, reikalingos tai pasiekti, daro knygą praktiškai nekeičiamą.
Kuomet pridedama daugiau blokų virš bloko su konkrečiu sandoriu, saugumas auga eksponentiškai. Sandoris su vienu patvirtinimu paprastai saugus, bet su šešiais patvirtinimais laikomas matematiškai neįmanomu apversti normaliomis tinklo sąlygomis. Šis mechanizmas paverčia skaitmeninius duomenis, paprastai lengvai kopijuojamus, unikaliu, ribotu skaitmeniniu turtu.
Mazgų vaidmuo tinklo vientisumui
Patikrinimas prieš kasybą
Yra paplitęs klaidingas supratimas, kad tik kalnakasiai saugo tinklą. Nors kalnakasiai rūšiuoja sandorius ir kuria blokus, „mazgai“ yra auditoriai, vykdantys taisykles. Mazgas yra bet koks kompiuteris, vykdantis Bitcoin programinę įrangą, saugantis blokų grandinę ir tikrinantis srautą.
Pilni mazgai atsisiunčia kiekvieną bloką ir sandorį. Jie tikrina skaitmeninius parašus, patikrina, ar įvesčių sumos dengia išvesčių sumas, ir užtikrina, kad monetos nebūtų dvigubai leidžiamos. Svarbu, kad mazgai taip pat tikrina kalnakasių atliktą darbą. Jei kalnakasis sukuria bloką, pažeidžiantį protokolo taisykles – pavyzdžiui, prisikirsdamas per daug bitcoino ar įtraukdamas negaliojantį sandorį – mazgai iš karto atmeta bloką.
Šis atmetimas vyksta nepaisant to, kiek energijos kalnakasis išleido kuriant bloką. Ši galios pusiausvyra užtikrina, kad kalnakasiai negali keisti sistemos taisyklių ar spausdinti papildomų pinigų. Jie yra protokolo tarnai, kontroliuojami decentralizuoto mazgų tinklo, valdomo individų ir įmonių visame pasaulyje.
Decentralizacija ir patikimumas
Bitcoin sandorių mechanikos tvirtumas remiasi šių mazgų įvairove ir skaičiumi. Kuo labiau išsidėstę mazgai, tuo sunkiau bet kokiai subjektyvi censoruoti sandorius ar uždaryti tinklą. Mazgai bendrauja peer-to-peer, platindami sandorių duomenis kaip gandą, plintantį per minią.
Nėra centrinio serverio, kurį būtų galima nulaužti. Jei interneto dalis išsijungia, likę mazgai toliau veikia. Grįžus atjungtiems mazgams, jie sinchronizuojasi su tinklu, atsisiųsdami praleistą istoriją. Ši architektūra užtikrina, kad knyga lieka nuosekli ir prieinama globaliai, 24/7, be prastovų.
Vartotojai gali vykdyti savo mazgus, kad įgytų finansinę suverenitetą. Tikrindami savo sandorius patys, o ne remdamiesi trečiosios šalies piniginės paslauga, jie pašalina poreikį pasitikėti kuo nors kitu dėl savo finansų būklės. Tai atitinka Bitcoin pagrindinę etiką: „Nepasitikėk, tikrink.“
Tinklo mokesčiai ir duomenų svoris
Išlaidų skaičiavimas
Bitcoin sandorio kaina dažnai nesuprasta. Tai nėra procentas nuo siunčiamos sumos, kaip kredito kortelės apdorojimo mokestis. Užuot tai, tai griežtai mokestis už bloko erdvę. Bloko erdvė yra retas turtas, ribotas specifine talpa per bloką (konceptuali 1MB, patobulinta SegWit svorio sistema).
Kadangi sistema naudoja UTXO modelį, sandorio duomenų dydis priklauso nuo jo įvesčių ir išvesčių sudėtingumo. Sandoris, sujungiantis dešimt mažų įvesčių į vieną išvestį, turi daugiau skaitmeninio parašo duomenų nei sandoris su viena įvesčia. Todėl jis suvartoja daugiau baitų bloke.
Kalnakasiai ima mokestį už duomenų vienetą, paprastai matuojamą satoshi už baitą (sat/vB). „Satoshi“ yra mažiausias Bitcoin vienetas (0.00000001 BTC). Jei dabartinė rinkos kaina yra 50 sat/baitą, paprastas sandoris gali kainuoti 2 USD, o sudėtingas – 10 USD, net jei jie perkelia tą pačią vertę.
| Veiksniai | Įtaka mokestis | Priežastis |
|---|---|---|
| Įvesčių skaičius | Didina mokestį | Kiekviena įvestis reikalauja skaitmeninio parašo scripto |
| Išvesčių skaičius | Didina mokestį | Kiekviena išvestis prideda duomenis naujam adresui |
| Užimtumas | Didina kainą | Didelė paklausa kelia sat/baito rinkos kainą |
Užimtumo valdymas
Tinklo mokesčiai stipriai svyruoja pagal paklausą. Kai mempool tuščias, vartotojai gali mokėti minimalų mokestį ir vis tiek būti patvirtinti kitame bloke. Kai tinklas užimtas, vartotojai konkuruoja. Piniginės paprastai įvertina reikiamą mokestį žiūrėdamos į dabartinį mempool užsikimšimą.
Vartotojams, nustatantiems per mažą mokestį, sandoris nepamestas; jis tiesiog kabo mempool. Galiausiai, jei niekada nepaėmamas kalnakasio, jis bus pašalintas iš mazgų atminties, o lėšos faktiškai liks siuntėjo piniginėje. Skubiais atvejais vartotojai gali naudoti sandorio pagreitintojus ar „Replace-by-Fee“ (RBF) protokolus, kad padidintų įstrigusio sandorio mokestį, efektyviai išsiųsdami jį su didesne paskata kalnakasiams.
Išvada
Bitcoin sandorių mechanika reiškia perėjimą nuo pasitikėjimu pagrįstų finansinių sistemų prie patikrinimu pagrįstų kriptografinių sistemų. Pakeisdamas sąskaitų balansas UTXO modeliu, Bitcoin vertę traktuoja kaip skaitmeninio turėjimo grandinę, kurią gali tikrinti bet kas. Viešojo rakto kriptografija užtikrina, kad tik privataus rakto savininkas gali inicijuoti šiuos perkėlimus, suteikdamas saugumo lygį, nereikalaujantį banko seifų ar tapatybės patikrinimų.
Ši sistema sutvirtinama mazgų, kalnakasių ir konkrečių Bitcoin Script taisyklių sąveika. Scenarijų kalba, nors tyčia ribota apimtimis, suteikia reikiamą logiką nuosavybės patikrinimui ir sudėtingoms išleidimo sąlygoms be tinklo stabilumo kompromiso. Konkurencinė mokesčių rinka ir mempool užtikrina, kad ribotas bloko erdvės išteklius būtų paskirstytas efektyviai, o Darbo įrodimas suteikia termodinaminį saugumą, darantį knygą nekeičiamą.
Supratimas šių mechanikų paaiškina, kodėl Bitcoin vadinamas decentralizuota knyga. Tai ne tik valiuta, bet griežta, automatizuota apskaitos sistema, palaikoma globaliu sutarimu. Kiekvienas aspektas, nuo raktų matematikos iki UTXO rinkinio įvesčių, sukurtas leisti nepažįstamiems keisti vertę be tarpininkų, sprendžiant dvigubo išleidimo problemą kodu, o ne autoritetu.
Bitcoin pakeičia pasitikėjimą institucijomis kriptografiniu įrodymu, užtikrindamas, kad vertės perdavimas būtų patikrintas, nekeičiamas ir griežtai priklausantis rakto turėtojui.