Nonce je središnji dio algoritma za dokaz rada (PoW) za rukovanje blokovima i kriptovalutama poput Bitcoina. Rudari se međusobno natječu da pronađite nonce koji proizvodi hash s vrijednošću manjom ili jednakom vrijednosti postavljenoj mrežnom poteškoćom. Ako rudar pronađe takvu vještinu, naziva se a zlatni nonce, tada osvajaju pravo dodavanja tog bloka u blockchain i dobivaju nagradu za blok.
Nonce je slučajan, jednokratni, cijeli broj. Rudari svake sekunde testiraju i odbacuju milijune novčanica. Nadaju se da će proizvesti hash vrijednost koja ispunjava cilj i tako osvojiti blok nagradu. To se događa tijekom PoW rudarstva na najosnovnijoj razini, mada ima puno više od toga. Ovdje ćemo istražiti cjelokupnu svrhu nonce tijekom čitavog procesa rudarstva.
Građevinski blokovi s nepotrebnim
Nonce je 32-bitni broj. Ostaje u zaglavlju bloka zajedno s ostalim ključnim podacima, poput cilja poteškoće i vremenske oznake. Kada rudari grade blokove, oni nasumično odabiru nonce i unose ga u zaglavlje bloka, stvarajući novo hash zaglavlja bloka.
Hash je 256-bitni broj i mora započeti s ogromnim brojem nula, tj. Ima nevjerojatno malu vrijednost. Ako nema dovoljan broj nula, tada rudar odbacuje hash i pokušava novi nonce. Ovaj se postupak ponavlja sve dok rudar ne otkrije nonce koji proizvodi hash s vrijednošću manjom ili jednakom vrijednosti koju je postavila poteškoća.
32-bitna veličina noncea znači da postoje četiri milijarde mogućih kombinacija. Iako je tehnički, puno je veći zbog nečega što se naziva dodatni nonce. Ovo je dodatni prostor za dulje odsustvo, što znači da možete imati desetke milijardi kombinacija.
Nonce je jedini parametar koji rudar mijenja, a svi ostali ostaju statični. Ako rudar pronađe zlatni nonce, dodaju taj blok u blockchain i dobivaju nagradu za blok. Trenutno ne postoji način da se ubrza postupak pronalaska ispravnog noncea. To znači da rudari samo rade metodom pokušaja i pogrešaka dok ne pronađu zlatnu priliku. Ovaj proces je ono što čini raditi, u dokaz o radu.
Odnos prema poteškoćama u rudarstvu
Kao što smo rekli, rudar pokušava pronaći slučaj koji proizvodi hash ispod vrijednosti postavljene mrežnom poteškoćom. Bitcoin protokol postavlja ovu poteškoću u rudarstvu. Kako se poteškoća povećava, tako se i ciljana vrijednost hasha smanjuje. To znači da na početku broja raspršivača mora biti više nula. Vjerojatnost pronalaska niže vrijednosti hasha smanjuje se i tako rudari moraju testirati više nonces-a. Kada rudar hashira blok, hash mora imati vrijednost jednaku ili manju od ciljanog broja da bi bila uspješna.
Prilikom iskopavanja Bitcoina, poteškoća se prilagođava svakih blokova 2016. godine. To se događa svaka dva tjedna. Međutim, drugi PoW blockchains imaju brže prilagodbe. Na primjer, Litecoin, zbog svog kraćeg vremena bloka, njegova se poteškoća prilagođava svaka tri i pol dana. Digibyte, s druge strane, prilagođava svoju težinu svakom bloku u stvarnom vremenu.
Zašto je prilagodba bitna
Da se poteškoća nije prilagodila, postojao bi linearni odnos između snage raspršivanja i nagrade bloka. Kako se više rudara pridružuje mreži i povećava se snaga raspršivanja, došlo bi i do odgovarajućeg povećanja Bitcoin nagrada. To bi potkopalo kontrolu nad inflacijom na Bitcoin protokolu, a time i njegova svojstva zvučnog novca.
Srećom, ako imate poteškoće s prilagodbom, nagrade blokova mogu se održati relativno stabilnima svaka dva tjedna. Teškoća se također može prilagoditi niže. Ako profitabilnost rudarstva nestane, tada će rudari prestati s radom i brzina raspršivanja pada. Tada će se poteškoća prikladno prilagoditi. To vidimo već nekoliko mjeseci na Bitcoin mreži od poteškoća je dosegla vrhunac 4. listopada.
Na Bitcoinu, nakon svih blokova 2016., Bitcoin klijent će usporediti realno vrijeme za svaki generirani blok u odnosu na ciljno vrijeme. Tada će teškoću prikladno prilagoditi. Cilj je rudari proizvoditi blokove što je moguće bliže točno deset minuta.
Zaštita algoritmima sigurnog raspršivanja
Otpornost algoritma SHA-256 sprječava rudare da mogu ubrzati i prevariti postupak pokušaja i pogrešaka. SHA-256 pripada SHA-2 obitelji sigurnih hash algoritama, a NSA ga je objavila 2001. Ako se ovaj algoritam pokvari, kao što se dogodilo klasi SHA-1 kriptografskih hash algoritama, tada bi PoW proces bio potkopan.
Postoji nekoliko načina za razbijanje hash algoritma. Pod tim mislimo na sposobnost zaobilaženja metode pokušaja i pogrešaka i pronalaženja ispravnih nonsa daleko brže. Napadi sudara su najnoviji i najučinkovitiji način za to.
Cjelokupna svrha sigurnog hash algoritma je osigurati jedinstvenost hash-a. Kada se podaci rasprše, ulazi bi trebali stvoriti potpuno jedinstveni broj raspršivanja. Jedini način na koji se isti broj može replicirati je s potpuno istim ulazima, uključujući i nonce. Napad sudara, međutim, znači da se isto raspršivanje može proizvesti iz različitih ulaza. Zlonamjerni glumac to može učiniti s dovoljno računalnih resursa. To potpuno potkopava svrhu algoritma sigurnog raspršivanja.
Sada kada se pokazalo da je napad sudara učinkovit protiv algoritama SHA-1, na njih se više ne može pouzdati. Napad je djelomično omogućen zbog velikog napretka u računalnoj snazi tijekom posljednjeg desetljeća.
U nekom trenutku, kada se računalne snage dovoljno povećaju, SHA-256 će također biti ranjiv na takve napade. Međutim, programeri za Bitcoin to bi trebali znati puno prije nego što se to dogodi. To je zato što se u teoriji gotovo uvijek pokazuje da su takvi napadi mogući prije nego što se stvarno dokaže da djeluju u stvarnom životu. Tim Bitcoin Core trebao bi se usmjeriti prema novom i tvrđem algoritmu.
Također je vrijedno napomenuti da većina protokola provjere autentičnosti na internetu trenutno koristi SHA-2 algoritme. Ako su preko noći postali ranjivi, tada bismo imali velike globalne probleme daleko izvan Bitcoinova rudarstva.
Vrijednost dokaza o radu
Rudari koriste svoj hardver za testiranje ovih nonces, brzinom od milijuna u sekundi. Činjenica da ne postoji način za brže pronalaženje izvana, PoW drži otvorenim i poštenim sustavom.
Korisna značajka ovog sustava je što mu je potrebna velika količina energije, vremena i kapitala da bi se riješila točna vrijednost i osvojio nagrada. Međutim, istodobno je drugim čvorovima nevjerojatno lako provjeriti točnu vrijednost. Ova podvojenost održava mrežu sigurnom i pruža jednostavan način za postizanje konsenzusa.
U konačnici, tada je nonce samo jedan mali dio procesa rudarstva Bitcoina. Međutim, igra presudnu ulogu u održavanju integriteta. Nonce je jedina i jedina stvar koju rudar mijenja kako bi pronašao dovoljnu hash vrijednost. To je stvarno gas, kočnica i spojka za cijelu postavku.