Bitcoini mõistmiseks tuleb esmalt loobuda digitaalsete müntide ideest, mis istuvad virtuaalses seifis. Traditsioonilises pangandusmaailmas defineeritakse raha kontojääkidega. Kui teil on pangas raha, hoiab keskandmebaas teie nime kõrval konkreetset numbrit. Bitcoin toimib täiesti teisiti. Pole füüsilisi müntide, ega ka digifaile, mis esindavad individuaalseid müntide. Protokolli kihis pole ka kontosid, mis lihtsalt loetlevad kasutaja jääki.
Selle asemel tugineb kogu süsteem tehingute ajaloole. See, mida me nimetame "bitcoiniks", on sisuliselt digitaalsete allkirjade ahel, mis peegeldab väärtuse ülekande ajalugu. Omand on kindlaks tehtud mitte staatilise objekti hoidmisega, vaid võimega luua sellesse pearaamatusse uus kirje. Kui kasutaja kontrollib oma rahakoti jääki, skaneerib tarkvara tegelikult kogu plokiahelat, et arvutada kõigi nende võtmete kaudu kättesaadavate kulutamata tehingute summa.
See arhitektuurne erinevus on fundamentaalne sellele, kuidas võrk jääb detsentraliseerituks. Ilma keskse pangata, kes uuendaks jääkide pearaamatut, tugineb võrk läbipaistvale ja kontrollitavale omandi ahelale. Iga tehing viitab tagasi eelmisele, ühendades kuni hetkeni, mil mündid said esmakordselt kaevurilt vermitud. See struktuur tagab, et väärtust ei saa luua õhust ja et iga bitcoin'i murdosa ajalugu on jälgitav ja muutmatu.
Omandi alus: avaliku võtme krüptograafia
Võtme paaride mõistmine
Bitcoini tehingute mehhanismide südames peitub avaliku võtme krüptograafia. See matemaatiline raamistik võimaldab kasutajatel luua kindla digitaalse identiteedi ilma keskse ametiga registreerumata. Omand defineeritakse võtme paari omamisega: privaatvõti ja avalik võti. Privaatvõti on juhuslikult genereeritud saladus, sarnane parooliga, kuid palju keerukam. See annab volituse raha liigutamiseks.
Avalik võti tuletatakse matemaatiliselt privaatvõtmest. Seda saab avameelselt jagada ilma turvalisust ohustamata. Sellest avalikust võtmest genereerib võrk Bitcoin'i aadressi, mis toimib rahaliste vahendite sihtkohana. See ühesuunaline tänav on kriitiline. Avalikku võtit saab privaatvõtmest kergesti genereerida, kuid protsessi ei saa pöörata ja privaatvõtit avalikust võtmest tuletada.
See asümmeetria võimaldab võrgul toimida ilma usalduseta. Kui kasutaja soovib vahendeid vastu võtta, jagab ta oma aadressi. Kui soovib vahendeid kulutada, kasutab ta oma privaatvõtit, et krüptograafiliselt allkirjastada sõnumi. See allkiri tõestab, et nad omavad aadressiga seotud privaatvõtit, ilma et kunagi privaatvõtit võrgule või saajale avaldaksid.
Digitaalsete allkirjade roll
Bitcoin'i tehing on sisuliselt sõnum, mis ütleb: "Ma liigutan need konkreetsed bitcoinid sellele uuele aadressile." Selle sõnumi kehtivaks tegemiseks peab see olema digitaalselt allkirjastatud. Digitaalne allkiri luuakse saatja privaatvõtme rakendamisel tehingu andmetele. See protsess genereerib unikaalse andmerida, mis on spetsiifiline sellele täpsele tehingule.
Kui tehingu detailid muudetaks—näiteks summa või sihtaadressi—ei sobiks allkiri enam. See tagab, et kord allkirjastatud ja levitatud tehingut ei saa kolmandad osapooled muuta. Võrgu osalejad ehk sõlmed saavad saatja avalikku võtit kasutades allkirja matemaatiliselt kontrollida.
Kui matemaatika klapib, teab võrk, et tehing on legitiimne ja autoriseeritud tõelise omaniku poolt. Kui mitte, lükatakse tehing kohe tagasi. See kontroll toimub automaatselt tuhandete arvutite üle maailma, tagades võrgu ilma inimese sekkumiseta.
| Komponent | Funktsioon | Nähtavus |
|---|---|---|
| Privaatvõti | Allkirjastab tehinguid omandi tõendamiseks | Salajane (ainult omanik) |
| Avalik võti | Kontrollib allkirju aadressi vastu | Avalik (võrk) |
| Aadress | Vahendite vastuvõtu sihtkoht | Avalik (kõigile) |
Kulutamata tehingu väljund (UTXO) mudel
Kuidas Bitcoin väärtust käsitleb
Enamik inimesi on harjunud pankade ja krediitkartide poolt kasutatava "kontopõhise" mudeliga. Selles süsteemis, kui teil on 100 dollarit ja kulutate 20 dollarit, lihtsalt uuendab pank teie andmebaasi kirjet 80 dollariks. Bitcoin kasutab teistsugust loogikat, mida nimetatakse kulutamata tehingu väljundi (UTXO) mudeliks. Selles süsteemis pole püsivaid jääke, vaid bitcoin'i tükid, mis on saadud, kuid veel kulutamata.
Kujutage neid UTXO-sid ette digitaalse sularaha või kulla nugetitena erineva suurusega. Kui saate tehingu 0,5 BTC ja teise 0,3 BTC eest, hoiate oma rahakotis kahte erinevat UTXO-d. Nad ei ühine plokiahelal üheks 0,8 BTC "mündiks", isegi kui teie rahakoti tarkvara kuvab mugavuse huvides kogusumma. Nad jäävad eraldi väärtuse kirjeteks, oodates kasutamist.
Kui algatate tehingu, valib teie rahakott piisavalt neid UTXO-sid, et katta summa, mida soovite saata. Te ei saa UTXO-d pooleks murda ilma seda täielikult kulutamata. See on sarnane füüsilise sularahaga. Te ei saa 20-dollarist arvet rebida, et maksta 10-dollarise eest. Peate andma üle kogu arve ja saama tagasi omausku.
Sisendid, väljundid ja tagasimakse
Iga Bitcoin'i tehing koosneb sisenditest ja väljunditest. Sisendid on viited eelmistele UTXO-dele, mida nüüd kulutate. Väljundid on uued sihtkohad sellele väärtusele. Kui konstrueerite tehingut, tarbite olemasolevaid UTXO-sid sisenditena ja loote uusi UTXO-sid väljunditena.
Näiteks, kui kaevur saab blokipreemia 6,25 BTC, on see üksik UTXO. Kui kaevur soovib saata 1 BTC Alice'ile, ei saa ta lihtsalt saata 1 BTC. Ta peab konstrueerima tehingu, mis võtab 6,25 BTC UTXO sisendina. Tehingul on siis kaks väljundit.
Esimene väljund saadab 1 BTC Alice'ile. Teine väljund saadab ülejäänud 5,25 BTC tagasi kaevuri enda aadressile. See teine väljund on tuntud kui "tagasimakse väljund". Plokiahelal märgitakse originaalne 6,25 BTC UTXO kulutatuks ja see pole enam tulevaste tehingute jaoks kehtiv. Selle asemel luuakse ja registreeritakse kaks uut UTXO-d (1 BTC ja 5,25 BTC). See sisendite ja väljundite ahel loob valuuta murdmatu ajaloost.
Bitcoin Script: tehingute keel
Pinu-põhine täitmine
Bitcoin'i tehingud pole lihtsalt väärtuse ülekanded; need on programmeeritavad juhised. Need juhised on kirjutatud keeles nimega Bitcoin Script. Erinevalt keerukatest programmeerimiskeeltest, mida kasutatakse üldise tarkvara arendamiseks, on Script tahtlikult lihtne. See on "pinu-põhine", mis tähendab, et see töötleb andmeid, surudes neid nimekirja (pinu) ja teostades operatsioone ülemistele elementidele.
Script pole ka Turingi-täielik. See tähendab, et tal puudub võime luua silmuseid või keerulist loogikat, mis võiks lõpmatult käia. See disainivalik on tahtlik turvafunktsioon. Keeldu keerukuse piiramisel väldib võrk lõpmatuid silmuseid, mis võiksid sõlmi kokku krahhida või lubada ründajatel süsteemi ummistada arvutuslikult kulukate käskudega.
Script dikteerib tingimused, mis peavad täituma UTXO kulutamiseks. Kui tehing luuakse, kinnitab saatja väljundile "lukustus-skripti" (ScriptPubKey). See skript ütleb sisuliselt: "Neid vahendeid saab liigutada ainult keegi, kes saab pakkuda allkirja, mis sobib selle konkreetse avaliku võtme hash'iga."
Vabastamine ja kontroll
Neid vahendeid hilisemaks kulutamiseks loob omanik uue tehingu, mis sisaldab "vabastus-skripti" (ScriptSig). See skript sisaldab digitaalset allkirja ja avalikku võtit. Kui sõlm valideerib tehingut, käivitab ta kaks skripti koos. Ta asetab vabastusskripti pinusse, järgneb lukustusskript eelmisest tehingust.
Sõlm täidab juhiseid järjekorras. Kui lõpptulemus on "Tõene", on tehing kehtiv ja vahendid saab liigutada. Kui tulemus on " Väär", on tehing kehtetu. See mehhanism võimaldab tingimusi keerukamaid kui lihtne omand.
Näiteks saab skripte kirjutada mitme allkirja nõudmiseks (Multi-Sig), kus kolmest määratud võtmest peavad kaks allkirjastama, enne kui vahendid liiguvad. Skriptid saavad ka kehtestada ajaplokkid, takistades vahendite kulutamist kuni teatud bloki kõrguseni. See programmeeritavus on aluseks edasistele funktsioonidele nagu Lightning Network ja külgketid, mis kasutavad keerulisi skripte kiiremaks ja odavamateks off-chain settlemisteks.
Tehingu elutsükkel: rahakotist plokiahelasse
Loomine ja levitamine
Bitcoin'i tehingu teekond algab kasutaja rahakoti tarkvaras. Rahakott kogub vajalikud sisendid kasutaja saadaval olevatest UTXO-dest ja defineerib väljundid. See arvutab sisendite ja väljundite vahe, mis saab tehingutasuks. Kui detailid on seatud, kasutab rahakott privaatvõtit digitaalse allkirja genereerimiseks.
See allkirjastatud andmepakett levitatakse siis võrgule. Kasutaja sõlm saadab sõnumi oma eakaaslastele, kes omakorda levitavad seda üle maailma. Iga sõlm, kes tehingu saab, teostab esialgse kontrolli. Nad kontrollivad, kas digitaalallkiri on kehtiv, kas sisendid pole juba kulutatud ja kas tehingu väärtused on mittenegatiivsed.
Kui tehing läbib need kontrollid, lisab sõlm selle ajutisse hoiuala nimega "mempool" (mälupool). Mempool pole ühtne keskne järjekord, vaid iga individuaalse sõlme kohalik kogum kehtivatest, kinnitamata tehingutest. Selles etapis on tehing võrgule tuntud, kuid veel mitte püsiva plokiahela ajaloosa.
Tasutasude turg ja prioriteetsus
Kuna Bitcoin'i plokiahela blokkidel on piiratud suurusmahtuvus, ei mahu iga mempooli tehing järgmisse blokki. See nappus loob tasutasude turu. Kaevurid, kes blokke konstrueerivad, on finantsiliselt motiveeritud lisama tehinguid, mis maksavad kõrgeimat tasu baiti kohta.
Tasud ei määrata saadetava bitcoin'i väärtusest, vaid tehingu andmesuurusest. Tehing, mis liigutab 10 miljonit dollarit, võib olla andmesuuruselt väga väike, kui kasutab ühte sisendit ja ühte väljundit. Vastupidi, 100-dollarit liigutav tehing võib olla andmesuuruselt suur, kui kogub tolmust viiekümne väikese sisendiga makse tegemiseks.
Kasutajad, kes soovivad kiiret kinnitust, peavad lisama tasu, mis on piisavalt konkurentsivõimeline kaevureid meelitama. Kõrge võrgu ummikuse ajal täitub mempool kinnitamata tehingutega. Kaevurid valivad loomulikult kõrgeimaid pakkumisi. Madalate tasudega tehingud võivad mempoolis istuda tunde või päevi, kuni liiklus väheneb või saatja tasu tõstab.
Kaevandamine ja konsensus
Kaevurid mängivad lõpptööd tehingute mehhanismide kindlakstegemisel. Kaevur valib oma mempoolist tehingute paketi kandidaatbloki moodustamiseks. Siis osalevad nad Töö tõenduses (PoW), arvutuslikult intensiivses protsessis, kus nad võistlevad matemaatilise pusle lahendamiseks selle bloki andmete põhjal.
See protsess nõuab bloki päise korduvat hash'imist juhusliku numbri nimega nonce, kuni tulemhash langeb alla konkreetse sihtmärgi raskuse. Raskus reguleeritakse automaatselt iga 2016 bloki järel, et uusi blokke leita umbes iga 10 minuti järel, sõltumata sellest, kui palju arvutusvõimsust liitub.
Kui kaevur leiab kehtiva lahenduse, levitab ta uut bloki võrgule. Teised sõlmed saavad bloki ja kontrollivad lahendust. Nad kontrollivad uuesti iga bloki tehingut, et tagada reeglite rikkumise puudumine. Pärast valideerimist uuendavad sõlmed oma kohalikku plokiahela koopia, eemaldades kaasatud tehingud mempoolist. Tehing on nüüd kinnitatud.
Topeltkulutamise probleemi lahendamine
Digitaalse duplikeerimise väljakutse
Digitaalses maailmas on info kergesti kopeeritav. Kui saadate foto e-kirjaga, säilitate originaali. Digitaalse valuuta jaoks kujutab see kriitilist haavatavust nimega topeltkulutamise probleem. Ilma mehhanismita selle vältimiseks saaks pahatahtlik osapool allkirjastada tehingu 1 BTC saatmiseks kaupmehele ja samaaegselt allkirjastada teise tehingu sama 1 BTC saatmiseks endale või teisele osapoolele.
Kesksetatud süsteemis väldib pank seda pearaamatu hoidmisega. Detsentraliseeritud võrgus pole keskset ametit, kes ütleb, milline tehing tuli esimene. Bitcoin lahendab selle avaliku plokiahela pearaamatu ja Töö tõenduse kombinatsiooniga.
Kuna iga täissõlm hoiab täielikku plokiahela koopia, on kogu võrgul konsensus, millised UTXO-d on praegu kehtivad. Kui kasutaja proovib levitada kahte vastuolulist tehingut, aktsepteerivad sõlmed esimest, mida näevad, ja lükkavad teise tagasi kui juba viidatud sisendite kulutamise katse.
Tagasipöördumatus Töö tõenduse kaudu
Siiski võivad ajastusvahed viia erinevad sõlmed ajutiselt aktsepteerima erinevaid tõejärgseid. Siin saab kaevandamisest otsustav. "Tõde" Bitcoin'is defineeritakse kõige pikema ahela poolt, millel on enim kogutud Töö tõendust. Kui tehing on bloki sees, saab sellest ametliku ajaloosa osa.
Et tagasi pöörata või topeltkulutada juba bloki kinnitatud tehingut, peaks ründaja uuesti kaevandama selle bloki ja kõik järgnevad blokid kiiremini kui ülejäänud võrk kokku. See on tuntud kui 51%-ne rünnak. Bloki loomiseks vajalik tohutu energia ja riistvara maksumus muudab pearaamatu praktiliselt muutumatuks.
Mida rohkem blokke lisatakse konkreetse tehinguga bloki peale, seda eksponentsiaalselt kasvab turvalisus. Ühe kinnitusega tehing on üldiselt turvaline, kuid kuue kinnitusega peetakse matemaatiliselt võimatuks tagasi pöörata normaalsetes võrgu tingimustes. See mehhanism muudab digitaalsed andmed, mis on tavaliselt kergesti kopeeritavad, unikaalseks, piiratud digitaalseks varaks.
Sõlmede roll võrgu terviklikkuses
Valideerimine vs. kaevandamine
On levinud eksiarvamus, et ainult kaevurid kaitsevad võrku. Kuigi kaevurid järjestavad tehinguid ja toodavad blokke, on „sõlmed“ audiitorid, kes jõustavad reegleid. Sõlm on mis tahes arvuti, mis käivitab Bitcoin tarkvara, säilitab plokiahela ja valideerib liiklust.
Täissõlmed laadivad alla iga bloki ja tehingu. Nad kontrollivad digitaalseid allkirjeid, veenduvad, et sisendi summad katavad väljundite summasid, ning tagavad, et münte ei kulutata kahekordselt. Oluline on see, et sõlmed kontrollivad ka kaevurite tehtud tööd. Kui kaevur toodab bloki, mis rikub ühtegi protokolli reeglit – näiteks omistab endale liiga palju bitcoini või sisaldab sobimatut tehingut –, lükkavad sõlmed bloki kohe tagasi.
See tagasilükkamine toimub olenemata sellest, kui palju energiat kaevur bloki loomiseks kulutas. See võimude tasakaal tagab, et kaevurid ei saa süsteemi reegleid muuta ega lisaraha trükkida. Nad on protokolli teenijad, keda hoitakse kontrolli all üle maailma eraisikute ja ettevõtete juhitud detsentraliseeritud sõlmede võrgu poolt.
Detsentraliseeritus ja usaldusväärsus
Bitcoini tehingute mehhanismide vastupidavus tugineb nende sõlmede mitmekesisusele ja arvule. Mida enam sõlmed on hajutatud, seda raskem on ükskõik millisel üksusel tehinguid tsenseerida või võrgu välja lülitada. Sõlmed suhtlevad peer-to-peer, levitades tehingute andmeid nagu kuuldus rahvahulgas levima hakkab.
Pole keskserversit, mida häkitada. Kui interneti osa läheb offline'i, jätkavad ülejäänud sõlmed töötamist. Kui ühendamata sõlmed naasevad, sünkroonivad nad end võrguga, et alla laadida puuduv ajalugu. See arhitektuur tagab, et pearaamat püsib järjepidev ja üle maailma kättesaadav 24/7 ilma katkestusteta.
Kasutajad saavad oma sõlmi käitada finantsilise suveräänsuse saamiseks. Verifitseerides oma tehinguid ise kolmanda osapoole rahakoti teenusele tuginedes mitte, kaotavad nad vajaduse usaldada kedagi muud oma finantside seisundi osas. See vastab Bitcoini tuumik-eetosele: „Ära usalda, veendu.“
Võrgu tasud ja andmakaal
Kulude arvutamine
Bitcoin'i tehingu maksumus on sageli arusaamatuks aetud. See pole saadetava summa protsent, nagu krediitkaardi töötlemistasu. Selle asemel on see range makse bloka ruumi eest. Bloka ruum on napp ressurss, piiratud konkreetse mahutavusega bloki kohta (kontseptuaalselt 1MB, kuigi SegWit kaalutlusega edasiliikunud).
Kuna süsteem kasutab UTXO mudelit, sõltub tehingu andmesuurus sisendite ja väljundite keerukusest. Tehing, mis konsolideerib kümme väikest sisendit ühte väljundisse, sisaldab rohkem digitaalallkirja andmeid kui tehing ühe sisendiga. Seetõttu tarbib see bloki rohkem baiti.
Kaevurid arvutavad ühiku andmete eest, tavaliselt satoshite baiti kohta (sat/vB). "Satoshi" on Bitcoin'i väikseim ühik (0,00000001 BTC). Kui praegune turuhind on 50 sat/baidi, võib lihtne tehing maksta 2 dollarit, keeruline aga 10 dollarit, isegi kui nad liigutavad sama väärtust.
| Tegur | Mõju tasule | Põhjus |
|---|---|---|
| Sisendite arv | Suurendab tasu | Iga sisend vajab digitaalallkirja skripti |
| Väljundite arv | Suurendab tasu | Iga väljund lisab andmeid uuele aadressile |
| Ummikus | Suurendab hinda | Kõrge nõudlus ajab sat/baidi turuhinda üles |
Ummiku haldamine
Võrgu tasud kõikuvad nõudluse põhjal hullumeelselt. Kui mempool on tühi, saavad kasutajad maksta minimaalse tasu ja ikka järgmisesse blokki kinnitatud saada. Kui võrk on hõivatud, peavad kasutajad võistlema. Rahakotid hindavad tavaliselt vajalikku tasu, vaadates mempooli praegust järjekorda.
Kasutajatele, kes seavad liiga madala tasu, tehing ei lähe kaduma; see lihtsalt ripub mempoolis. Lõpuks, kui kaevur seda kunagi ei korja, visatakse see sõlmede mälust välja ja vahendid jäävad sisuliselt saatja rahakotti. Kiiretes olukordades saavad kasutajad kasutada tehingu kiirendajaid või "Replace-by-Fee" (RBF) protokolle, et tõsta kinni jäänud tehingu tasu, levitades seda uuesti kõrgema stiimuliga kaevuritele.
Järeldus
Bitcoin'i tehingute mehhanismid esindavad üleminekut usalduspõhistelt finantssüsteemidelt verifitseerimispõhistele krüptograafilistele süsteemidele. Asendades kontojäägid UTXO mudeliga, käsitleb Bitcoin väärtust digitaalse omandi ahelana, mida saab kontrollida igaüks. Avaliku võtme krüptograafia tagab, et ainult privaatvõtme omanik saab neid ülekandeid algatada, pakkudes turvalisust, mis ei tugine pankade seifidele ega identiteedikontrollidele.
See süsteem hoitakse koos sõlmede, kaevurite ja Bitcoin Script'i konkreetsete reeglite vahelise koosmõjuga. Skriptikeel, kuigi tahtlikult piiratud ulatusega, pakub vajalikku loogikat omandi valideerimiseks ja keeruliste kulutustingimuste võimaldamiseks ilma võrgu stabiilsust ohustamata. Konkurentsiline tasutasude turg ja mempool tagavad, et piiratud bloka ruumi ressurss jaotatakse efektiivselt, samas kui Töö tõendus pakub termodünaamilist turvalisust, mis muudab pearaamatu muutumatuks.
Nende mehhanismide mõistmine paljastab, miks Bitcoin'it kirjeldatakse detsentraliseeritud pearaamatuna. See pole pelgalt valuuta, vaid range, automatiseeritud raamatupidamisüsteem, mida hoiab ülemaailmne konsensus. Iga aspekt, alates võtmete matemaatikast kuni UTXO komplekti sisendit, on loodud selleks, et võõrad saaksid vahetada väärtust ilma vahendajate, lahendades topeltkulutamise probleemi koodi asemel autoriteediga.
Bitcoin asendab institutsioonide usaldust krüptograafilise tõendusega, tagades väärtuse ülekande verifitseerimise, muutumatuse ja range omandi võtmehoidjal.