У Bitcoin Proof of Work засвідчує, що подвійний SHA-256 хеш заголовка відповідає цільовій умові. Складність описує очікувані спроби, а не точне споживання електроенергії чи дійсність транзакцій.
Proof of Work не засвідчує оплату електрики або дійсність блоку. Вузол перевіряє, чи числове значення хешу заголовка не перевищує ціль у nBits. Перевірка дешева, пошук випадковий, а менша ціль потребує в середньому більше спроб. [Bitcoin whitepaper] [Bitcoin Core v29.0: Proof of Work]
ASIC може перебрати весь чотирибайтовий nonce без успіху. Програма тоді змінює, наприклад, extra nonce транзакції coinbase, що змінює Merkle Root і заголовок наступного пошуку. Майнінг не є нескінченним збільшенням одного числа. [Bitcoin Developer Guide: Mining]
nBits компактно кодує ціль. Менша ціль допускає менше хешів і підвищує складність; це не частка потужності, кількість нулів або джоулів. Спроби незалежні, тому навіть високий hashrate не гарантує наступного блоку. [Bitcoin Core v29.0: Proof of Work] [Bitcoin whitepaper]
Крім роботи, вузол перевіряє структуру, підписи, невитрачені входи й правила coinbase. Порядок реалізації не означає, що все передує перевірці хешу. Хеш під ціллю не виправить недійсний підпис або подвійне витрачання; дійсний кандидат без достатньої роботи також не входить до активного ланцюга. [Bitcoin whitepaper] [Bitcoin Core v29.0: block validation]
Між дійсними конкурентними гілками вузол порівнює роботу, виведену з цілей блоків, а не лише довжину. Для переписування підтвердженої історії потрібні альтернативні дійсні блоки та наздоганяння й перевищення роботи чесної гілки, яка далі зростає. Це економічний і ймовірнісний бар’єр, не миттєва незворотність. [Bitcoin whitepaper] [Bitcoin Core v29.0: chainwork]
У mainnet Bitcoin Core змінює ціль на межах інтервалів складності. Порівнює спостережуваний і цільовий час, обмежує перший чвертю та чотирикратною величиною другого і застосовує граничну ціль mainnet. Ціна BTC, кількість вузлів чи голоси майнерів не визначають цей розрахунок. [Bitcoin Core v29.0: Proof of Work]
Пул може встановити легшу внутрішню ціль share для оцінки внесків. Більшість shares не досягає мережевої цілі та не входить у блокчейн. Мережевий успіх — інша подія: пул поширює повний блок-кандидат, а незалежні вузли вирішують, чи прийняти його. [Bitcoin Developer Guide: Mining]
Власний вузол або відкриті дані дозволяють порівняти хеш заголовка, bits, ціль, висоту та chainwork. Переможний хеш не показує точну енергію, фізичну особу майнера чи місце. Твердження про безпеку потребують суми платежу, кількості підтверджень та припущення переваги чесної роботи. [Bitcoin Core v29.0: Proof of Work] [Bitcoin whitepaper]
Кандидат також має задовольняти Proof of Work
Майнер готує блок-кандидат і змінює nonce та інші дані, що впливають на його заголовок. Він шукає подвійний SHA-256 хеш заголовка, числове значення якого менше або дорівнює поточному чинному target. Вищий hashrate дає більше спроб, а не право порушувати інші правила консенсусу; сам відповідний хеш ще не доводить дійсності всього блоку.
Для повної картини прочитайте також Майнінг, Коригування складності, Timechain / Blockchain, Full Node, Емісійна винагорода за блок. На цю статтю також посилаються Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain / Blockchain.
01Навіщо Bitcoin потрібен Proof of Work?+
Proof of Work дає незалежним вузлам об’єктивний спосіб порівнювати конкуруючі дійсні історії. Заміна історії вимагає заново виконати її роботу й наздогнати конкуруючу гілку. Вибір за накопиченою роботою не потребує центрального годинника чи реєстру виборців.