Probleem, mille proof of work lahendab
Digitaalset pearaamatut on lihtne kopeerida ja lihtne muuta. Kui igaüks saaks tehinguid vabalt lisada, saaks ta ka samu münte kaks korda kulutada — klassikaline „topeltkulutamise“ probleem. Keskse operaatorita süsteemis on vaja viisi, kuidas sõltumatud osalejad lepivad kokku, millised tehingud toimusid ja millises järjekorras, isegi kui mõned neist on ebaausad või võrguühenduseta.
Varasemad katsed luua digitaalset raha tuginesid usaldusväärsele osapoolele, kes pidas raamatupidamist. Bitcoini disain, mida kirjeldati 2008. aasta valges raamatus, asendas selle usaldusväärse osapoole avaliku võistlusega: osalejad kulutavad plokkide lisamiseks päris ressursse ning võrk järgib võiduahela valimiseks jagatud reeglit. Konsensus tekib kulust ja matemaatikast, mitte võimust.
Mida kaevandajad tegelikult arvutavad
Iga kandidaatplokk sisaldab hulka tehinguid, viidet eelmisele plokile ja väikest muudetavat arvu nimega nonce. Kaevandajad lasevad need andmed läbi räsifunktsiooni SHA-256, mis muudab mis tahes sisendi fikseeritud pikkusega ja ettearvamatu välimusega väljundiks. Eesmärk on leida sisend, mis toodab räsi, mis on allpool teatud sihtväärtust — praktikas räsi, mis algab kindla arvu nullidega.
Kuna räsiväljundeid ei saa ennustada ega tagurpidi tuletada, on ainus viis sobiva räsi leidmiseks katse-eksituse meetod: muuda nonce'i, räsi uuesti, korda — miljardeid kordi sekundis. See toore jõu otsing ongi „töö“. Seda on meelega raske teha, kuid ükskõik kellel teisel triviaalne kontrollida — üksainus räsiarvutus kinnitab, et vastus on kehtiv. See asümmeetria (raske toota, lihtne kontrollida) on proof of worki tuum.
Raskusaste ja umbes kümneminutiline rütm
Bitcoin püüab luua uue ploki keskmiselt umbes iga kümne minuti tagant. Kui võrguga liitub rohkem arvutusvõimsust (räsikiirus), kipuksid plokid saabuma kiiremini, seega kohandab protokoll perioodiliselt raskusastet — kui madal peab sihträsi olema —, et hoida keskmine tempo stabiilne. Umbes iga kahe nädala tagant (2016 plokki) arvutab iga sõlm raskusastme ümber hiljutiste plokkide aegade põhjal.
See iseregulatsioon on põhjus, miks suurem kaevandamisvõimsus ei tähenda aja jooksul kiiremat plokkide tootmist; see tähendab peamiselt seda, et sama stabiilse plokkide voo turvamiseks kulutatakse rohkem tööd. Iga üksiku ploki täpne ajastus on juhuslik, seega on kümme minutit pikaajaline keskmine, mitte ajakava.
Plokkidest konsensuseni: pikim kehtiv ahel
Kehtiva ploki leidmine on vaid pool lugu. Sõlmed peavad ikkagi leppima kokku ühes ajaloos, kui kaks kaevandajat leiavad plokid peaaegu samal hetkel. Reegel on, et sõlmed järgivad kehtivat ahelat, millel on suurim kogunenud proof of work kokku — sageli võetakse see kokku kui „pikim ahel“, ehkki tegelikult on see kumulatiivse töö poolest raskeim.
Iga täissõlm kontrollib iga plokki iseseisvalt Bitcoini reeglite järgi: kehtivad allkirjad, topeltkulutamist ei ole, õige ploki tasu ja räsi, mis vastab sihtväärtusele. Reegleid rikkuvad plokid lihtsalt lükatakse tagasi, olenemata sellest, kui palju tööd neisse pandi. Ajutised lahkarvamused (kahvlid) lahenevad, kui järgmine plokk pikendab üht haru, ja ausad kaevandajad koonduvad selle ümber, sest tasu asub aktsepteeritud ahelale ehitades.
Miks see turvab võrku
Möödunud tehingu ümberkirjutamiseks peaks ründaja tegema uuesti proof of worki selle ploki ja iga sellele järgneva ploki jaoks ning seejärel edestama kogu ausat võrku, et ehitada pikem ahel. Mida sügavamale on tehing maetud, seda rohkem tööd tuleks uuesti teha — seepärast ootavad kauplejad sageli mitut kinnitust. Kulu kasvab võrgu kogu räsikiirusega.
See on „51% rünnaku“ taga peituv loogika: räsivõimsuse enamuse kontrollimine võiks lubada kellelgi hiljutisi tehinguid ümber järjestada või tsenseerida. Kuid selle riistvara hankimine ja käitamine on kulukas, see ei saa allkirju võltsida ega münte otse varastada ning nähtav rünnak võiks õõnestada just selle vara väärtust, mille kaevandamiseks ründaja ressursse kulutab. Stiimulid on joondatud nii, et aus osalemine on üldiselt tulusam kui ründamine. Turvalisus on siin majanduslik ja tõenäosuslik, mitte absoluutne garantii.
Kompromissid ja laiem arutelu
Proof of worki tugevus — päris, väline kulu — on ühtlasi ka selle kõige levinuma kriitika allikas: energiatarbimine. Hinnangud Bitcoini elektritarbimise kohta varieeruvad suuresti ja muutuvad aja jooksul ning pilti muudab keerulisemaks kasvav osakaal kinnijäänud, ülejääk- või taastuvenergiast, mida mõned kaevandajad kasutavad. Mõistlikud inimesed on eriarvamusel ja konkreetsed andmed nihkuvad; tasub kontrollida praeguseid, usaldusväärseid allikaid, mitte ühtainsat arvu.
Alternatiivsed konsensusdisainid nagu proof of stake turvavad mõningaid teisi võrke tunduvalt vähema energiaga, kasutades arvutuse asemel majanduslikku tagatist. Need hõlmavad erinevaid eeldusi ja kompromisse ning nende õiglane võrdlemine on omaette teema. Konkreetselt Bitcoini puhul jääb proof of work mehhanismiks ning selle turvalisus ja emissioonigraafik on sellega seotud.