Dvigubo išleidimo problema ir decentralizuotas pasitikėjimas: kodėl Bitcoin reikia blokų grandinės

Skaitmeninis deficitas kadaise buvo laikomas oksimoronu. Fiziniame pasaulyje deficitas yra natūralus. Yra tik tiek aukso iškasti ir tik tiek žemės užimti. Jei paduodate kam nors fizinį dolerio banknotą, jūs nebebėnate jo. Sandoris yra momentinis, patikrinamas ir galutinis. Objekto fizinė prigimtis neleidžia jums išleisti to paties dolerio banknoto kitame parduotuvėje po penkių minučių.

Skaitmeninėje srityje tačiau informacija elgiasi kitaip. Skaitmeninis failas, pavyzdžiui, nuotrauka ar dokumentas, apibrėžiamas savo reprodukavimo paprastumu. Kai siunčiate el. laiško priedą kolegai, neprarandate savo failo kopijos. Jūs abu turite identiškas versijas. Šis bruožas puikus dalinantis informaciją, bet pražūtingas skaitmeniniams pinigams. Jei skaitmeninė valiuta veikia kaip standartinis kompiuterio failas, niekas nesulaiko vartotojo nuo savo pinigų „kopijavimo“ ir leidimo dešimtyje skirtingų vietų vienu metu.

Ši dilema žinoma kaip dvigubo išleidimo problema. Ji buvo pagrindinė kliūtis, trukdžiusi gyvybingiems decentralizuotiems skaitmeniniams gryniesiems egzistuoti dešimtmečius. Prieš Bitcoin vienintelis sprendimas buvo įkurti centrinę valdžią. Bankai ir mokėjimo procesoriai vedė privačias sąskaitų knygas, kad sekti, kas ką turi. Jie atimdavo pinigus iš vienos sąskaitos ir pridėdavo prie kitos, užtikrindami, kad balansas nebūtų išleistas du kartus.

Bitcoin pakeitė šį paradigmą išspręsdamas dvigubo išleidimo problemą be centrinio administratoriaus. Jis pakeitė patikimą trečiąją šalį kriptografijos, ekonominių paskatų ir viešosios sąskaitų knygos, žinomos kaip blokų grandinė, derinys. Norint suprasti, kaip Bitcoin tai pasiekia, reikia pažvelgti po kapotu į pasitikėjimo, patikrinimo ir tinklo konsensuso mechanizmus.

Dvigubo išleidimo problemos mechanizmai

Norint suprasti, kodėl Bitcoin sprendimas yra revoliucinis, pirmiausia reikia visiškai suprasti dvigubo išleidimo grėsmę. Skaitmeninių grynųjų sistemoje žetonas iš esmės yra duomenų eilutė. Be centrinės patikros ir pusiausvyros sistemos, piktybiškas subjektas teoriškai galėtų transliuoti sandorį, siunčiantį vieną bitkoiną prekeiviui, tuo pačiu metu siunčiant tą patį bitkoiną į antrą piniginę, kurią jis kontroliuoja.

Jei tinklas priima abu sandorius kaip galiojančius, užpuolikas efektyviai sukuria pinigus iš nieko. Jis gauna prekes iš prekeivio, tuo pačiu išlaikydamas savo lėšas kitame adrese. Jei tokia sukčiavimo schema būtų įmanoma, valiuta akimirksniu prarastų visą vertę. Joks prekeivis nepriimtų mokėjimo, kuris galėtų būti anuliuotas ar dubliuotas po kelių akimirkų. Pasitikėjimas pinigų pasiūla žlugtų.

Tradicinėse finansuose tai sprendžiama išvalymo periodais ir centralizuota priežiūra. Kai braukiate debetinę kortelę, bankas tikrina savo duomenų bazės įrašą. Jei turite lėšų, jie užšaldo tą sumą ir perveda. Jei bandote braukti vėl kitur su tuščia sąskaita, banko centrinis kompiuteris atmeta užklausą. Pasitikėjimas visiškai dedamas į banko gebėjimą palaikyti tikslią sąskaitų knygą.

Bitcoin veikia aplinkoje, kur jokia vienintelė institucija neturi teisės atmesti sandorio ar atnaujinti balanso. Užuot tai dariusi, tinklas turi kolekyviai sutarti, kurie sandoriai įvyko ir kokia tvarka. Jei du prieštaringi sandoriai yra transliuojami, tinklui reikia konkretaus taisyklės, kad nuspręstų, kuris yra galiojantis, o kuris melas. Čia blokų grandinė tarnauja kaip galutinis tiesos arbitrą.

Blokų grandinė kaip laiko žymos serveris

Blokų grandinė veikia kaip decentralizuota, viešoji sąskaitų knyga, kurioje užregistruojami visi kada nors atlikti sandoriai. Tačiau ji yra daugiau nei tik mokėjimų sąrašas. Ji funkcionuoja kaip decentralizuotas laiko žymos serveris. Pagrindinė priežastis, kodėl dvigubas išleidimas įmanomas peer-to-peer tinkluose, yra vieningo laiko juostos nebuvimas. Be centrinio laikrodžio sunku įrodyti, kuris iš dviejų prieštaringų sandorių įvyko pirmas.

Bitcoin grupuoja sandorius į konteinerius, vadinamus blokais. Šie blokai yra sujungti chronologiškai. Kiekvienas blokas turi kriptografinę nuorodą į prieš jį buvusį bloką. Tai sukuria nenutrūkstamą grandinę atgal iki pat pirmojo bloko, žinomo kaip genezės blokas. Kai sandoris įtraukiamas į bloką ir tas blokas pridedamas prie grandinės, sandoris turi aiškią vietą istorijoje.

Jei užpuolikas bando išleisti monetas, kurios jau buvo išleistos ankstesniame bloke, tinklo mazgai jį atmes. Mazgai remiasi blokų grandinės istorija ir mato, kad konkretūs skaitmeniniai monetos klausimu jau buvo perkelti. Istorija yra skaidri ir dalijamasi tūkstančiuose kompiuterių visame pasaulyje.

Tikrasis iššūkis kyla, kai užpuolikas bando transliuoti du prieštaringus sandorius tiksliai tuo pačiu metu. Čia kasybos ir bloko kūrimo procesas tampa lemiamu veiksniu. Kasytojai renkasi sandorius iš laukimo zonos, vadinamos mempool. Kai kasytojas įtraukia vieną sandorio versiją į bloką ir išsprendžia kriptografinį galvosūkį jį publikuoti, ta versija tampa oficialia istorija.

Darbo įrodimas: sukčiavimo kaina

Blokų grandinė suteikia istoriją, bet darbo įrodimas (PoW) suteikia saugumą, kuris daro tą istoriją nekeičiamą. Norint, kad paskirstyta sąskaitų knyga būtų patikima, ją turi būti neįtikėtinai sunku perrašyti. Jei istorijos perrašymas būtų pigus, užpuolikas galėtų išleisti Bitcoin, palaukti, kol prekeivis išsiųs prekes, ir tada perorganizuoti blokų grandinę, kad ištrintų sandorį.

Darbo įrodimas primeta fizinę kainą naujų blokų kūrimui. Kasytojai turi sunaudoti didžiulius kiekius elektros energijos ir skaičiavimo galios, kad išspręstų sudėtingus matematinius galvosūkius. Šis procesas yra konkurencingas. Pirmasis kasytojas, išspręndęs galvosūkį, prideda kitą bloką ir gauna bloko atlygį.

Ši energijos sąnauda veikia kaip gynybine siena. Norint apversti sandorį, užpuolikas turėtų pakartoti darbą blokui, kuriame yra tas sandoris. Be to, jis turėtų pakartoti darbą kiekvienam vėlesniam blokui, pridėtam prie grandinės. Kadangi sąžiningas tinklas toliau ilga grandinę, užpuolikas turėtų kontroliuoti daugiau skaičiavimo galios nei visi kiti kasytojai kartu sudėjus, kad pasivytų.

Tai dažnai vadinama 51 % ataka. Nors teoriškai įmanoma, ekonominės paskatos daro ją nepraktišką tokiai dideliam tinklui kaip Bitcoin. Reikalingos įrangos ir elektros energijos įsigijimo kaina, kad nugalėtų tinklą, greičiausiai viršytų potencialius dvigubo išleidimo pelnus. Ši ekonominė kliūtis saugo decentralizuotą sąskaitų knygą nuo manipuliacijų.

Savybė Centralizuota sistema Decentralizuota (PoW) sistema
Sąskaitų knygos kontrolė Bankas/Įmonė Paskirstyti mazgai
Saugumo šaltinis Teisinis/institucinis pasitikėjimas Energetinė/skaiciavimo kaina
Dvigubo išleidimo sprendimas Duomenų bazės patikrinimas Konsensusas & patvirtinimas

Įėjimai, išėjimai ir UTXO modelis

Bitcoin nenaudoja sąskaitų ir balansų taip, kaip tradicinis bankas. Užuot tai dariusi, ji naudoja modelį, vadinamą Nepanaudotomis sandorių išvestimis (UTXO). Šis techninis skirtumas gyvybiškai svarbus dvigubo išleidimo prevencijai protokolo lygiu. Kai žiūrite į Bitcoin piniginės balansą, iš tikrųjų matote visų UTXO sumą, kurias jūsų privačios raktas gali atrakinti.

Kai inicijuojate sandorį, jūs ne tiesiog atimate skaičių iš viso. Jūs imate konkrečius bitkoino gabalus, kuriuos gavote praeityje (įėjimus) ir kuriate naujus gabalus (išėjimus). Įsivaizduokite, kad tirpinate auksines monetas, kad nulietumėte naujas tam tikro svorio. Senos monetos (įėjimai) sunaikinamos procese, o naujos monetos (išėjimai) sukuriamos.

Kiekvienas pilnas tinklo mazgas palaiko šio „UTXO rinkinio“ duomenų bazę. Tai išsami visų galiojančių, leidžiamų bitkoino gabalų, egzistuojančių pasaulyje, sąrašas. Kai naujas sandoris yra transliuojamas, mazgai ne tik tikrina jūsų balansą. Jie tikrina, kad konkretūs įėjimai, kuriuos bandote išleisti, egzistuoja UTXO rinkinyje.

Jei sandoris yra patvirtintas, tie įėjimai pašalinami iš UTXO rinkinio. Jei bandote nurodyti tuos pačius įėjimus antrame sandoryje, mazgai matys, kad jie nebėra galiojančiame rinkinyje, ir nedelsiant atmes užklausą. Ši binarinė būsena – išėjimas yra arba nepanauodotas, arba panaudotas – pašalina dviprasmybes. Nėra „laukiančio balanso“, kurį galima apgauti; konkretūs skaitmeniniai monetos egzistuoja naudojimui arba ne.

Bitcoin scenarijaus vaidmuo

Norint užtikrinti, kad tik teisėtas savininkas galėtų išleisti UTXO, Bitcoin naudoja scenarijų sistemą. Bitcoin scenarijus yra paprasta, krūvos pagrindu veikianti programavimo kalba. Ji nėra visuotinės paskirties kalba kaip Python ar C++. Ji tyčia ribota sritis, kad prioritetizuotų saugumą ir determinizmą. Ji neleidžia begaliniams ciklais, kas neleidžia užpuolikams užkimšti tinklo sudėtingu kodu.

Kiekvienas sandorio išėjimas turi užrakinimo scenarijų. Šis scenarijus iš esmės uždeda matematinius spyną ant lėšų. Jis nurodo sąlygas, kurios turi būti tenkinamos, kad šios lėšos būtų išleistos ateityje. Paprastai ši sąlyga yra galiojančio skaitmeninio parašo pateikimas, atitinkantis konkretų viešąjį raktą ar Bitcoin adresą.

Kai vartotojas nori išleisti tas lėšas, jo piniginės programinė įranga generuoja atrakinimo scenarijų. Šis scenarijus turi skaitmeninį parašą ir viešąjį raktą. Tinklo mazgai vykdo šiuos du scenarijus kartu. Jei atrakinimo scenarijus sėkmingai patenkina užrakinimo scenarijaus sąlygas, rezultatas yra „True“, ir sandoris galioja.

Ši scenarijų kalba leidžia daugiau nei paprastus perkėlimus. Ji leidžia sudėtingas išleidimo sąlygas, pavyzdžiui, kelių parašų (Multi-Sig) pinigines. Multi-Sig nustatyme užrakinimo scenarijus gali reikalauti dviejų iš trijų konkrečių parašų, kad atrakintų lėšas. Šis lankstumas stiprina saugumą ir leidžia decentralizuotas saugojimo sprendimus be priklausomybės nuo trečiosios šalies pasitikėjimo.

Laukiamasis kambarys: mempool dinamika

Prieš sandoriui įsitvirtinant blokų grandinėje, jis gyvena mempool. Mempool (atminties baseinas) yra laikinojo patvirtinimo sandorių laikymo zona. Kiekvienas tinklo mazgas palaiko savo mempool versiją. Kai vartotojas transliuoja sandorį, jis plinta tinklu ir sėdi šiuose baseinuose, laukdamas, kol jį pasiims kasytojas.

Mempool yra vieta, kur dvigubo išleidimo ataka yra labiausiai tikėtina. Užpuolikas gali transliuoti sandorį su maža mokečių prekeiviui ir prieštaringą sandorį su didesniu mokesčiu sau. Kasytojai yra ekonomiškai racionalūs subjektai. Jie paprastai prioritetizuoja sandorius su didesniais mokesčiais, kad maksimizuotų pelną.

Jei prekeivis priima sandorį prieš jam patvirtinant bloke, jis rizikuoja. Kasytojas gali pamatyti didesnį mokestį turintį prieštaringą sandorį ir įtraukti tą į bloką. Dėl to „nulio patvirtinimo“ sandoriai laikomi nesaugiais didelės vertės pervedimams. Mokėjimas buvo paskelbtas, bet dar nepatvirtintas konsensuso mechanizmu.

Susigrūdimai mempool gali tai dar labiau komplikuoti. Aukštos tinklo veiklos periodais mempool prisipildo. Sandoriai su mažais mokesčiais gali laukti valandų ar net dienų patvirtinimo. Šis vėlavimas gali sukelti nerimą vartotojams, bet iš esmės nekompromituoja saugumo. Kol vartotojas laukia patvirtinimo, lėšos lieka saugios.

Patvirtinimai ir galutinis įsitvirtinimas

Bitcoin pasaulyje saugumas nėra binarinis; jis yra kumuliatyvus. Sandoris laikomas „patvirtintu“, kai įtraukiamas į bloką. Tačiau vienas patvirtinimas nėra teoriškai negrįžtamas. Retais atvejais du kasytojai gali rasti bloką tiksliai tuo pačiu metu. Tai sukuria laikiną šakę blokų grandinėje, kur egzistuoja dvi konkurencinės istorijos versijos vienu metu.

Tinklas tai išsprendžia laikydamasis „ilgiausios grandinės“ taisyklės (techniškai, grandinės su didžiausiu sukauptu darbo įrodymu). Kasytojai statys ant pirmojo gauto galiojančio bloko. Galiausiai viena grandinė taps ilgesnė už kitą, o trumpesnė grandinė bus apleista. Sandoriai apleistame bloke (našlačio blokas) grąžinami į mempool.

Norint apsaugoti nuo bloko našlaitinimo rizikos, gavėjai paprastai laukia kelių patvirtinimų. Pramonės standartas absoliučiam saugumui yra šeši patvirtinimai. Tai reiškia, kad sandoris yra palaidotas po šešiais skaičiavimo darbo blokais.

Šiame gylyje energija, reikalinga grandinės perorganizavimui ir sandorio apversimui, tampa astronomiškai didelė. Mažiems mokėjimams, kaip kavos pirkimas, vienas patvirtinimas (ar net nulis, jei rizika priimtina) gali pakakti. Perkant namą ar automobilį, laukimas šešių patvirtinimų (apie valandą) užtikrina, kad pervedimas yra matematiškai nuolatinis.

Patvirtinimai Saugumo lygis Tipinis naudojimo atvejis
0 Žemas (rizikingas) Maži, momentiniai mažmeninės prekybos daiktai
1 Vidutinis Kasdieniniai pirkimai, pervedimai
6 Labai aukštas Didelės vertės mokėjimai, biržos

Mazgų tinklas: decentralizuoti validatorių

Kasytojai dažnai gauna kreditą už Bitcoin saugumą, bet nekasybos mazgai yra tikrieji taisyklių vykdytojai. Pilnas mazgas yra kompiuteris, saugantis visos blokų grandinės kopiją ir tikrinantis kiekvieną sandorį pagal protokolo taisykles. Yra dešimtys tūkstančių šių mazgų, išsidėsčiusių visame pasaulyje.

Kai kasytojas siūlo naują bloką, jis transliuoja jį tinklo mazgams. Mazgai aklai nepriima šio bloko. Jie nepriklausomai tikrina kiekvieną jame esantį sandorį. Jie tikrina, kad neįvyko dvigubas išleidimas, kad kriptografiniai parašai galioja ir kad kasytojas teisingai išsprendė darbo įrodymo galvosūkį.

Jei kasytojas bando apgauti – pavyzdžiui, suteikdamas sau papildomų bitkoinų ar įtraukdamas negaliojantį sandorį – mazgai atmes bloką. Nesvarbu, kiek skaičiavimo galios turi piktybiškas kasytojas. Jei blokas pažeidžia taisykles, tinklas jį atmeta. Ši galios pusiausvyra neleidžia kasytojams primesti tironijos protokolui.

Vykdyti mazgą yra be leidimo. Bet kas turintis standartinį kompiuterį ir interneto ryšį gali tai daryti. Šis prieinamumas gyvybiškai svarbus decentralizacijai. Jei mazgo vykdymas reikalautų brangios duomenų centro įrangos, tik didelės korporacijos galėtų tikrinti sąskaitų knygą. Palaikant protingus įrangos reikalavimus, Bitcoin užtikrina, kad vidutiniai vartotojai gali audituoti pasiūlą ir vykdyti taisykles.

Hashratas: tinklo skydas

Bendras skaičiavimo galios kiekis, saugantis Bitcoin tinklą, matuojamas hashratu. Hashratas reiškia spėlionių (hašų) per sekundę skaičių, kurį kasytojai meta į matematinius galvosūkius. Didelis hashratas reiškia saugesnį tinklą. Tai reiškia, kad daugiau energijos ir įrangos skiriama dabartinės sąskaitų knygos būsenos išsaugojimui.

Kai Bitcoin vertė auga, kasyba tampa pelningesnė. Tai pritraukia daugiau kasytojų, didindama hashratą. Kai hashratas kyla, kasybos galvosūkio sudėtingumas automatiškai reguliuojasi. Šis sudėtingumo reguliavimas vyksta maždaug kas dvi savaites. Jis užtikrina, kad blokai būtų kuriami vidutiniškai kas dešimt minučių, nepaisant to, kiek skaičiavimo galios prisijungia prie tinklo.

Šis savireguliacijos mechanizmas yra gyvybiškai svarbus stabilumui. Jei sudėtingumas nereguliuotųsi, kasybos galios antplūdis sukeltų blokus per greitai. Tai užtvindytų rinką naujomis monetomis ir destabilizuotų pinigų politiką. Priešingai, jei kasytojai išeitų ir sudėtingumas liktų aukštas, tinklas galėtų sustoti.

Milžiniškas Bitcoin tinklo hashratas yra tai, kas daro nekeičiamą sąskaitų knygą įmanomą. Tai fizinė kliūtis, skiriantis Bitcoin nuo paprastos duomenų bazės. Norint perrašyti duomenų bazę, reikia administracinių kredencialų. Norint perrašyti Bitcoin blokų grandinę, reikia viršyti mažų nacijų energijos išvestį.

Ekonominės paskatos ir pusinimas

Bitcoin saugumo modelis stipriai remiasi ekonominėmis paskatomis. Kasytojai neapsaugo tinklo iš altruizmo; jie tai daro dėl pelno. Protokolas juos apdovanoja dviem būdais: bloko atlygiu ir sandorio mokesčiais. Bloko atlygis susideda iš naujai nukaldintų bitkoinų. Tai vienintelis būdas, kaip nauja valiuta patenka į pasiūlą.

Norint kontroliuoti infliaciją ir užtikrinti deficiją, bloko atlygis mažinamas per pusę maždaug kas ketverius metus. Šis įvykis žinomas kaip Pusinimas. Jis mažina naujos pasiūlos emisijos tempą, darant Bitcoin defliaciniu turtu laikui bėgant. Galiausiai bloko atlygis pasieks nulis (apie 2140 metus).

Kai bloko atlygis mažėja, sandorio mokesčiai tampa pagrindine paskata kasytojams. Kai vartotojai siunčia sandorius, jie prideda mokestį, kad paskatintų kasytojus įtraukti jų duomenis į kitą bloką. Tai sukuria mokesčių rinką. Kai blokų erdvės paklausa didelė, mokesčiai kyla.

Šis perėjimas nuo bloko atlygių prie mokesčių pagrįsto saugumo yra ilgalaikis tvarumo planas. Jis užtikrina, kad kasytojai visada turės priežastį skirti hashratą tinklui. Net paskutiniam bitkoinui iškastam, noras apdoroti sandorius ir rinkti mokesčius laikys blokų grandinės skaitmenines sienas aukštas ir saugias.

Išvada

Dvigubo išleidimo problema buvo apibrėžiantis techninis ankstyvųjų skaitmeninių valiutų nesėkmės. Išsprendęs ją, Bitcoin įrodė, kad vertė gali būti perkeliama globaliai be centrinio tarpininko. Skaidrios viešosios sąskaitų knygos, darbo įrodymo konsensuso ir UTXO modelio derinys sukūrė sistemą, kur pasitikėjimas kyla iš matematikos ir fizikos, o ne korporatyvinės reputacijos.

Ši decentralizuota architektūra užtikrina, kad jokia vienintelė institucija negali manipuliuoti pinigų pasiūla ar apversti galiojančius sandorius. Nors kasybos, mazgų ir scenarijų mechanizmai yra sudėtingi, jie veikia sinchroniškai, kad suteiktų paprastą rezultatą: skaitmeninį turtą, kuris yra toks pat deficitingas ir galutinis kaip fizinis auksas. Blokų grandinė nėra tik duomenų bazė; tai naujos automatizuoto, be pasitikėjimo ekonominio bendradarbiavimo eros pamatas.

Bitcoin paverčia energiją saugumu, efektyviai sukurdama pirmąjį skaitmeninį objektą, kurio negalima kopijuoti, tik perkelti.