ГоловнаСтаттіКриптографія

Видобування Біткоїна: Головоломка Доказу Роботи За Кожен Блок

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

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Загадка безshortcutів

Видобування біткоїнів – це грубе обчислення, яке полягає у пошуку числа – nonce – таким чином, щоб хешування вмісту блоку разом із цим nonce через SHA-256 давало вихідний результат нижче заданого цільового порогу. SHA-256 є криптографічною функцією хешування: детермінованою (однакові вхідні дані завжди дають один і той самий вихід), але без відомих способів передбачити або розшифрувати, які вхідні дані генерують певні вихідні дані. Єдиний відомий спосіб знайти nonce, який працює, – це пробувати кандидатів один за одним і перевіряти.

SHA256( SHA256( block_header || nonce ) )  <  target

  block_header = previous block hash, Merkle root of transactions, timestamp, difficulty bits, nonce
  target       = a 256-bit number; smaller target = harder puzzle
                 (equivalently: hash must start with enough leading zero bits)
жива демонстрація · пов'язана симуляція● LIVE

Чому регулюється складність, а не зусилля

Оскільки SHA-256'а вихід даних для цієї мети нерозрізнюваний від випадкового 256-бітного числа для кожного спроба nonce, знаходження хешу нижче заданої мети є Бернуллівським експериментом, повторюваним знову і знову: кожне спробування має фіксовану, мізерну ймовірність p успіху, рівну target/2²⁵⁶, а спроби незалежні, тому кількість спроб, необхідних для знаходження дійсного nonce, слідує геометричному розподілу. Очікувана кількість хешових спроб для пошуку дійсного nonce дорівнює точно 1/p — немає способу шукати розумніше, лише швидше (більше спроб на секунду) або паралельно через багато машин, що є причиною еволюції обладнання для майнінгу від CPU до GPU та спеціалізованих ASIC, які безпосередньо полюють за чистою хеш-продуктивністю.

Ціль у 10 хвилин та автоматична корекція складності

Протокол біткоїна ставить за мету створення нового блоку приблизно кожні 10 хвилин, незалежно від загальної обчислювальної потужності (хешрейту), яка направлена на мережу в будь-який момент часу. Це досягається завдяки самокоректуючому зворотного зв’язку: кожні 2016 блоків (приблизно два тижні за цільового часу в 10 хвилин) мережа перераховує цільову складність на основі того, скільки часу дійсно потрібно було знайти попередні 2016 блоків.

новий_ціль = старий_ціль × (фактичний_час_для_2016_блоків / очікуваний_час_20160_мін) зростання хешрейту → блоки знаходяться швидше за 10 хв → ціль зменшується → головоломка стає складнішою падіння хешрейту → блоки знаходяться повільніше за 10 хв → ціль зростає → головоломка стає легшою Це прямий негативний зворотний зв’язок з формулою очікуваних спроб вище: оскільки очікувані спроби масштабуються як 1/ціль, зменшення цілі безпосередньо збільшує очікувану роботу на блок точно на той фактор, який компенсує скільки швидше зросла загальна хешрейт мережі, підтримуючи середній час блоку близько 10 хвилин, незалежно від того, чи на мережу спрямовано десять комп’ютерів, чи десять мільйонів.

new_target = old_target × (actual_time_for_2016_blocks / expected_time_of_20160_min)

  hashrate rises → blocks found faster than 10 min → target shrinks → puzzle gets harder
  hashrate falls → blocks found slower than 10 min → target grows → puzzle gets easier

Чому доказ роботи забезпечує захист ланцюга

Аргумент щодо безпеки повністю базується на вартості, а не на секретності. Кожна заголовка блоку містить хеш попереднього блоку, тому будь-яка зміна попереднього блоку призведе до зміни його хешу та розриву зв’язку ланцюга з усіма наступними блоками – нападник повинен буде повторити доказ роботи для цього блоку та кожного наступного блоку, намагаючись обігнати обчислювальну потужність всієї чесної мережі, перш ніж їхня альтернативна ланцюг навіть буде прийнята (правило Біткоїна полягає у виконанні того ланцюга з найбільшим сумарним доказом роботи). Для поточної мережі Біткоїна повторення навіть невеликого обсягу обчислень, що відповідають обчислювальній потужності всього світу, швидше за інших майнерів, є економічно та фізично недоцільним – безпека не залежить від того, чи нерозв’язне головоломка, а лише від того, що її вирішення з необхідною швидкістю настільки дороге, що чесна гірнича дія завжди є більш вигідною стратегією.

Що насправді показує анімація

Ця анімація ілюструє саме процес пошуку nonce, описаний вище: спробуйте nonce, хешуйте його, перевіряйте на відповідність цілі, збільшуйте, повторюйте – мільйони або мільярди разів на секунду на реальному обладнанні для майнінгу, візуалізовано тут з прийнятною швидкістю. Поруч показана автоматична корекція складності, яка є такою ж, як і перерахунок 2016 блоків, що виконує справжня мережа, зменшена в масштабі, щоб ви могли спостерігати, як ціль звужується або розширюється у міру зміни обчислювального хеш-потоку, підтримуючи середній час між блоками близько 10 хвилин незалежно від того, наскільки швидко чи повільно відбувається майнінг.

Frequently asked questions

Чому швидший комп’ютер не може просто вгадати правильний nonce безпосередньо?

Бо SHA-256 є криптографічною хеш-функцією, для якої невідомо жодного обхідного шляху: вихід для будь-якого заданого введення є, на практиці, непередбачуваним і має вигляд випадкового розподілу. Єдиний спосіб знайти nonce, який дає хеш нижче цільового значення - це вичерпне перепробування та помилки – лише збільшення обчислювальної потужності дозволяє спробувати більше кандидатів на секунду, а не більш розумно здогадуватися.

Чому Біткоїн коригує склад видобутку?

Щоб середній час між блоками залишався близько 10 хвилин, навіть коли загальна обчислювальна потужність, спрямована на мережу, змінюється з часом. Кожні 2016 блоків протокол порівнює, скільки часу дійсно зайняло це пакет блоків, з цільовим 2-тижневим терміном і пропорційно переналаштовує складний рівень – важчий, якщо блоки приходять занадто швидко, легший, якщо вони приходять занадто повільно.

Що саме робить блокчейн захищеним від маніпуляцій?

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

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Bitcoin Mining і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Bitcoin Mining

Що ви знайшли?

Додати кроки відтворення (опційно)