06 / 736PoW

Proof of Work

доказ обчислювальної роботи

Механізм, за допомогою якого Bitcoin перетворює електроенергію та обчислювальну потужність на легко перевірний доказ і впорядковує дійсну історію блоків за накопиченою роботою.

Завдяки Proof of Work створювати блоки Bitcoin витратно, а перевіряти їх легко. Майнери змагаються, виконуючи обчислення, результатів яких не можуть передбачити. Вони шукають хеш — цифровий відбиток заголовка блока, числове значення якого не перевищує межу, що називається target. Інші можуть швидко перевірити успішний результат. Full Node, тобто комп’ютер, який самостійно перевіряє правила Bitcoin, окремо перевіряє і транзакції: самого доказу роботи недостатньо для дійсності блока.

Уявіть лотерею, де виграшний квиток неможливо хитро обчислити наперед. Майнери знову і знову змінюють дані блока-кандидата та обчислюють хеш. Майже всі результати не підходять. Лише хеш із числовим значенням, меншим або рівним поточному target, може бути блоковим Proof of Work. Знайти його важко, а перевірити може будь-хто дуже швидко. Bitcoin не доводить корисність обчислення у звичайному сенсі; він створює публічний доказ того, що для конкретного Block Header було виконано пошук із витратами. [1] [2]

Block Header містить основні дані блока, а Merkle Root — спільний цифровий відбиток його транзакцій. Nonce — число, яке майнери можуть змінювати під час пошуку. ASIC — чип для певного обчислювального завдання; тут він багаторазово застосовує хеш-функцію SHA-256. Спочатку майнер складає блок-кандидат: вибирає транзакції, створює Coinbase Transaction із винагородою та обчислює Merkle Root. Ці значення разом із посиланням на попередній блок, часом, target і nonce утворюють Block Header. Спеціалізований ASIC обчислює подвійний SHA-256 для багатьох варіантів. Це не загадка, де кожен крок наближає відповідь. Кожна спроба дає новий випадковоподібний результат, а попередня невдача нічого не каже про наступну. [3] [1]

Hash можна читати як дуже велике число. Мережевий target — найбільше значення, яке ще дозволяють правила. Що він нижчий, то менша частка можливих хешів підходить і то більше спроб очікується. nBits зберігає target у заголовку в компактній формі. Складність лише відносно виражає вимогливість цієї цілі. Це не кількість нулів, джоулів чи частка потужності одного майнера. Конкретний блок може з’явитися відразу або після довгого очікування: правила визначають результат, а не фактичну кількість спроб. [2] [1]

Nonce у Block Header має лише чотири байти, тому швидкий ASIC може перебрати весь діапазон без успіху. Mining — не нескінченне збільшення одного числа. Програма може змінювати extra nonce у Coinbase Transaction, вибір або порядок транзакцій та інші дозволені дані. Це змінює Coinbase Transaction, Merkle Root і весь заголовок, створюючи новий простір кандидатів. Pool також розподіляє різну роботу між багатьма пристроями, щоб вони не перевіряли однакові варіанти. [3]

Хеш, що не перевищує target, виконує одну важливу умову, а не всі правила Bitcoin. Full Node перевіряє також розмір і структуру, походження, Coinbase Transaction, дозволену винагороду, підписи, скрипти й те, чи входи посилаються на наявні, ще не витрачені кошти. Дорогі обчислення не можуть примусити інших прийняти зайві bitcoin або подвійне витрачання. Недійсний блок залишається недійсним незалежно від енергії. І навпаки, кандидат із дійсними транзакціями без достатнього Proof of Work теж не може продовжити активний ланцюг. [4] [1]

Два майнери можуть майже одночасно опублікувати різні дійсні блоки на одній висоті, і мережа коротко бачить дві гілки. Серед дійсних кандидатів вузли обирають гілку з найбільшою накопиченою роботою, яку Bitcoin Core представляє як chainwork. Це не завжди простий підрахунок блоків, бо вони могли створюватися за різних значень target. Переписування підтвердженого платежу вимагає альтернативної дійсної історії та наздоганяння роботи звичайної гілки. Додаткові підтвердження зазвичай підвищують ціну атаки, але не створюють миттєвої математичної незворотності. [5] [1]

Hashrate показує кількість спроб хешування за секунду. Якби target ніколи не змінювався, зростання загального Hashrate прискорювало б блоки, а падіння потужності сповільнювало. Тому mainnet Bitcoin перераховує target після інтервалів у 2 016 блоків, повертаючи довгостроковий середній час приблизно до десяти хвилин. Розрахунок порівнює фактичну тривалість із запланованими двома тижнями й обмежує зміну межами протоколу. Retarget не реагує безпосередньо на ціну BTC, кількість користувачів або голосування майнерів за правила. Десять хвилин — цільове середнє, а не розклад наступного блока. [2]

Окремий майнер може чекати дійсний блок дуже довго, тому багато машин працюють через mining pool. Pool задає легший внутрішній share target і за поданими shares оцінює внесок учасників. Більшість shares не виконує суворіший мережевий target і ніколи не потрапляє до Blockchain. Якщо результат виконує і мережевий target, pool поширює повний блок-кандидат. Його прийняття визначає не pool і не розмір його Hashrate, а незалежна перевірка окремих вузлів. [3]

Фізичні пристрої споживають електроенергію та виділяють тепло під час пошуку. Bitcoin не записує в блок квитанцію за енергію. Виграшний хеш не показує точної кількості спроб, кіловат-годин, джерела струму чи місця майнера. Proof of Work надає історії економічний захист, бо нові спроби мають реальну ціну, але більше споживання саме по собі не означає досконалої безпеки чи чистішої роботи. Оцінка безпеки має враховувати валідацію, розподіл Hashrate і конкретну загрозу; енергетична — джерело, час, ефективність і альтернативне використання. [1] [2]

Full Node сам перевіряє попередній хеш, nBits, виведений target і хеш заголовка кожного блока. Дані дають змогу порівняти height, difficulty і chainwork, але виграшний хеш не розкриває особу чи точну енергію майнера. Твердження на кшталт «безпечно після шести підтверджень» потребує контексту: суми, можливостей противника, розподілу роботи та часу очікування. Proof of Work — не маркетингова назва і не голос майнерів за правила, а вузько визначений, легко перевірний вхід у механізм вибору між дійсними історіями. [2] [3] [5]

Для повної картини прочитайте також Майнінг, Difficulty Adjustment, Timechain / Blockchain, Full Node, Block Subsidy. На цю статтю також посилаються Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain / Blockchain.

DOC · 001Bitcoin whitepaperПервинне джерело DOC · 002Bitcoin Core v29.0: Proof of WorkПервинне джерело DOC · 003Bitcoin Developer Guide: MiningДокументація DOC · 004Bitcoin Core v29.0: block validationПервинне джерело DOC · 005Bitcoin Core v29.0: chainworkПервинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада