Proof of Work v Bitcoinu prokazuje splnění cílové podmínky dvojitého SHA-256 hashe hlavičky bloku. Obtížnost určuje očekávaný počet pokusů, nikoli přesnou spotřebu elektřiny nebo platnost transakcí.
Proof of Work není potvrzení, že těžař zaplatil elektřinu ani že blok je platný. Je to číselná podmínka nad hashem hlavičky: uzel přijme důkaz jen tehdy, když číselná hodnota hashe nepřesáhne cíl zakódovaný v nBits. Tento test je pro uzel levný, ale nalezení vhodného hashe je náhodné a při nižším cíli vyžaduje v průměru více pokusů. [Bitcoin whitepaper] [Bitcoin Core v29.0: Proof of Work]
ASIC může projít čtyřbajtový nonce v hlavičce a stále nic nenajít. Těžařský software pak změní například extra nonce v coinbase transakci; tím se změní Merkle Root, tedy i hlavička, pro kterou se hledá další hash. Není správné popisovat těžbu jako prosté postupné zvyšování jediného čísla. [Bitcoin Developer Guide: Mining]
nBits je kompaktní zápis cíle. Menší cílové číslo znamená méně přijatelných hashů a vyšší obtížnost; není to přímo procento výkonu, počet nul ani počet spotřebovaných jouleů. Jednotlivé pokusy jsou nezávislé, proto ani vysoký hashrate nezaručuje, kdo najde příští blok. [Bitcoin Core v29.0: Proof of Work] [Bitcoin whitepaper]
Uzel kromě důkazu práce kontroluje strukturu bloku, podpisy, nevyčerpané vstupy i pravidla coinbase. Pořadí kontrol v implementaci není tvrzením, že všechny proběhnou před kontrolou hashe. Hash pod cílem nemůže opravit neplatný podpis ani dvojí utracení. Naopak platný kandidát bez dostatečného důkazu práce také do aktivního řetězce nepatří. [Bitcoin whitepaper] [Bitcoin Core v29.0: block validation]
Při dočasné konkurenci platných větví uzel nepočítá jen jejich délku. Porovnává nahromaděnou práci odvozenou z cílů bloků. Útočník, který chce změnit dříve potvrzenou historii, musí vytvořit alternativní platné bloky a dohnat i překonat průběžně přibývající práci poctivé větve. To je ekonomická a pravděpodobnostní bariéra, ne okamžitá nevratnost. [Bitcoin whitepaper] [Bitcoin Core v29.0: chainwork]
Na mainnetu Bitcoin Core mění požadovaný cíl až na hranici intervalu obtížnosti. Porovnává skutečné rozpětí času s cílovým rozpětím a pro výpočet omezí pozorované rozpětí na čtvrtinu až čtyřnásobek cílového rozpětí; nový cíl zároveň nesmí překročit mainnetový limit. Retarget nereaguje na cenu BTC, na počet uzlů ani na rozhodnutí těžařů odhlasovat nové zásady. [Bitcoin Core v29.0: Proof of Work]
Pool může používat lehčí interní cíl pro share, aby měřil přibližný příspěvek účastníků. Takový share obvykle nesplňuje síťový cíl a nevstupuje do blockchainu. Nález pod síťovým cílem je jiná událost: pool pak šíří celý kandidátní blok a o jeho přijetí rozhodují nezávislé uzly. [Bitcoin Developer Guide: Mining]
Z vlastního uzlu nebo veřejných blokových dat lze porovnat hash hlavičky, bits, cíl, výšku a chainwork; z konkrétního vítězného hashe však nelze zpětně určit přesnou energii, jméno fyzického těžaře ani geografické místo. Při tvrzení o bezpečnosti je proto nutné uvést hodnotu platby, počet potvrzení a předpoklad o převaze poctivé práce. [Bitcoin Core v29.0: Proof of Work] [Bitcoin whitepaper]
Pro nejúplnější obraz čtěte toto heslo společně s Těžba, Úprava obtížnosti, Timechain, Full Node, Odměna za blok. Opačným směrem na něj odkazují také Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain.
01Proč Bitcoin potřebuje proof of work?+
Proof of work dává nezávislým uzlům objektivní způsob, jak porovnat soupeřící platné historie. Řetězec s největším součtem práce je drahé nahradit a nepotřebuje centrální hodiny ani registr hlasujících.
02Mohou těžaři s dostatkem výkonu změnit nabídku Bitcoinu?+
Ne. Hashrate pomáhá vybírat mezi bloky splňujícími konsenzus, ale full nody odmítnou blok, který vytváří příliš mnoho bitcoinů nebo utrácí mince bez platného oprávnění.