Rudarenje (mining)

Kod tradicionalnih novčanih sistema, vlade jednostavno izdaju više novaca kada im je to potrebno. Međutim, kod bitcoina, novac nije izdan nego je otkriven. Računala diljem svijeta „rudare“ za bitcoin i pritom se međusobno natječu.

Kako dolazi do rudarenja

Mining bitcoinaLjudi šalju bitcoinove jedni drugima preko cijele bitcoin mreže cijelo vrijeme, ali da netko ne prati te transakcije i ne vodi evidenciju o njima, nitko ne bi znao tko ima koliko novca. Bitcoin mreža to spriječava na način da se sve transakcije obavljene u određenom periodu sakupljaju i stavljaju u lanac blokova (eng. block chain). Posao rudara je u tom slučaju potvrđivanje i zapisivanje transakcija u glavnu knjigu (eng. General ledger), a kao nagradu rudar dobi svotu bitcoina.

Stvaranje hash-eva

Glavna knjiga je dugi lanac blokova. Ona se može koristiti za provjeru bilo koje transakcije napravljene između bilo kojih bitcoin adresa u bilo kojem vremenu. Kada je novi transakcijski blok napravljen, on se dodaje u lanac blokova, što stvara podosta dugu listu svih transakcija ikad napravljenih na bitcoin mreži. Nova kopija glavne knjige je konstantno dana svima koji sudjeluju kako bi mogli znati što se događa.

Međutim, glavna knjiga mora biti sigurna, a sve to je pohranjeno digitalno. Kako onda možemo biti sigurni da će lanac blokova ostati nedotaknut i da ga nikada nitko neće moći izmijeniti? U tome ulogu imaju rudari.

hashingKada je transakcijski blok stvoren, rudari ga stavljaju u proces obrade. Oni uzimaju informacije pohranjene u bloku i primjenjuju na to matematičku formulu, pretvarajući informacije u nešto puno kraće, naizgled nasumični niz brojeva i slova. To je hash. Taj hash je pohranjen zajedno sa blokom na kraju lanca blokova.

Hashevi imaju neke zanimljive karakteristike. Vrlo je lako proizvesti hash iz podataka kao što je bitcoin block, ali je gotovo nemoguće otkriti koji su to podatci gledajući samo hash. Vrlo lako je proizvesti hash iz velike količine podataka, ali svaki hash je unikatan. Ako se promijeni samo jedno slovo ili brojka, hash se kompletno mijenja.

Međutim, rudari ne koriste samo transakcijski blok kako bi generirali hash, već koriste i neke druge podatke.  Jedan od tih podataka jest hash zadnjeg bloka pohranjenog u lancu blokova.

block chain

Zbog toga što je hash svakog bloka napravljen pomoću hasha bloka prije njega, taj blok postaje digitalni oblik pečata. On potvrđuje da je taj blok, i svaki blok poslije njega, legitiman jer ukoliko biste ga dirali, svi bi to znali.
Ako pokušate krivotvoriti transakciju mijenjajući blok koji je već pohranjen u lancu blokova, to će promijeniti hash tog bloka. Ako bi netko išao provjeravati autentičnost bloka pokrećući hash funkciju na njemu, otkrio bi da je hash drugačiji od onoga bloka koji je već pohranjen pokraj njega u lancu blokova. Blok bi bio krivotvoren.

Zbog toga što je hash svakog bloka korišten za stvaranje sljedećeg bloka u lancu, mijenjanje jednog bloka bi izazvalo promjenu sljedećeg bloka. To znači da bi mijenjanje bilo kojeg bloka izazvalo lančanu reakciju koja bi se protezala sve do kraja lanca.

Konkurencija

Na ovaj način rudari zapečate blok. Svi se međusobno natječu pomoću softwarea napisanog specifično za to. Svaki put kada je hash uspješno kreiran, rudari dobe 25 bitcoinova, lanac blokova je ažuriran i svi na mreži čuju za to. To je jedan od poticaja da se nastavi rudariti i da transakcije funkcioniraju.

Problem jest što je vrlo lako kreirati hash od tih podataka. Računala su izuzetno dobra u tome. Zbog toga je Bitcoin mreža morala učiniti stvari težima, inače bi svi stvarali tisuće hasheva svake sekunde, a svi bitcoinovi bi bili „iskopani“ u par minuta. Bitcoin protokol namjerno otežava situaciju pomoću nečega što se zove „dokaz rada“ (eng. Proof of work).

proof of work

Bitcoin protokol neće prihvatiti bilo kakav hash. On zahtjeva da hash određenog bloka izgleda na određen način:  mora imati određen broj nula (0) na početku. Ne postoji način pomoću kojeg bi mogli znati kako će hash izgledati prije nego ga stvorimo, a svaki puta kada se u mješavinu doda novi komadić podatka, hash će izgledati potpuno drugačije.

Rudarima nije dopušteno mijenjati podatke unutar transakcijskog bloka, ali moraju mijenjati podatke koje koriste kako bi kreirali drugačiji hash. To rade koristeći drugi, nasumični, dio podatka zvan „nonce“. Koristi se sa transakcijskim podatcima kako bi se stvorio hash. Ako hash ne odgovara određenom formatu, nonce se mijenja i cijela stvar se ponavlja. Potrebno je mnogo pokušaja kako bi se pronašao nonce koji odgovara, a svi rudari na mreži rade istu stvar u isto vrijeme. Na taj način rudari zarađuju bitoinove.

Kako postati rudar i što je za to sve potrebno možete pročitati: Kako početi: Kako postati rudar.

Još nemaš Bitcoine? Što čekaš? Kreni već danas!

Source: