Навчайся · Як працює Bitcoin

Що таке доказ виконання роботи (PoW)?

Від команди CloudMineCryptoОновлено 9 хв читання

Коротка відповідь

Доказ виконання роботи — це спосіб, у який Bitcoin визначає, хто додасть наступний блок: майнер має довести, що виконав реальну обчислювальну роботу, знайшовши достатньо рідкісний хеш, перш ніж хтось прийме його блок. Майнер двічі хешує заголовок блоку розміром 80 байтів за допомогою SHA-256, щоразу змінюючи число під назвою nonce, доки хеш не стане меншим за цільове значення. На це йдуть трильйони спроб, а для перевірки потрібен лише один хеш. Тому, щоб переписати історію, довелося б повторити всю цю роботу.

Головне

  • Валідний блок має заголовок, подвійний хеш SHA-256 якого менший за цільове значення. Це видно за початковими нулями.
  • Єдиний спосіб — перебирати варіанти. Зміна одного символу перевертає приблизно половину бітів хешу.
  • Вузли дотримуються ланцюга з найбільшим обсягом роботи, тож зловмиснику знадобиться більша частина хешрейту.
  • Електроенергія тут не побічний ефект. Саме вона робить переписування історії Біткоїна дорогим.

Обчисли хеш сам · заголовок справжнього блоку

Відредагуй блок. Подвійний SHA-256 оновлюється, коли ти вводиш текст.

  1. Версія4 байтів

    20000000

  2. Хеш попереднього блока32 байтів

    000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

  3. Корінь Меркла32 байтів

    3526fd3f26cb386534c88c5455a8465f971578b7d9fb64b8a342ad0e99e4280e

    Відбиток транзакції вище. Введи текст, щоб змінити його.

  4. Час4 байтів

    2026-09-26 12:00 UTC

  5. Ціль (bits)4 байтів
    1f00ffff · 4 нулів
  6. Nonce4 байтів

Хеш блока · SHA-256 двічі

✓ Нижче цільового значення: дійсний блок

0000470da4a7ab0614c83d2181b1ef1c294e53f49cde408a8c9a08592bca6e17

ціль 0000ffff00000000000000000000000000000000000000000000000000000000

4 нулів на початку, цільове значення має бути 4

Твій браузер, як і майнер, перебирає нонс за нонсом.

Avalanche · біти, що змінилися після останньої правки

122 із 256 (48%)

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

80 байтів, які хешуються

000000206fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000000e28e4990ead42a3b864fbd9b77815975f46a855548cc8346538cb263ffd2635c0b3b76affff001f96060000

Числа зберігаються у форматі little-endian, а байти хешів розвернуті, як це робить Bitcoin. У справжньому блоці сьогодні потрібно приблизно 20 нулів на початку (оцінка за хешрейтом мережі в реальному часі).

Що таке proof of work?

Визначення · Proof of work (PoW)

Система, у якій право додати блок отримує той, хто першим знаходить хеш заголовка блока, менший за цільове значення. Для пошуку потрібна величезна кількість спроб, а для перевірки достатньо одного хешування.

Сатоші Накамото описав це в технічному документі про Біткоїн у 2008 році, спираючись на Hashcash Адама Бека. Це давніша ідея, яка мала зробити розсилання спаму електронною поштою дорогим. Валідний хеш і є доказом. Його неможливо отримати, не виконавши роботу, і кожен може перевірити, що ти її виконав.

Далі на цій сторінці розглянемо кожну частину окремо, а у вікні вище можна спробувати самому: це справжній формат заголовка Bitcoin, хеш якого обчислюється просто у вашому браузері. Щоб розібратися в майнінгу загалом, перегляньте наш повний посібник із майнінгу Bitcoin.

Яку проблему розв’язує доказ роботи?

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

Звичайне голосування в інтернеті не працює, бо кожен може запустити тисячу фальшивих комп’ютерів і проголосувати тисячу разів. Це називається атакою Sybil. Proof of work обходить цю проблему: твій голос вимірюється в хешах, а для хешування потрібні електроенергія та обладнання.

Хто вирішує, яким буде наступний блок?

Один голос за вузол

Один зловмисник безкоштовно створює 60 фальшивих вузлів і переважає голоси 12 чесних вузлів.

Один голос за хеш

чесні майнери 88%зловмисник 12%

Ті самі 60 вузлів ділять між собою справжнє обладнання зловмисника, тож разом вони все одно мають 12%. Копії безкоштовні, а хеші ні.

Атака Sybil полягає у створенні багатьох фальшивих ідентичностей. Proof of work не зважає на ідентичності, а враховує лише виконану роботу, яка коштує реальних грошей.

Що містить заголовок блока Біткоїна?

Майнери хешують не весь блок. Вони хешують його заголовок розміром 80 байтів, який містить посилання на все інше. Ось шість полів, які ти редагував у полі вище:

ПолеБайтиЩо в ньому міститьсяХто його змінює
Версія4За якими правилами створено блокЗмінюється рідко
Хеш попереднього блоку32Хеш попереднього блока, який з’єднує блоки в ланцюгОновлюється з кожним блоком
Корінь Меркла32Один відбиток усіх транзакцій у блоціМайнер, коли змінюються транзакції або додатковий nonce
Час4Коли, за словами майнера, було створено блок (Unix time)Майнер, у межах обмежень
Біти4Ціль, упакована у 4 байтівМережа, кожні 2 016 блоків
Нонс4Безкоштовне число для нової спробиМайнер, на кожній спробі

Оскільки заголовок містить хеш попереднього блока, зміна старого блока змінює його хеш. Через це порушується відповідність у наступному заголовку, а потім і в наступному. Коли створювали цю сторінку, ми перевірили справжній генезис-блок Bitcoin від 2009 на своєму сервері тим самим кодом, що й у верхньому блоці сторінки:

SHA-256(SHA-256(genesis header)) =
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Перший блок Bitcoin: версія 1, nonce 2 083 236 893. Його хеш починається з 10 нулів і збігається з тим, який знає кожен вузол Bitcoin.

Як працює SHA-256 у Bitcoin?

SHA-256 перетворює будь-які дані на число завдовжки 256 біт, записане 64 шістнадцятковими символами. Біткоїн застосовує його до заголовка двічі (це називають SHA-256d). Для майнінгу важливі прості властивості:

Однаковий вхід, однаковий результат

Детермінований

Той самий заголовок завжди дає той самий хеш на будь-якому комп’ютері. Тому його можна перевірити.

256 бітів

Фіксований розмір

Короткий рядок чи ціла книжка: хеш завжди має 64 шістнадцяткових символів.

Односторонній

Шляху назад немає

Неможливо обчислити вхідні дані так, щоб отримати потрібний хеш. Можна лише пробувати різні дані.

≈ 50%

Avalanche

Зміни один символ, і приблизно половина бітів зміниться. Подивися на сітку в головному блоці.

Ця остання властивість і є основою proof of work. Хеш, близький до цільового значення, нічого не говорить про наступну спробу, тож хитрого способу знайти валідний блок немає. Усі майнери беруть участь в одній лотереї, а більше хешів за секунду просто дає більше квитків.

Що таке target і навіщо ці нулі на початку?

Ціль — це 256-бітове число. Блок дійсний, якщо його хеш, прочитаний як число, не перевищує ціль. Малі числа починаються з нулів, тож нижча ціль означає більше нулів на початку. Кожен додатковий шістнадцятковий нуль означає в середньому у 16 разів більше спроб.

Середня кількість хешів, потрібна для знаходження одного валідного блока

  • Навчальний блок у головному блоці сторінки · 4 початкових шістнадцяткових нулів65,536
  • Найпростіша ціль Bitcoin (2009) · 8 початкових шістнадцяткових нулів, біти 1d00ffff4,294,967,296
  • Блок Bitcoin сьогодні · приблизно 20 нулів на початку в шістнадцятковому записі (поточна оцінка)4.9 × 1023
Шкала смуг логарифмічна: кожен додатковий нуль означає в середньому в 16 разів більше роботи. Поточний рядок показує нашу оцінку: хешрейт мережі, помножений на 600 секунд. Дані оновлюються щогодини.

Мережа змінює цільове значення кожні 2 016 блоків, приблизно раз на два тижні. Так блоки з’являються приблизно кожні десять хвилин, хоч би скільки хешрейту приєднувалося до мережі чи відключалося від неї. Зараз мережа працює на рівні близько 811 EH/s (дані актуальні, оновлюються щогодини). Про те, як працює це коригування, читай у нашому посібнику зі складності майнінгу Біткоїна, а про одиниці вимірювання розповідає пояснення хешрейту.

Що таке нонс і додатковий нонс?

Nonce («число, яке використовують один раз») — це поле розміром 4 байтів, яке майнери змінюють із кожною спробою. Це єдине поле, призначене лише для змін. Проблема в тому, що 4 байти дають лише близько 4,3 мільярдів значень, а сучасні машини перебирають їх майже миттєво.

Цикл майнера

  1. 01

    Перебрати всі значення nonce

    0, 1, 2 і так далі до 4 294 967 295. Це всі значення, які можуть вмістити 4 байти.

  2. 02

    Швидко вичерпуються

    Один пристрій на 100 TH/s перебирає всі варіанти приблизно за 43 мільйонних часток секунди.

  3. 03

    Змінити додатковий nonce

    Майнер змінює вільне поле у власній транзакції винагороди (coinbase).

  4. 04

    Новий корінь Меркла

    Транзакція змінилася, тому змінився корінь Меркла, і кожен nonce знову дає нові хеші.

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

Тому майнери також змінюють додатковий nonce: кілька вільних байтів у coinbase, першій транзакції блока, яка виплачує винагороду майнеру. Нова coinbase означає новий корінь Меркла, а отже, мільярди нових nonce для перевірки. У майнінг-пулі пул виділяє кожному майнеру окремий діапазон додаткових nonce, щоб ніхто не повторював роботу інших.

Чому знайти блок дорого, а перевірити дешево?

Щоб знайти блок

≈ 4.9 × 1023 хешів

Уся мережа, всі її машини, приблизно десять хвилин спроб.

Поточна оцінка, оновлюється щогодини.

Щоб перевірити

1 хеш

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

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

Спробуй сам виконати пошук нижче. У цій демонстрації формат блока простіший, ніж у головному блоці, але це та сама лотерея з подвійним SHA-256, а кожен знайдений блок посилається на попередній.

Інтерактив · видобудь блок у браузері

Справжній SHA-256d proof of work, спрощений заголовок

Блок №1Попередній хеш0000000000000000000000000000000000000000000000000000000000000000Нонс0

Хеш блоку (подвійний SHA-256)

Зміни транзакції: хеш повністю зміниться навіть від однієї літери.

Спроби: 0

Твій хешрейт: н/д

Час: 0,0 s

Що таке правило найдовшого ланцюга й атака з часткою 51%?

Іноді два майнери знаходять блок майже одночасно, і в мережі ненадовго з’являються дві версії ланцюга. Вузли обирають ланцюг із найбільшим сумарним обсягом виконаної роботи. Його називають найдовшим, але точніше було б сказати найважчим: кілька блоків із високою складністю можуть переважити більшу кількість блоків із низькою.

Щоб скасувати платіж, зловмиснику довелося б побудувати довший ланцюжок, ніж у всіх інших, починаючи з блока перед цим платежем. Кожен новий блок зверху (підтвердження) ще більше його віддаляє. У whitepaper обчислено ймовірність. Пересуньте повзунок, щоб побачити її:

Інтерактив · чи зможе зловмисник наздогнати?

Формула з розділу 11 білої книги Bitcoin

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Підтвердження: на скільки блоків зловмисник відстає. Шкала смуг логарифмічна: від одного шансу на мільйон до повної впевненості.

За хешрейту 10% імовірність переписати платіж після 6 підтверджень становить 0,024%, а після 1 підтвердження — 20,5%.

За хешрейту 50% або більше зловмисник зрештою переможе. Це атака з 51% хешрейту. Вона серйозна, але має обмеження:

Маючи більшу частину хешрейту, зловмисник може

  • Замінити нещодавні блоки власним ланцюгом
  • Подвійно витратити монети, які вони надіслали самі собі
  • Не включати деякі транзакції до своїх блоків

Навіть тоді вони не можуть

  • Витрачати монети з чужих гаманців
  • Створювати монети понад винагороду за блок
  • Змінити правила Bitcoin для всіх інших

Тому біржі чекають на кілька підтверджень для великих депозитів. Шість підтверджень зазвичай вважають достатньою кількістю.

Чому доказ роботи споживає так багато енергії?

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

Куди йде енергія і що вона дає

  1. Нагорода за блок і комісії

    Нові BTC плюс комісії за кожен блок отримує той, хто його знаходить.

  2. Обладнання та електроенергія

    Майнери витрачають на це не більше, ніж для них варта винагорода.

  3. Хешрейт мережі

    Усі ці витрати відображаються в кількості хешів за секунду.

  4. Вартість переписування історії

    Зловмиснику доведеться перевершити всі ці витрати, блок за блоком.

Уяви це як цикл: що більше коштує винагорода, то більше хешрейту вона приваблює і то дорожча атака.

Скільки на це йде електроенергії та звідки вона надходить — предмет цілком доречної дискусії. Індекс Cambridge відстежує оцінки, а в нашому посібнику з енергоспоживання майнінгу Bitcoin розглянуто цифри. Кожен халвінг зменшує частину винагороди за нові монети, тож із часом більшу частину витрат на безпеку мають покривати комісії.

Proof of work і proof of stake: у чому різниця?

Proof of stake (PoS) обирає творця наступного блоку серед тих, хто блокує монети як заставу, а не серед тих, хто витрачає електроенергію. Ethereum перейшов із proof of work на proof of stake у 2022. Ось чесне порівняння пліч-о-пліч:

Proof of workProof of stake
Хто додає наступний блокПерший майнер, який знайде хеш, менший за цільове значенняВалідатор, якого обирають пропорційно до його стейку
Що його захищаєЕлектроенергія та обладнання, витрачені поза блокчейномМонети, заблоковані в ланцюжку, які можна відібрати за шахрайство
Споживання енергіїВисока за задумомНизький
Щоб долучитисяОбладнання та дешева електроенергіяМонети для стейкінгу
РозрахункиСтає безпечнішим з кожним підтвердженнямЯвні контрольні точки фінальності
Основна критикаСпоживання енергії та концентрація майнінгуКонцентрація стейку й складніша конструкція
ІсторіяBitcoin від 2009Ethereum, від 2022

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

Can you get mining rewards without running proof of work yourself?

Yes. With CloudMineCrypto you mine bitcoin for free from your phone or browser, with no hardware, noise or power bill. Claim the free 8-hour plan, and add more free plans by watching ads, playing games, completing offers and checking in daily. Your estimated BTC ticks up while your plans run, and you withdraw to your own wallet, Lightning included.

Each plan has a hashrate, and your estimate is that hashrate’s share of the whole network, times 6 blocks an hour, times the block reward. That’s the formula the app uses to estimate your rewards (rules and limits apply). Want more speed? Paid plans are an optional boost for fun. They usually mine less than they cost, and the price is shown before you confirm.

Варто знати: винагороди є оцінками, змінюються разом із мережею й не гарантовані, а план не дає права власності на будь-який пристрій чи пул. Для виведення коштів можуть діяти обмеження або може знадобитися верифікація. Деталі наведено в правилах винагород і безплатному посібнику з майнінгу Bitcoin. Діють умови.

Поширені запитання

Що таке доказ роботи простими словами?

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

Що таке нонс у Біткоїні?

Число розміром 4 байтів у заголовку блока, яке майнери змінюють під час кожної спроби. Воно має близько 4,3 мільярда можливих значень. Коли вони вичерпуються, майнери змінюють додатковий nonce у транзакції coinbase. Це дає новий корінь Меркла й новий набір хешів.

Чому Біткоїн двічі застосовує SHA-256?

Bitcoin хешує заголовок розміром 80 байтів за допомогою SHA-256, а потім хешує результат ще раз. Сатоші так і не пояснив цей вибір. Зазвичай вважають, що це захищає від атак із подовженням довжини й додає запас безпеки.

Що дозволяє зробити атака з часткою 51%?

Той, хто контролює більшу частину хешрейту, може приватно створити довший ланцюг і замінити нещодавні блоки. Так він може двічі витратити власні монети або блокувати деякі транзакції. Але він не може витрачати чужі монети, створювати монети всупереч правилам чи змінювати правила для всіх.

Чи кращий Proof of Stake за Proof of Work?

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

Can I get bitcoin mining rewards without my own hardware?

Yes. In the CloudMineCrypto app you claim free mining plans (the free plan, ads, games, offers and a daily check-in) and your estimated BTC ticks up while they run, then you withdraw to your own wallet. Rewards are estimates based on your plan’s hashrate and live network data, they aren’t guaranteed, and a plan doesn’t give ownership of any hardware.

Джерела та що почитати далі

  1. Bitcoin: A Peer-to-Peer Electronic Cash System (whitepaper) · Сатоші Накамото, bitcoin.org
  2. Гід по блокчейну: заголовки блоків, proof of work, coinbase · Документація розробника Bitcoin
  3. Посібник з майнінгу: соло-майнінг, пули, getblocktemplate · Документація розробника Bitcoin
  4. Складність · Bitcoin Wiki
  5. Підтвердження · Bitcoin Wiki
  6. Cambridge Bitcoin Electricity Consumption Index · Cambridge Centre for Alternative Finance
  7. Панель майнінгу: хешрейт, складність, нещодавні блоки · mempool.space

Поточні дані на цій сторінці надходять з API CloudMineCrypto або з указаних поруч загальнодоступних сервісів даних блокчейну, оновлюються за розкладом і позначені там, де відображаються. Цей посібник має освітню мету й не є фінансовою порадою. CloudMineCrypto не є інвестиційним продуктом; винагороди в застосунку є приблизними й не гарантовані.

Ти вже прочитав(ла), як це працює. Тепер подивися, як це відбувається.

Забери безплатний майнінг-план на 8 годин у застосунку CloudMineCrypto і дивись, як зростає твій оціночний BTC на основі живих даних мережі. Без заліза, без картки.