Bitcoin tinklo architektūra: mazgų vaidmuo sistemos validacijoje ir perdavime

Bitcoin pamatas veikia be centrinio serverio ar administratoriaus. Užuot viena subjektas valdytų sąskaitų knygą, tinklas remiasi paskirstyta kompiuterių sistema, vadinama mazgais. Šie dalyviai savanoriškai paleidžia Bitcoin programinę įrangą, kad palaikytų tinklo vientisumą. Jie veikia kaip sistemos arbitrų, vykdydami protokolo taisykles be leidimo ar koordinacijos iš centrinės valdžios. Ši architektūra sukuria tinklelio tinklą, kur informacija plinta iš bendraamžio į bendraamžį, užtikrindama, kad sistema liktų atspari cenzūrai ir vieniems gedimo taškams.

Kiekvienas šios sistemos dalyvis turi tam tikrą galios lygį. Kai įvyksta sandoris, jis nėra siunčiamas į banką patvirtinimui. Jis transliuojamas šiems mazgams, kurie savarankiškai patikrina duomenis prieš savo sąskaitų knygos kopiją. Šis dubliavimas yra tyčinis. Jis užtikrina, kad net jei didelės tinklo dalys nutrauktų veiklą ar bandytų veikti piktybiškai, likę sąžiningi mazgai toliau palaikytų teisingą sandorių istorijos versiją. Šių mazgų kolektyvinis susitarimas sudaro „tiesą“ apie tai, kas ką turi bet kuriuo metu.

Bitcoin architektūros supratimas reikalauja gilaus panirimo į tai, kaip šie mazgai veikia, bendrauja ir pasiekia konsensusą. Tai apima sandorio gyvavimo ciklo tyrimą nuo momento, kai jis skaitmeniniu būdu pasirašomas, iki momento, kai jis amžiams įrašomas į blokų grandinę kalnakario. Ši validacijos ir perdavimo sistema paverčia skaitmeninę informaciją retu, perkeliamu turtu, veikiančiu kaip pinigai.

Bitcoin mazgo pagrindinis apibrėžimas ir funkcija

Programinės įrangos ir dalyvavimo apibrėžimas

Bitcoin mazgas yra tiesiog kompiuteris, paleidžiantis Bitcoin programinę įrangą ir jungiantis prie kitų tinklo kompiuterių. Populiariausia šios programinės įrangos realizacija yra Bitcoin Core. Kai vartotojas įdiegia ir paleidžia šį klientą, jų mašina prisijungia prie globalaus bendraamžių tinklo. Mazgo pagrindinė funkcija yra validuoti sandorius ir blokus. Jis veikia kaip nepriklausomas auditorių, tikrinantis kiekvieną gautą duomenų dalį pagal griežtas Bitcoin protokolo taisykles. Jei sandoris pažeidžia taisyklę, pavyzdžiui, bandant išleisti neegzistuojančias monetas, mazgas jį nedelsiant atmeta.

Bendraamžių-tarpusavyje tinklelio tinklas

Mazgai jungiasi vienas prie kito tinklelio topologijoje. Nėra hierarchijos, kur vienas mazgas būtų svarbesnis už kitą validacijos požiūriu. Kai mazgas gauna naują informaciją, pvz., naują sandorį ar bloką, jis perduoda tą informaciją bendraamžiams, prie kurių yra prisijungęs. Tai sukuria gandų protokolą, kur duomenys per kelias sekundes pasklinda po pasaulį. Ši struktūra užtikrina tinklo atsparumą. Jei vienas mazgas išsijungia, tinklas toliau veikia sklandžiai, nes sąskaitų knyga yra dubliuojama tūkstančiuose kitų mašinų.

Autonomija ir pasitikėjimo nereikalavimas

Svarbiausias mazgo paleidimo aspektas yra autonomija. Vartotojas, paleidžiantis savo mazgą, nereikia pasitikėti banku, svetaine ar net kitais kalnakariais, pasakojančiais jų balansą. Jie patikrina tai patys skenuodami blokų grandinės istoriją, saugomą jų vietiniame diske. Ši galimybė dažnai vadinama „souverenitetu“ kripto erdvėje. Pašalindami priklausomybę nuo trečiųjų šalių, mazgai vykdo sistemos pasitikėjimo nereikalavimo prigimtį. Tinklas mano, kad dalyviai turėtų viską patikrinti patys, o ne pasitikėti kuo nors.

Sandorių architektūra ir duomenų struktūra

Įvestys, išvestys ir skaitmeninės parašos

Techniniu lygmeniu Bitcoin sandoris yra pranešimas, perkeliantis vertę iš vienos vietos į kitą. Jis neveikia kaip banko sąskaitos balansas, kuris tiesiog didėja ar mažėja. Užuot tai, sandoriai sudaryti iš įvesčių ir išvesčių. Įvestis nurodo bitcoin, gautus ankstesniame sandoryje, o išvestis – kur tie bitcoin eis toliau. Norėdami patvirtinti perkėlimą, siuntėjas turi sugeneruoti skaitmeninę parašą naudodamas savo privačiąjį raktą. Ši paraša įrodo, kad jie turi teisę perkelti lėšas, susijusias su konkrečiu viešuoju raktu ar adresu.

Nepanaudotų sandorių išvesties (UTXO) modelis

Bitcoin naudoja Nepanaudotų sandorių išvesties (UTXO) modelį savininkystei sekti. Protokole nėra sąskaitų, tik UTXO. Kai vartotojas gauna bitcoin, tinklas jį užfiksuoja kaip nepanauodą išvestį, užrakintą jų adresu. Norėdami jį išleisti, jie turi sukurti naują sandorį, kuris sunaudoja tą UTXO kaip įvestį. Jei UTXO yra didesnis nei norima siųsti suma, sandoris sukuria dvi išvestis: vieną gavėjui ir vieną „grąžai“, grąžinančią siuntėjui.

Kriptografinė patikra

Kai mazgas gauna sandorį, jis atlieka seriją kriptografinių patikrų. Jis patikrina, ar skaitmeninė paraša atitinka viešąjį raktą ir ar leidžiamos įvestys iš tikrųjų egzistuoja dabartiniame UTXO rinkinyje. Mazgas taip pat užtikrina, kad įvesčių suma būtų didesnė arba lygi išvesčių sumai. Bet koks skirtumas tarp įvesčių ir išvesčių priklauso kalnakariui kaip sandorio mokestis. Šis griežtas patikros procesas neleidžia vartotojams išleisti pinigų, kurių neturi.

Mempool ir sandorių perdavimas

Atminties baseino vaidmuo

Kai sandoris patikrinamas mazgo, jis nėra nedelsiant pridedamas prie blokų grandinės. Užuot tai, jis patenka į laukimo zoną, vadinamą mempool arba atminties baseinu. Mempool yra visų galiojančių, nepatvirtintų sandorių, kuriuos mazgas matė, bet kurie dar neįtraukti į bloką, kolekcija. Kiekvienas mazgas palaiko savo mempool versiją. Kadangi sandoriai tinkle plinta skirtingais greičiais, vieno mazgo mempool bet kuria sekunde gali šiek tiek skirtis nuo kito mazgo mempool.

Susigrūdimai ir mokesčių rinkos

Mempool veikia kaip buferinė zona. Kadangi blokų grandinės blokai turi ribotą dydį, šiuo metu daugiausia apribotą bloko svorio limitu, kas dešimt minučių gali būti apdorota tik tam tikras sandorių skaičius. Kai tinklas užimtas, į mempool patenkančių sandorių skaičius gali viršyti iš bloko išeinančių skaičių. Tai sukelia susigrūdimus. Šioje aplinkoje išsivysto mokesčių rinka. Vartotojai prideda sandorių mokesčius, kad paskatintų kalnakarius prioritetizuoti jų sandorius prieš kitus.

Prioritetizavimo mechanizmai

Kalnakariai mato mempool kaip galimos pajamos meniu. Jie ekonomiškai skatinami rinktis sandorius, siūlančius aukščiausią mokestį už baitą duomenų. Dėl to sandoriai su mažais mokesčiais gali pragulėti mempool valandas ar net dienas didelio aktyvumo laikotarpiu. Vartotojai, kuriems reikia skubaus patvirtinimo, gali naudoti paslaugas kaip sandorių pagreitintojus ar tiesiog pridėti aukštesnį mokestį iš anksto. Jei sandoris lieka nepatvirtintas per ilgai, jis gali būti pašalintas iš mempool, veiksmingai atšaukiant užklausą ir grąžinant lėšas siuntėjo kontrolei.

Kasybos mazgai ir darbo įrodymo mechanizmas

Transakcijų agregavimas į blokus

Kasybos mazgai yra specializuotas tinklo pogrupis. Nors visi mazgai tikrina transakcijas, tik kalnakasiai stato naujus blokus. Kalnakasis iš savo mempool atrenka šūsnį transakcijų su aukštais mokesčiais ir organizuoja jas į kandidatinį bloką. Šis blokas tarnauja kaip pasiūlytas viešojo registro atnaujinimas. Kalnakasio tikslas – pridėti šį bloką prie blokų grandinės, kad gautų bloko atlygį ir sukauptus transakcijų mokesčius. Tačiau tinklas neleidžia bet kam pridėti bloko pagal savo norą.

Darbo įrodimo loterija

Norint pridėti bloką, kalnakasis turi išspręsti skaičiavimo galvosūkį, vadinamą darbo įrodymu (PoW). Tai apima bloko antraštės duomenų pakartotinį paleidimą per SHA-256 maišos algoritmą. Kalnakasis kiekvieno bandymo metu keičia atsitiktinį skaičių, vadinamą „nonce“, ieškodamas maišos rezultato, kuris būtų mažesnis už tinklo sunkumo nustatytą konkrečią taikinio vertę. Šis procesas yra energijos sąnaudų reikalaujantis ir veikia kaip skaitmeninė loterija. Kuo daugiau skaičiavimo galios ar hashrate kalnakasis skiria, tuo daugiau „bilietų“ jis efektyviai turi šioje loterijoje.

Tinklo sunkumas ir stabilumas

Šio galvosūkio sunkumas nėra pastovus. Protokolas reguliuoja sunkumą kas 2,016 blokų, arba maždaug kas dvi savaites, kad užtikrintų, jog blokai būtų kuriami vidutiniškai kas dešimt minučių. Jei prisijungia daugiau kalnakasių ir hashrate padidėja, galvosūkis tampa sunkesnis. Jei kalnakasiai išeina, jis tampa lengvesnis. Šis savireguliacinis mechanizmas užtikrina pinigų pasiūlos grafiko stabilumą, nepaisant to, kiek aparatinės įrangos skirta tinklui. Tai daro tinklo atakos kainą pernelyg brangią.

Konsensusas ir ilgiausios grandinės taisyklė

Paskirstyto susitarimo pasiekimas

Konsensusas yra procesas, kuriuo nepriklausomi mazgai sutaria dėl sąskaitų knygos būsenos. Decentralizuotoje sistemoje įmanoma, kad du kalnakariai išspręstų darbo įrodimo galvosūkį maždaug tuo pačiu metu. Tai sukuria laikiną šakę, kur du galiojantys blokai konkuruoja būti kitu grandinės ryšiu. Tinklo dalys gali pirmiau gauti skirtingus blokus. Norėdami tai išspręsti, Bitcoin mazgai laikosi „ilgiausios grandinės“ taisyklės, kuri techniškai yra grandinė su didžiausiu sukauptu darbo įrodymu.

Laikinų šakių sprendimas

Kai įvyksta šakė, mazgai laiko abi versijas atmintyje, bet stato ant tos, kurią gavo pirmi. Vos rastas kitas blokas, jis remsis vienu iš dviejų konkurencinių blokų. Grandinė, kuri išauga ilgesnė, tampa priimta tiesa, o trumpesnė grandinė atmetama. Atmetamos grandinės blokas tampa „našlaičio bloku“. Sandoriai, buvę našlaičio bloke, neprarandami; jie tiesiog grįžta į mempool, jei dar neįtraukti į laimėjusią grandinę.

Patvirtinimų svarba

Ši konsensuso probabilistinė prigimtis yra priežastis, kodėl „patvirtinimai“ svarbūs. Sandoris turi vieną patvirtinimą, kai įtraukiamas į bloką. Kai ant jo pridedama daugiau blokų, patvirtinimų skaičius didėja. Su kiekvienu nauju bloku energija, reikalinga sandoriui apversti, auga eksponentiškai. Paprastai šeši patvirtinimai laikomi standartu absoliučiam galutinumui, nes tai veiksmingai daro dvigubą išleidimą neįmanomą bet kokiam užpuolikui be sutraukiančios skaičiavimo pranašumo.

Bitcoin Script ir programingumas

Krūvos pagrindu veikianti kalba

Bitcoin naudoja scenarijų sistemą, vadinamą tiesiog „Script“, kad apibrėžtų, kaip galima išleisti lėšas. Tai krūvos pagrindu veikianti kalba, reiškianti, kad ji apdoroja duomenis stumdama elementus į krūvą ir išimdama juos operacijoms atlikti. Skirtingai nuo kalbų, naudojamų bendrojoje kompiuterijoje, Script yra tyčia ribotas. Jis nėra Turingo pilnavertis, reiškiantis, kad trūksta sudėtingų ciklų. Šis dizainas neleidžia begaliniams ciklais, kurie galėtų užšaldyti tinklą, prioritetizuodamas saugumą ir nuspėjamumą prieš lankstumą.

Užrakinimo ir atrakinimo scenarijai

Kiekviena sandorio išvestis turi „užrakinimo scenarijų“ (ScriptPubKey), nurodantį sąlygas, reikalingas lėšoms išleisti. Paprastai ši sąlyga yra galiojančios skaitmeninės parašos, atitinkančios konkretų viešojo rakto maišą (adresą), pateikimas. Norėdami išleisti šias lėšas, vartotojo piniginė generuoja „atrakinimo scenarijų“ (ScriptSig), kuriame yra paraša ir viešasis raktas. Validuojantys mazgai vykdo šiuos du scenarijus kartu. Jei rezultatas yra „True“, sandoris galiojantis.

Išmaniųjų sutarčių galimybės

Nors paprastas, Script leidžia pagrindines išmaniąsias sutartis. Populiariausias pavyzdys yra kelių parašų (Multi-Sig) piniginė, kuri reikalauja parašų iš kelių privačiųjų raktų sandoriui patvirtinti. Jis taip pat leidžia laiko užraktus, kur lėšos negali būti išleistos iki tam tikro bloko aukščio ar laiko žymos pasiekimo. Pažangesnės inovacijos, kaip Lightning Network, remiasi šiomis scenarijų galimybėmis kurti mokėjimo kanalus, veikiančius ne grandinėje, bet saugomus pagrindinio tinklo.

Dvigubo išleidimo prevencija

Skaitmeninių pinigų problema

Bet kurios skaitmeninės valiutos pagrindinis iššūkis yra dvigubo išleidimo problema. Kadangi skaitmeninius failus galima tobulai kopijuoti, piktybiškas subjektas teoriškai galėtų bandyti siųsti tą patį skaitmeninį žetoną dviem skirtingiems gavėjams vienu metu. Centralizuotoje sistemoje bankas to neleidžia atnaujindamas pagrindinę duomenų bazę. Bitcoin turi tai užkirsti kelią be centrinės valdžios. Skaidrios sąskaitų knygos ir darbo įrodimo derinys suteikia sprendimą.

Chronologinis rikiavimas

Blokų grandinė tarnauja kaip laiko žymos serveris. Grupuojant sandorius į blokus ir juos kriptografiškai siejant, tinklas nustato griežtą chronologinę tvarką. Jei vartotojas transliuoja du prieštaringus sandorius, mazgai priims tik pirmąjį, kurį pamatys. Kai tas sandoris įtraukiamas į bloką, antrasis sandoris tampa negaliojantis, nes įvestys, kurias jis bando išleisti, nebėra UTXO rinkinyje. Tinklas sukuria galutinę istoriją, kurios negalima pakeisti.

Saugumas nuo apvertimo

Norėdamas dvigubai išleisti patvirtintas monetas, užpuolikas turėtų perrašyti blokų grandinės istoriją. Tai reikštų iš naujo iškasti bloką, kuriame buvo originalus sandoris, ir kiekvieną po jo sekusį bloką, veiksmingai aplenkiant sąžiningą grandinę. Tai vadinama 51 % ataka. Milžiniška energija, reikalinga tai pasiekti, daro tinklą saugų. Elektrinės ir aparatinės įrangos, reikalingos Bitcoin atakai, kaina paprastai viršija galimą pelną, suderindama kalnakarių paskatas su tinklo saugumu.

Mazgų rūšys ir saugojimo reikalavimai

Pilni mazgai

Pilni mazgai yra tinklo stuburas. Jie atsisiunčia ir saugo visą blokų grandinės istoriją nuo pat pirmo 2009 m. iškastų bloko iki dabar. Jie savarankiškai patikrina kiekvieną sandorio taisyklę. Pilno mazgo paleidimas reikalauja reikšmingos disko erdvės ir pralaidumo, bet suteikia aukščiausią privatumo ir saugumo lygį. Vartotojas, paleidžiantis pilną mazgą, niekuo nepasitiki ir prisideda prie ekosistemos sveikatos atmetdamas negaliojančius blokus.

Apgenėti mazgai

Vartotojams su ribota saugojimo erdve programinė įranga leidžia „genėjimą“. Apgenėtas mazgas atsisiunčia ir patikrina visą blokų grandinę, bet ištrina senesnius blokų duomenis erdvės taupymui, laikydamas tik naujausią istoriją ir pilną UTXO rinkinį. Apgenėtas mazgas vis tiek yra visiškai validuojantis mazgas. Jis suteikia tą patį saugumo modelį kaip standartinis pilnas mazgas, bet negali aptarnauti pilnos istorijos kitiems naujiems mazgams, prisijungiantiems prie tinklo.

Lengvieji klientai (SPV)

Supaprastinti mokėjimo patikrinimo (SPV) mazgai arba lengvieji klientai neatsisiunčia visos blokų grandinės. Užuot tai, jie atsisiunčia tik blokų antraštes – mažas duomenų struktūras, patvirtinančias darbo įrodymą. Jie remiasi pilnais mazgais, kad gautų informaciją apie konkrečius sandorius. Nors tai daro juos greitus ir tinkamus mobiliesiems, jie yra mažiau saugūs, nes turi pasitikėti, kad prisijungti pilni mazgai teikia tikslius duomenis. Jie negali savarankiškai patikrinti, ar protokolo taisyklės laikomasi.

Ekonominė architektūra: mokesčiai ir halves

Bloko atlygio grafikas

Kalnakariai kompensuojami per bloko atlygius, kurie susideda iš naujai nukaldintų bitcoin. Ši subsidija yra vienintelis būdas, kaip nauji bitcoin patenka į apyvartą. Norėdami užtikrinti retumą, protokolas apima „halving“ mechanizmą. Maždaug kas ketverius metus bloko atlygis sumažinamas perpus. Jis prasidėjo nuo 50 BTC, nukrito iki 25, tada 12,5, 6,25 ir taip toliau. Šis įvykis sumažina infliacijos normą ir sustiprina turto defliacinę prigimtį.

Pereinama prie mokesčių pagrindu veikiančio saugumo modelio

Halving taip pat daro įtaką tinklo ilgalaikei saugumo biudžetui. Kai bloko subsidija mažėja, kalnakariai turi vis labiau remtis sandorių mokesčiais, kad padengtų veiklos išlaidas. Šis perėjimas skirtas užtikrinti, kad tinklas liktų savarankiškas net po paskutinio bitcoin iškasimo apie 2140 m. Tuo metu kalnakariai bus visiškai palaikomi mokesčių, kuriuos vartotojai moka už saugius ir cenzūrai atsparius sandorius.

Rinkos dinamika

Mokesčių rinka yra dinamiška. Kai bloko erdvės paklausa maža, mokesčiai gali būti vos centai. Kai paklausa didelė, mokesčiai kyla. Šie svyravimai skatina efektyvų tinklo naudojimą. Tai skatina mastelio sluoksnių, kaip Lightning Network mažiems, dažniems mokėjimams, kūrimą, o pagrindinė blokų grandinė veikia kaip aukšto saugumo atsiskaitymo sluoksnis didelės vertės pervedimams. Ekonominės paskatos užtikrina, kad kalnakariai toliau saugo grandinę, kol tinkle yra vertė.

Išvada

Bitcoin tinklo architektūra atspindi kruopštų kriptografijos, žaidimų teorijos ir paskirstyto kompiuterijos pusiausvyrą. Dalindami validacijos vaidmenį tūkstančiams nepriklausomų mazgų, sistema pašalina centrinio administratoriaus poreikį. Sąveika tarp mempool, kalnakarių ir negalios sąskaitų knygos užtikrina, kad sandoriai būtų apdorojami saugiai ir teisingai. Nors darbo įrodymo mechanizmas reikalauja reikšmingos energijos, jis suteikia neklastojamą kainą, reikalingą apsaugoti globalią vertės perkėlimo sistemą nuo atakų ir dvigubo išleidimo.

Kai tinklas evoliucionuoja, mazgų vaidmuo lieka pastovus: jie yra protokolo sargybiniai. Nesvarbu, ar paleidžiant pilną mazgą taisyklių vykdymui, ar dalyvaujant mokesčių rinkoje sandoriams prioritetizuoti, kiekviena sąveika su tinklu remiasi šia pamatine infrastruktūra. Sistemos dizainas – nuo scenarijų kalbos iki halving grafiko – prioritetizuoja stabilumą ir saugumą, kurdamas skaitmeninį piniginį tinklą, kuris yra tvirtas, skaidrus ir atviras bet kam turinčiam kompiuterį.

Bitcoin mazgai leidžia jums būti savo banku, patikrinant visą sąskaitų knygos istoriją patiems.