Problema, kurią sprendžia darbo įrodymas
Skaitmeninį registrą lengva nukopijuoti ir lengva redaguoti. Jei kas nors galėtų laisvai pridėti operacijas, jis taip pat galėtų išleisti tas pačias monetas du kartus — klasikinė „dvigubo išleidimo“ (double-spend) problema. Sistemoje be centrinio operatoriaus reikia būdo, kaip nepriklausomi dalyviai susitartų, kurios operacijos įvyko ir kokia tvarka, net kai kai kurie iš jų yra nesąžiningi arba neprisijungę.
Ankstesni skaitmeninių pinigų bandymai rėmėsi patikimu tarpininku, kuris tvarkė apskaitą. Bitcoin sandara, aprašyta 2008 m. baltojoje knygoje, tą patikimą tarpininką pakeitė viešu konkursu: dalyviai išleidžia realius išteklius blokams pridėti, o tinklas seka bendrą taisyklę laiminčiai grandinei parinkti. Konsensusas kyla iš kainos ir matematikos, o ne iš valdžios.
Ką kasėjai iš tikrųjų skaičiuoja
Kiekvienas bloko kandidatas turi operacijų paketą, nuorodą į ankstesnį bloką ir mažą keičiamą skaičių, vadinamą nonce. Kasėjai perleidžia šiuos duomenis per SHA-256 maišos funkciją, kuri bet kokią įvestį paverčia fiksuoto ilgio, nenuspėjamai atrodančiu rezultatu. Tikslas — rasti tokią įvestį, kuri sukurtų maišą, mažesnę už tam tikrą tikslinę reikšmę — praktiškai maišą, prasidedančią tam tikru nulių skaičiumi.
Kadangi maišos rezultatų negalima nei nuspėti, nei atkurti atbuline eiga, vienintelis būdas rasti tinkamą maišą yra bandymas ir klaida: pakeisti nonce, vėl maišyti, kartoti — milijardus kartų per sekundę. Ta brutalios jėgos paieška ir yra „darbas“. Ją tyčia sunku atlikti, bet bet kam kitam nesudėtinga patikrinti — vienas maišos skaičiavimas patvirtina, kad atsakymas galioja. Ši asimetrija (sunku sukurti, lengva patikrinti) yra darbo įrodymo esmė.
Sudėtingumas ir maždaug dešimties minučių ritmas
Bitcoin siekia, kad naujas blokas atsirastų vidutiniškai maždaug kas dešimt minučių. Kai prie tinklo prisijungia daugiau skaičiavimo galios (maišos dažnio, hash rate), blokai atsirastų greičiau, todėl protokolas periodiškai koreguoja sudėtingumą — kiek žema turi būti tikslinė maiša — kad vidutinis tempas išliktų pastovus. Maždaug kas dvi savaites (2 016 blokų) kiekvienas mazgas iš naujo apskaičiuoja sudėtingumą pagal pastarųjų blokų laikus.
Būtent dėl šio savireguliavimo daugiau kasybos galios ilgainiui nereiškia greitesnės blokų gamybos; tai daugiausia reiškia, kad tam pačiam pastoviam blokų srautui apsaugoti išleidžiama daugiau darbo. Tikslus bet kurio vieno bloko laikas yra atsitiktinis, todėl dešimt minučių yra ilgalaikis vidurkis, o ne tvarkaraštis.
Nuo blokų iki konsensuso: ilgiausia galiojanti grandinė
Rasti galiojantį bloką — tik pusė reikalo. Mazgams vis tiek reikia susitarti dėl vienos istorijos, kai du kasėjai randa blokus beveik tą pačią akimirką. Taisyklė tokia: mazgai seka galiojančią grandinę su didžiausiu bendru sukauptu darbo įrodymu — dažnai apibendrinama kaip „ilgiausia grandinė“, nors iš tikrųjų tai sunkiausia pagal kaupiamąjį darbą.
Kiekvienas pilnas mazgas savarankiškai patikrina kiekvieną bloką pagal Bitcoin taisykles: galiojantys parašai, jokio dvigubo išleidimo, teisingas bloko atlygis ir maiša, atitinkanti tikslą. Taisykles pažeidžiantys blokai tiesiog atmetami, nesvarbu, kiek darbo į juos įdėta. Laikini nesutarimai (šakojimaisi, forks) išsprendžiami, kai kitas blokas pratęsia vieną šaką, o sąžiningi kasėjai prie jos susitelkia, nes atlygis slypi statant ant priimtos grandinės.
Kodėl tai apsaugo tinklą
Norėdamas perrašyti praėjusią operaciją, užpuolikas turėtų iš naujo atlikti to bloko ir kiekvieno paskesnio bloko darbo įrodymą, o paskui aplenkti visą sąžiningą tinklą, kad sukurtų ilgesnę grandinę. Kuo giliau palaidota operacija, tuo daugiau darbo tektų pakartoti — todėl prekybininkai dažnai laukia kelių patvirtinimų. Kaina auga proporcingai bendram tinklo maišos dažniui.
Tai ir yra intuicija, slypinti už „51 % atakos“: valdant daugumą maišos galios, būtų galima pertvarkyti arba cenzūruoti pastarąsias operacijas. Tačiau tokią įrangą brangu įsigyti ir eksploatuoti, ji negali suklastoti parašų ar tiesiog pavogti monetų, o matoma ataka galėtų pakenkti būtent to turto vertei, kurio kasybai užpuolikas eikvoja išteklius. Paskatos suderintos taip, kad sąžiningai dalyvauti paprastai pelningiau nei pulti. Saugumas čia yra ekonominis ir tikimybinis, o ne absoliuti garantija.
Kompromisai ir platesnės diskusijos
Darbo įrodymo stiprybė — reali, išorinė kaina — yra ir dažniausios jo kritikos šaltinis: energijos suvartojimas. Bitcoin elektros suvartojimo vertinimai labai skiriasi ir laikui bėgant kinta, o vaizdą apsunkina auganti kai kurių kasėjų naudojamos izoliuotos, perteklinės ar atsinaujinančios energijos dalis. Protingi žmonės nesutaria, o detalės kinta; verta pasitikrinti dabartinius, patikimus šaltinius, o ne pasikliauti kuriuo nors vienu skaičiumi.
Alternatyvios konsensuso sandaros, tokios kaip statymo įrodymas (proof of stake), kai kuriuos kitus tinklus apsaugo naudodamos daug mažiau energijos, nes vietoj skaičiavimų remiasi ekonomine užstatų sistema. Jos remiasi kitomis prielaidomis ir kompromisais, o sąžiningas jų palyginimas yra atskira tema. Konkrečiai Bitcoin atveju darbo įrodymas išlieka mechanizmu, o jo saugumas ir emisijos grafikas su juo susieti.