Розділ 3 - пройдено 0 з 10 тестів
Hash: цифрові відбитки
Криптографічна hash-функція — це одностороння функція, яка робить підробку помітною, а доказ виконаної роботи (PoW) — можливим.
- Пояснити, що робить криптографічна hash-функція і чому важливий лавинний ефект
- Описати, як Merkle root пов’язує блок з усіма його транзакціями
Короткі відповіді
Що таке hash у Bitcoin?
Односторонній відбиток даних: його легко обчислити, практично неможливо обернути, і будь-яка зміна даних дає зовсім інший hash.
Що таке Merkle root?
Один hash, який пов’язує блок з кожною транзакцією в ньому, тож зміна будь-якої транзакції змінює Merkle root.
Чому історію Bitcoin неможливо змінити?
Заголовок кожного блоку фіксує попередній блок, тож зміна старого блоку означає повторне виконання доказу виконаної роботи (proof of work) для нього та для кожного наступного блоку.
Односпрямовані відбитки
Криптографічна hash-функція приймає будь-які вхідні дані — слово, зображення, цілу енциклопедію — і повертає дайджест фіксованого розміру. Цей процес односпрямований: ви можете перевірити, що вхідні дані дають саме цей дайджест, але на практиці не можете відновити вхідні дані з дайджесту. Bitcoin використовує SHA-256, яка повертає 256 біт, зазвичай записаних як 64 шістнадцяткові символи. Для hash блоків та ідентифікаторів транзакцій її застосовують двічі (SHA-256d).
Лавинний ефект
Добра hash-функція дуже чутлива. Змініть одну кому в документі на 500 сторінок — і дайджест зміниться повністю. Це називають лавинним ефектом. Саме він робить hash корисним як зобов’язання: дайджест фіксує точні байти, і будь-яка подальша зміна стає очевидною.
Merkle root
Блок не додає hash кожної транзакції до заголовка по черзі. Він обчислює hash пар ідентифікаторів транзакцій, потім об’єднує в пари результати й повторює це, доки не залишиться один hash: Merkle root. Заголовок блоку містить його версію, цей root, hash попереднього блоку, час, цільове порогове значення складності (difficulty target) і nonce. Змініть будь-яку транзакцію — і Merkle root зміниться, що змінить hash заголовка й розірве ланцюжок подальшої роботи.
Історія, у якій видно підробку
Заголовок кожного блоку містить hash попереднього заголовка. Щоб переписати стару транзакцію, зловмиснику довелося б повторно виконати доказ виконаної роботи для цього блоку та для кожного наступного — швидше, ніж чесна мережа. Ланцюжок hash робить історію легкою для перевірки й дорогою для переписування. Вузли відхиляють недійсні блоки, але переходять на дійсний конкурентний ланцюжок із більшим накопиченим обсягом роботи. Вузол не може відхилити дійсний ланцюжок із більшим обсягом роботи лише тому, що його побудував зловмисник.
Спробуйте
Що варто винести з уроку
Hash — це односпрямовані зобов’язання. Merkle root прив’язує блок до всіх його транзакцій, а кожен заголовок — до попереднього блоку, тож зміна історії вимагає повторного виконання всієї роботи над нею.
Пригадайте, потім застосуйте
Змініть один символ у демонстрації. Що змінюється і чого hash не доводить?
Перевірте своє пояснення
Дайджест суттєво змінюється. Збіг дайджестів підтверджує цілісність даних, але не доводить, що дані правдиві чи авторизовані. Для авторизації потрібні підписи.
Контрольна точка
Ключові терміни
Джерела
Перевірено 25 жовтня 2026 р. · не є фінансовою порадою