Nonce je ústřední součástí algoritmu těžby proof of work (PoW) pro blockchainy a kryptoměny, jako je bitcoin. Horníci mezi sebou soutěží najít nonce, který produkuje hash s hodnotou nižší nebo rovnou hodnotě stanovené obtížností sítě. Pokud horník najde takovou nonce, zvanou a zlatá nonce, poté získají právo přidat tento blok do blockchainu a získat blokovou odměnu.

Nonce je náhodné, jednorázové, celé číslo. Horníci každou sekundu testují a likvidují miliony necesí. Doufají, že vytvoří hodnotu hash, která splní cíl, a tak vyhrají blokovou odměnu. To se děje během těžby PoW na nejzákladnější úrovni, i když je toho mnohem víc. Zde prozkoumáme celý účel nonce v celém těžebním procesu.

Building Blocks with Nonces

Nonce je 32bitové číslo. Zůstává v záhlaví bloku spolu s dalšími klíčovými daty, jako je cíl obtížnosti a časové razítko. Když horníci staví bloky, náhodně vyberou nonce a zadají jej do záhlaví bloku a vytvoří nový hash záhlaví bloku.

Hodnota hash je 256bitové číslo a musí začínat velkým počtem nul, tj. Mít neuvěřitelně malou hodnotu. Pokud nemá dostatečný počet nul, pak horník odhodí hash a pokusí se o novou nonce. Tento proces se opakuje, dokud horník neobjeví nonce, který vytvoří hash s hodnotou menší nebo rovnou hodnotě stanovené obtížností.

Bloková struktura

32bitová velikost nonce znamená, že existují čtyři miliardy možných kombinací. Ačkoli je to technicky, je mnohem vyšší kvůli něčemu, co se nazývá extra nonce. Toto je další prostor pro delší nonce, což znamená, že můžete mít desítky miliard kombinací.

Nonce je jediný parametr, který miner mění, všechny ostatní zůstávají statické. Pokud horník najde zlaté nonce, přidá tento blok do blockchainu a obdrží blokovou odměnu. V současné době neexistuje způsob, jak urychlit proces hledání správné nonce. To znamená, že horníci pracují pouze pokusem a omylem, dokud nenajdou zlatou nonce. Tento proces představuje práce, na důkaz práce.

Vztah k obtížnosti těžby

Jak jsme řekli, horník se snaží najít nonce, který produkuje hash pod hodnotou nastavenou obtížností sítě. Bitcoinový protokol nastavuje tuto obtížnost těžby. Jak se obtížnost zvyšuje, cílová hodnota hash klesá. To znamená, že na začátku hash čísla musí být více nul. Pravděpodobnost nalezení nižší hodnoty hash klesá, a proto musí horníci testovat více nonces. Když horník hašuje blok, hash musí mít hodnotu rovnou nebo menší než cílové číslo, aby byl úspěšný.

Při těžbě bitcoinů se obtížnost upravuje každých 2016 bloků. To funguje každé dva týdny. Jiné PoW blockchainy však mají rychlejší úpravy. Například litecoin kvůli jeho kratší době blokování se jeho obtížnost upravuje každé tři a půl dne. Na druhé straně Digibyte upravuje svou obtížnost v každém bloku v reálném čase.

Proč jsou úpravy důležité

Pokud by se obtížnost nepřizpůsobila, existoval by lineární vztah mezi hashovací silou a odměnami bloku. Vzhledem k tomu, že se do sítě připojuje více těžařů a zvyšuje se hashovací síla, došlo by k odpovídajícímu zvýšení odměn za bitcoiny. To by podlomilo kontrolu inflace na bitcoinovém protokolu a tím i na jeho vlastnostech zdravých peněz.

Naštěstí díky úpravě obtížnosti lze blokové odměny udržovat relativně stabilní každé dva týdny. Obtížnost lze také upravit nižší. Pokud ziskovost těžby zmizí, těžaři přestanou provozovat a hashovací sazba klesá. Obtíž se pak odpovídajícím způsobem upraví. Vidíme to nyní již několik měsíců v síti bitcoinů od obtížnost vyvrcholila 4. října.

Na bitcoinech bude bitcoinový klient po každých 2016 blocích porovnávat reálný čas pro každý blok, který má být generován, s cílovým časem. Poté vhodně upraví obtížnost. Cílem je, aby se těžařům vyráběly bloky co nejblíže přesně deseti minutám, jak je to možné.

Ochrana zabezpečenými algoritmy hash

Odolnost algoritmu SHA-256 znemožňuje těžařům zrychlit a podvádět proces pokusů a omylů. SHA-256 patří do rodiny bezpečných hash algoritmů SHA-2 a byl vydán NSA v roce 2001. Pokud by byl tento algoritmus porušen, jak se stalo u třídy SHA-1 kryptografických hash algoritmů, pak by byl narušen proces PoW..

Existuje několik způsobů, jak prolomit hashovací algoritmus. Tím máme na mysli schopnost obejít metodu pokusu a omylu a najít správné nonces mnohem rychleji. Kolizní útoky jsou nejnovější a nejúčinnější způsob, jak toho dosáhnout.

Celý účel bezpečného hash algoritmu je zajistit jedinečnost hash. Když jsou data hašována, vstupy by měly vytvořit zcela jedinečné hash číslo. Jediný způsob, jak lze replikovat stejné číslo, je s přesně stejnými vstupy, včetně nonce. Kolizní útok však znamená, že stejný hash lze vyprodukovat z různých vstupů. Zločinný herec to dokáže s dostatečnými výpočetními prostředky. To zcela podkopává účel zabezpečeného hashovacího algoritmu.

Funkce hash

Nyní, když se ukázalo, že kolizní útok je účinný proti algoritmům SHA-1, již se na ně nelze spolehnout. Útok byl umožněn částečně kvůli obrovskému pokroku v síle počítače za poslední desetiletí.

V určitém okamžiku, kdy se výpočetní síly dostatečně zvýší, bude SHA-256 vůči těmto útokům také zranitelný. Vývojáři bitcoinů by to však měli vědět dlouho předtím, než se to stane. Důvodem je, že téměř vždy se ukazuje, že takové útoky jsou teoreticky možné, než se skutečně osvědčí v reálném životě. Tým Bitcoin Core by se pak měl otočit směrem k novějšímu a tvrdšímu algoritmu.

Za zmínku stojí také to, že většina ověřovacích protokolů na internetu aktuálně používá algoritmy SHA-2. Pokud by se ze dne na den stali zranitelnými, měli bychom velké globální problémy daleko za hranicí těžby bitcoinů.

Hodnota dokladu o práci

Horníci používají svůj hardware k testování těchto nonces, rychlostí milionů za sekundu. Skutečnost, že neexistuje způsob, jak rychle najít nonce, udržuje PoW otevřený a spravedlivý systém.

Výhodou tohoto systému je, že vyžaduje obrovské množství energie, času a kapitálu k vyřešení správné hodnoty a získání odměny. Současně je však neuvěřitelně snadné pro ostatní uzly ověřit správnou hodnotu. Tato dichotomie udržuje síť zabezpečenou a poskytuje jednoduchý způsob, jak dosáhnout shody.

Nakonec je pak nonce jen jednou malou částí procesu těžby bitcoinů. Hraje však zásadní roli při udržování své integrity. Nonce je jediná věc, kterou miner změní, aby našel dostatečnou hodnotu hash. Ve skutečnosti je to akcelerátor, brzda a spojka pro celé nastavení.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me