Topeltkulutamise probleem ja hajutatud usaldus: miks Bitcoin vajab plokiahelist

Digitalne nappus peeti kunagi oksümoorooniks. Füüsilises maailmas on nappus loomulik. Kaevandatavat kulda ja asustatavat maad on vaid teatud kogus. Kui annate kellelegi füüsilise dollarite setele, ei omista te seda enam. Tehing on koheline, kontrollitav ja lõplik. Objekti füüsiline olemus takistab teil sama dollarite setlelt viis minutit hiljem teises poes kulutamast.

Digitaalses maailmas käitub info aga teisiti. Digifail, näiteks foto või dokument, defineeritakse oma lihtsa reprodutseeritavuse poolest. Kui saadate kolleegile meilis lisatud faili, ei kaota te oma koopia. Teil mõlemal on identsed versioonid. See omadus on suurepärane info jagamiseks, kuid katastroofiline digitaalse raha jaoks. Kui digitaalne valuuta toimib nagu tavaline arvutifail, ei takista midagi kasutajal oma raha "kopeerimast" ja kulutamast seda samaaegselt kümnes erinevas kohas.

See dilemma on tuntud kui topeltkulutamise probleem. See oli peamine takistus, mis takistas kümneid aastaid elujõulise hajutatud digitaalse raha eksisteerimast. Enne Bitcoini oli ainus lahendus keskse autoriteedi loomine. Pangad ja makseteenuse pakkujad hoidsid eraomast pearägu, et jälgida, kes mida omab. Nad lahistasid raha ühelt kontolt ja lisasid selle teisele, tagades, et ükski saldo ei kulutataks kaks korda.

Bitcoin muutis seda paradigmat, lahendades topeltkulutamise probleemi ilma keskse administraatori without. See asendas usaldatud kolmanda osapoole krüptograafia, majanduslike stiimulite ja avaliku pearägu kombinatsiooniga, mida tuntakse kui plokiahelist. Bitcoini saavutuse mõistmiseks tuleb vaadata usalduse, kontrolli ja võrgukonsensuse mehhanismide alla.

Topeltkulutamise mehhanismid

Selleks, et mõista, miks on Bitcoini lahendus revolutsiooniline, tuleb esmalt täielikult mõista topeltkulutamise ohtu. Digitaalse raha süsteemis on token sisuliselt andmerida. Ilma keskse kontrolli- ja tasakaalustussüsteemita võiks pahatahtlik osaleja teoreetiliselt saata ühe bitcoini kauplejale, samal ajal saates sama bitcoini teise enda kontrollitud rahakotti.

Kui võrk aktsepteerib mõlemad tehingud kehtivatena, on ründaja efektis loonud raha õhust. Ta on saanud kauplejalt kauba, säilitades samal ajal oma rahad erinevas aadressis. Kui see pettus oleks võimalik, kaotaks valuuta kohe kogu väärtuse. Ükski kaupleja ei aktsepteeriks makset, mida saab hetke hiljem kehtetuks tunnistada või dubleerida. Usaldus rahavarude vastu variseb kokku.

Traditsioonilises finantsis lahendatakse seda kliiringuperioodide ja keskse järelevalvega. Kui pühite deebetkaardiga, kontrollib pank oma andmebaasi kirjet. Kui teil on raha, külmutavad nad selle summa ja kannavad üle. Kui proovite tühja kontole mujal uuesti pühkida, lükkab panga keskkompuuter taotluse tagasi. Usaldus pannakse täielikult panga võimele täpset pearägu pidada.

Bitcoin toimib keskkonnas, kus ükski üksus ei oma autoriteeti tehingut tagasi lükata või saldo uuendada. Selle asemel peab võrk kollektiivselt kokku leppima, millised tehingud toimusid ja millises järjekorras. Kui kaks vastuolulist tehingut levitatakse, vajab võrk konkreetset reeglit, et otsustada, kumb on kehtiv ja kumb vale. Siin toimib plokiahel tõe lõplikuna arbitrerina.

Plokiahel ajaserverina

Plokiahel toimib hajutatud avalikku pearäkuna, mis registreerib iga kunagi tehtud tehingu. Kuid see on rohkem kui lihtsalt maksete nimekiri. See toimib hajutatud ajaserverina. Peamine põhjus, miks topeltkulutus on võimalik peer-to-peer võrkudes, on ühtse ajajoone puudumine. Ilma keskse kellata on raske tõestada, kumb kahest vastuolulisest tehingust toimus esmalt.

Bitcoin grupeerib tehingud konteineritesse nimega plokid. Need plokid on kronoloogiliselt omavahel seotud. Iga plokk sisaldab krüptograafilist viidet eelmisele plokile. See loob katkematuta ahela tagasi esimese plokini, mida nimetatakse genesiplokiks. Kui tehing on plokki lisatud ja plokk ahelasse lisatud, saab tehing kindla koha ajaloos.

Kui ründaja proovib kulutada juba eelmises plokis kulutatud müntide, lükkavad võrgu sõlmed selle tagasi. Sõlmed viitavad plokiahela ajaloole ja näevad, et konkreetsed digitaalsed mündid on juba liigutatud. Ajalugu on läbipaistev ja jagatud tuhandete arvutite vahel üle maailma.

Tõeline väljakutse tekib, kui ründaja proovib saata kaks vastuolulist tehingut täpselt samal ajal. Siin saab kaevandamise ja ploki loomise protsess otsustavaks. Kaevurad valivad tehingud ootamisalast nimega mempool. Kui kaevur lisab tehingu ühe versiooni plokki ja lahendab krüptograafilise pusle, et see avaldada, saab sellest ametlik ajalugu.

Töö tõendus: pettuse maksumus

Plokiahel annab ajaloost, kuid töö tõendus (PoW) annab turvalisuse, mis muudab selle ajaloost muutumatuks. Et hajutatud pearägu usaldataks, peab seda olema uskumatult raske ümber kirjutada. Kui ajaloost ümberkirjutamine oleks odav, võiks ründaja Bitcoin kulutada, oodata, kuni kaupleja kauba saadab, ja siis plokiahela ümberkorraldada, et tehing kustutada.

Töö tõendus paneb uute plokkide loomisele füüsilise kulu. Kaevurad peavad kulutama tohutuid koguseid elektrit ja arvutusvõimsust keeruliste matemaatiliste puslede lahendamiseks. See protsess on võistluslik. Esimene pusle lahendav kaevur saab lisada järgmise ploki ja nõuda plokipreemiad.

See energiakulu toimib kaitsevastase müürina. Tehingu tagasipööramiseks peaks ründaja tegema ümber töö selle tehingu sisaldava ploki jaoks. Pealgi peaks ta tegema ümber töö iga järgneva ahelasse lisatud ploki jaoks. Kuna aus võrk jätkab ahela pikendamist, peaks ründaja omama rohkem arvutusvõimsust kui kõik teised kaevurad kokku, et järele jõuda.

Seda nimetatakse sageli 51%-liseks rünnakuks. Kuigi teoreetiliselt võimalik, muudavad majanduslikud stiimulid selle Bitcoini suurusele võrgule ebapraktikaliseks. Vajalik riistvara ja elektri hankimise kulu ületaks tõenäoliselt topeltkulutamisest saadava kasu. See majanduslik barjäär kaitseb hajutatud pearägu moonutuste eest.

Omadus Kesksetatud süsteem Hajutatud (PoW) süsteem
Pearaamatu juhtimine Pank/Firma Hajutatud sõlmed
Turvalisuse allikas Õiguslik/institutsionaalne usaldus Energia/arvutuslik kulu
Topeltkulutuse lahendus Andmebaasi kontroll Konsensus & kinnitus

Sisendid, väljundid ja UTXO mudel

Bitcoin ei kasuta kontosid ja saldo traditsioonilise panga moodi. Selle asemel kasutab see mudelit nimega kulutamata tehingu väljundid (UTXO). See tehniline eristus on eluline topeltkulutamise vältimiseks protokolli tasandil. Kui vaatate Bitcoini rahakoti saldo, näete tegelikult kõigi UTXO-de summat, mida teie privaatsed võtmed saavad avada.

Kui algatate tehingu, ei lahista te lihtsalt numbrit kogusummast. Te võtate konkreetsed bitcoini tükid, mida olete varem saanud (sisendid), ja loote uued tükid (väljundid). Kujutage ette kuldamüntide sulatamist, et valada uusi kindla kaaluga müntide. Vana mündid (sisendid) hävitatakse protsessis ja loodud uued mündid (väljundid).

Iga täissõlm võrgus hoiab andmebaasi sellest "UTXO kogumist." See on põhjalik nimekiri igast kehtivast, kulutatavast bitcoini tükist. Kui uus tehing levitatakse, ei kontrolli sõlmed lihtsalt teie saldo. Nad kontrollivad, et konkreetsed sisendid, mida proovite kulutada, eksisteerivad UTXO kogumis.

Kui tehing on kinnitatud, eemaldatakse need sisendid UTXO kogumist. Kui proovite neid samaid sisendeid teises tehingus viidata, näevad sõlmed, et need ei ole enam kehtivas kogumis, ja lükkavad taotluse kohe tagasi. See binaarne olek – väljund on kas kulutamata või kulutatud – eemaldab ebamäärasuse. Pole petetavat "ootavat saldo"; konkreetsed digitaalsed mündid eksisteerivad kas kasutamiseks või mitte.

Bitcoini skripti roll

Selleks, et tagada, et ainult õigustatud omanik saab UTXO kulutada, kasutab Bitcoin skriptsüsteemi. Bitcoin Script on lihtne, virna-põhine programmeerimiskeel. See pole üldotstarbeline keel nagu Python või C++. See on tahtlikult piiratud ulatusega turvalisuse ja determinismuse prioriteediks. See ei luba lõpmatuid tsükleid, mis takistab ründajatel võrku keerulise koodiga ummistamast.

Iga tehingu väljund sisaldab lukustus-skripti. See skript paigaldab rahale sisuliselt matemaatilise lukku. See määrab tingimused, mis peavad täituma, et neid raha tulevikus kulutada. Tavaliselt on see tingimus kehtiv digitaalne allkiri, mis vastab kindlale avalikule võtmele või Bitcoin aadressile.

Kui kasutaja soovib neid raha kulutada, genereerib nende rahakoti tarkvara avastus-skripti. See skript sisaldab digitaalset allkirja ja avalikku võtit. Võrgu sõlmed käivitavad need kaks skripti koos. Kui avastus-skript rahuldab edukalt lukustus-skripti tingimused, on tulemus "Tõene" ja tehing on kehtiv.

See skriptikeel lubab rohkemat kui lihtsad ülekanded. See võimaldab keerulisi kulutustingimusi, nagu multi-allkirjalised (Multi-Sig) rahakotid. Multi-Sig seades võib lukustus-skript nõuda kahte kolmest kindlast allkirjast raha avamiseks. See paindlikkus parandab turvalisust ja võimaldab hajutatud hoiustamislahendusi ilma kolmanda osapoole usalduseta.

Ootemaja: mempooli dünaamika

Enne kui tehing on plokiahelasse kinnitatud, elab see mempoolis. Mempool (mälu bassein) on ootamisala kinnitamata tehingute jaoks. Iga võrgu sõlm hoiab oma versiooni mempoolist. Kui kasutaja levitab tehingu, levib see üle võrgu ja ootab nendes basseinides kaevuri ülesvõtmist.

Mempool on koht, kus topeltkulutuse rünnak on kõige tõenäolisem. Ründaja võib levitada madala tasuga tehingu kauplejale ja vastuolulist kõrgema tasuga tehingut endale. Kaevurad on majanduslikult ratsionaalsed osalised. Nad prioriteerivad tavaliselt kõrgema tasuga tehinguid, et maksimeerida kasumit.

Kui kaupleja aktsepteerib tehingu enne kinnitust plokis, on ta ohus. Kaevur võib näha kõrgema tasuga vastuolu ja lisada selle plokki. Seepärast peetakse "null-kinnitusega" tehinguid ebaturvalisteks suurte summade jaoks. Maks on kuulutatud, kuid veel konsensusmehhanismiga kontrollimata.

Mempooli ummistus võib seda veelgi keerulisemaks teha. Kõrge võrguaktiivsuse perioodidel täitub mempool. Madala tasuga tehingud võivad oodata tunde või isegi päevi kinnitust. See viivitus võib kasutajates ärevust tekitada, kuid ei ohusta turvalisust. Kui kasutaja ootab kinnitust, jäävad rahad ohutuks.

Kinnitused ja lõplikkus

Bitcoini maailmas pole turvalisus binaarne; see on kumulatiivne. Tehing peetakse "kinnitatuks", kui see on plokki lisatud. Kuid üks kinnitus pole teoreetiliselt pöörduv. Harvadel juhtudel võivad kaks kaevurit leida ploki täpselt samal ajal. See loob ajutise kahuruloa plokiahelas, kus kaks konkurentsi ajalooversiooni eksisteerivad samaaegselt.

Võrk lahendab selle "pika ahela" reegliga (tehniliselt ahelaga, millel on enim kogutud töö tõendust). Kaevurad ehitavad esimese kehtiva ploki peale, mida nad saavad. Lõpuks kasvab üks ahel pikemaks ja lühem ahel hüljatakse. Hüljatud ploki (itusploki) tehingud naasevad mempooli.

Et kaitsta ploki itusmineku riski eest, ootavad saajad tavaliselt mitut kinnitust. Absoluutse turvalisuse tööstusstandard on kuus kinnitust. See tähendab, et tehing on maetud kuue arvutusliku töö ploki alla.

Sellel sügavusel muutub ahela ümberkorraldamise ja tehingu tagasipööramise energia astronoomiliselt kõrgeks. Väikeste maksete jaoks, nagu kohvi ost, võib piisata ühest kinnitusest (või isegi nullist, kui risk aktsepteeritav). Maja või auto ostuks tagab kuue kinnituse ootamine (umbes üks tund) matemaatiliselt püsiva ülekande.

Kinnitused Turvalisuse tase Tavaline kasutusjuhtum
0 Madal (riskantne) Väikesed, kohesed jaekaubad
1 Keskmine Igapäevased ostud, ülekanded
6 Väga kõrge Suured maksed, vahetused

Sõlmede võrk: hajutatud valideerijad

Kaevurad saavad tihti krediiti Bitcoini kaitsmise eest, kuid mittelkaevandavad sõlmed on tõelised reeglite jõustajad. Täissõlm on arvuti, mis hoiab kogu plokiahela koopia ja kontrollib iga tehingut protokolli reeglite vastu. Neid sõlmi on kümneid tuhandeid üle maailma hajutatult.

Kui kaevur pakub uut plokki, levitab ta selle võrgu sõlmede. Sõlmed ei aktsepteeri seda pimesi. Nad kontrollivad iseseisvalt iga plokis olevat tehingut. Nad kontrollivad, et topeltkulutust pole toimunud, et krüptograafilised allkirjad on kehtivad ja et kaevur lahendas töö tõenduse pusle õigesti.

Kui kaevur proovib petta – näiteks andes endale lisabittcoine või lisades kehtetu tehingu –, lükkavad sõlmed ploki tagasi. Pole tähtis, kui palju arvutusvõimsust pahatahtlikul kaevuril on. Kui plokk rikub reegleid, visatakse see võrgu poolt ära. See võimude tasakaal takistab kaevuritel protokollil türanniat rakendamast.

Sõlme käivitamine on loalõõni. Igaüks standardarvuti ja internetiga saab seda teha. See kättesaadavus on vitalne hajutatus jaoks. Kui sõlme käivitamine nõuaks kallist andmikeskuse riistvara, saaksid pearägu kontrollida ainult suured korporatsioonid. Riistvara nõuete mõistlikult hoidmisega tagab Bitcoin, et keskmised kasutajad saavad varusid auditeerida ja reegleid jõustada.

Hashrate: võrgu kaitsekiht

Bitcoini võrku kaitsev koguarvutusvõimsus mõõdetakse hashrate'iga. Hashrate tähistab kaevurite sekundis matemaatilisele pusle visatavate oletuste (hash'ide) arvu. Kõrgem hashrate tähendab turvalisemat võrku. See tähendab, et rohkem energiat ja riistvara on pühendatud pearägu praeguse seisundi säilitamisele.

Kui Bitcoini väärtus kasvab, muutub kaevandamine kasumlikumaks. See meelitab rohkem kaevureid, suurendades hashrate'i. Kuna hashrate tõuseb, kohandub kaevandamise pusle raskus automaatselt. See raskuse kohandamine toimub umbes iga kahe nädala tagant. See tagab, et plokid toodetakse keskmiselt iga 10 minuti järel, olenemata sellest, kui palju arvutusvõimsust liitub.

See enesereguleeriv mehhanism on stabiilsuse jaoks kriitiline. Kui raskus ei kohaneks, tooks kaevandusvõimsuse tõus kaasa liiga kiire ploki leidmise. See uppuks turu uute müntidega ja destabiliseeriks rahapoliitikat. Vastupidi, kui kaevurad lahkuvad ja raskus jääb kõrgeks, võiks võrk seisma jääda.

Bitcoini võrgu tohutu hashrate teeb muutumatu pearägu võimalikuks. See on füüsiline barjäär, mis eristab Bitcoini lihtsast andmebaasist. Andmebaasi ümberkirjutamiseks vajate administraatori volitusi. Bitcoini plokiahela ümberkirjutamiseks peate ületama väikeste riikide energiatoodangut.

Majanduslikud stiimulid ja halveerimine

Bitcoini turvalisusmudel tugineb tugevalt majanduslikele stiimulitele. Kaevurad ei kaitse võrku altruismist; nad teevad seda kasumi pärast. Protokoll premeerib neid kahe viisiga: plokipreemiate ja tehingutasudega. Plokipreemiat moodustavad uudsed bitcoini. See on ainus viis, kuidas uus valuuta varusse satub.

Inflatsiooni kontrollimiseks ja nappust jõustamiseks pooleldatakse plokipreemiat umbes iga nelja aasta järel. See sündmus on tuntud kui halveerimine. See vähendab uue varu emissiooni kiirust, muutes Bitcoini ajas deflatsiooniliseks varaks. Lõpuks jõuab plokipreemiat nullini (umbes aastal 2140).

Kuna plokipreemiat väheneb, saavad tehingutasud kaevurite peamiseks stiimuliks. Kui kasutajad saadavad tehinguid, lisavad nad tasu, et stiimuleerida kaevureid nende andmete järgmisse plokki lisama. See loob tasuturu. Kui plokiruumi nõudlus on kõrge, tõusevad tasud.

Üleminek plokipreemiate tasupõhisele turvalisusele on pikaajaline jätkusuutlikkuse plaan. See tagab, et kaevuritel on alati põhjus hashrate'i võrgule pühendada. Isegi pärast viimast bitcoini kaevandamist hoiab tehingute töötlemise ja tasude kogumise soov plokiahela digitaalsed seinad kõrgeks ja turvaliseks.

Järeldus

Topeltkulutamise probleem oli varajaste digitaalkvaluutade defineeriv tehniline ebaõnnestumine. Selle lahendamisega tõestas Bitcoin, et väärtust saab üle kanda ülemaailmselt ilma keskse vahendajata. Läbipaistva avaliku pearägu, töö tõenduse konsensuse ja UTXO mudeli kombinatsioon lõi süsteemi, kus usaldus tuleneb matemaatikast ja füüsikast mitte korporatiivse maine.

See hajutatud arhitektuur tagab, et ükski üksus ei saa manipuleerida rahavarudega ega kehtivaid tehinguid tagasi pöörata. Kuigi kaevandamise, sõlmede ja skriptimise mehhanismid on keerulised, töötavad nad harmoonias, et anda lihtne tulemus: digitaalne vara, mis on sama napp ja lõplik kui füüsiline kuld. Plokiahel pole lihtsalt andmebaas; see on uue ajastu automatiseeritud, usalduseta majanduskoostöö alus.

Bitcoin muudab energia turvalisuseks, luues efektiivselt esimese digitaalse objekti, mida ei saa kopeerida, vaid ainult üle kanda.