Što znači dokaz rada?
Dokaz o radu opisuje sustav koji zahtijeva neznatan, ali izvediv napor kako bi se odvratilo neozbiljno ili zlonamjerno korištenje računalne moći, poput slanja neželjene e-pošte ili pokretanja uskraćivanja napada usluga. Hal Finney je koncept 2004. godine prilagodio novcu idejom "višekratnog dokaza rada". Nakon uvođenja 2009. godine, bitcoin je postao prva široko prihvaćena primjena Finneyjeve ideje (Finney je bio i primatelj prve bitcoin transakcije). Dokaz o radu također je osnova mnogih drugih kriptovaluta.
Objašnjenje rada
Ovo će se objašnjenje usredotočiti na dokaz rada kako funkcionira u bitcoin mreži. Bitcoin je digitalna valuta na kojoj se temelji vrsta distribuirane knjige poznata kao "blockchain". Ova knjiga sadrži evidenciju svih bitcoin transakcija, poredanih u "nizove", tako da nijedan korisnik ne smije potrošiti bilo koji svoj udjel dva puta. Kako bi se spriječilo neovlašteno diranje knjige, knjiga je javna ili "distribuirana"; izmijenjena verzija drugi korisnici bi brzo odbili.
Način na koji korisnici otkrivaju diranje u praksi kroz heševe, duge nizove brojeva koji služe kao dokaz rada. Stavite zadani skup podataka putem hash funkcije (bitcoin koristi SHA-256) i on će ikada generirati samo jedan hash. Zbog "efekta lavine", čak i sitna promjena bilo kojeg dijela originalnih podataka rezultirat će potpuno neprepoznatljivim hash-om. Bez obzira na veličinu izvornog skupa podataka, hash generiran određenom funkcijom bit će iste dužine. Hash je jednosmjerna funkcija: on se ne može koristiti za dobivanje izvornih podataka, samo za provjeru podudaraju li se podaci koji su stvorili hash izvornim podacima.
Generiranje bilo kojeg hash-a za skup bitcoin transakcija bilo bi trivijalno za moderno računalo, pa kako bi se proces pretvorio u "posao", bitcoin mreža postavlja određenu razinu "poteškoće". Ova je postavka podešena tako da se novi blok "minira" - dodaje se u blockchain generiranjem važećeg hash-a - otprilike svakih 10 minuta. Poteškoća s postavljanjem postiže se postavljanjem "cilja" za hash: što je niži cilj, manji je skup valjanih hash-ova i teže je generirati. U praksi to znači hash koji započinje dugačkim nizom nula: na primjer, hash za blok # 429818 je 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Taj blok sadrži 2.012 transakcija koje uključuju nešto više od 1.000 bitcoina, kao i zaglavlje prethodnog bloka. Ako bi korisnik promijenio jedan iznos transakcije za 0, 0001 bitcoin, rezultirajući hash bio bi neprepoznatljiv, a mreža bi odbacila prijevaru.
Budući da određeni skup podataka može generirati samo jedan hash, kako rudari postaju sigurni da generiraju hash ispod cilja? Oni mijenjaju ulaz dodavanjem cijelog broja, nazvanog nence ("broj jednom upotrijebljen"). Nakon što je pronađen važeći hash, on se emitira u mrežu, a blok se dodaje u blockchain.
Rudarstvo je natjecateljski proces, ali više je lutrija nego utrka. U prosjeku, netko će stvoriti prihvatljiv dokaz o radu svakih deset minuta, ali tko će to biti, nagađanje bilo koga. Rudari se udružuju kako bi povećali svoje šanse za miniranje blokova, što generira naknadu za transakcije i, na ograničeno vrijeme, nagradu novostvorenih bitcoina.
Dokaz rada izuzetno je teško izmijeniti bilo koji aspekt blockchaina jer će takva izmjena zahtijevati ponovno miniranje svih sljedećih blokova. Također korisniku ili skupu korisnika otežava monopoliziranje računalne snage mreže, jer su strojevi i snaga potrebni za dovršavanje hash funkcija skupi.