Ключові висновки

  • Хешування — це процес перетворення будь-яких вхідних даних на вихід фіксованого розміру за допомогою математичної функції, і воно є фундаментальним для криптовалют і технологій блокчейну.

  • Криптографічні хеш-функції повинні відповідати трьом ключовим властивостям: стійкість до колізій, стійкість до прообразу (preimage resistance) та стійкість до вторинного прообразу.

  • Bitcoin використовує SHA-256 для майнінгу, перевірки транзакцій і генерації адрес, тоді як Ethereum використовує Keccak-256 для керування станом і операцій смартконтрактів.

  • Сучасні хеш-функції на кшталт SHA-256 і SHA-3 залишаються захищеними від відомих загроз квантових обчислень, вимагаючи лише більших розмірів виходу, а не повністю нових алгоритмів.

Binance Academy courses banner

Вступ

Хешування — це процес отримання виходу фіксованого розміру з вхідних даних змінного розміру. Це робиться за допомогою математичних формул, відомих як хеш-функції, які реалізуються як хешувальні алгоритми.

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

Як працюють хеш-функції

Різні хеш-функції створюють виходи різних розмірів, але кожен алгоритм завжди генерує вихід фіксованої довжини незалежно від розміру вхідних даних. Наприклад, SHA-256 завжди створює вихід 256 біт (64-символьний шістнадцятковий), тоді як SHA-1 генерує дайджест 160 біт.

Важливо зазначити, що хешування не є тим самим, що шифрування. Шифрування — це двосторонній процес, під час якого дані можна зашифрувати, а потім розшифрувати назад до їхньої початкової форми за допомогою ключа. Хешування — це односпрямована функція: ви можете отримати хеш з вхідних даних, але не можете на практиці відновити вихідні дані з одного лише хеша.

Щоб проілюструвати, запуск слів «Binance» і «binance» через SHA-256 дає повністю різні результати:

  • «Binance» дає: f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

  • «binance» дає: 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

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

Сімейство алгоритмів SHA (Secure Hash Algorithms) містить кілька поколінь. SHA-0 і SHA-1 більше не вважаються безпечними, оскільки було знайдено колізії. Наразі лише сімейство SHA-2 (що включає SHA-256 і SHA-512) та сімейство SHA-3 (на основі алгоритму Keccak) вважаються криптографічно безпечними.

Криптографічні хеш-функції

Криптографічна хеш-функція — це хеш-функція, яка відповідає додатковим вимогам безпеки, тож підходить для застосувань на кшталт цифрових підписів, перевірки цілісності даних і консенсусу в блокчейні. Щоб зламати таку функцію, потрібно виконати колосальну кількість спроб перебором (brute force).

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

Стійкість до колізій

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

На практиці стійкість до колізій означає, що для знаходження двох вхідних даних, які дають однаковий хеш, знадобилися б мільйони років обчислень. SHA-256 потребує приблизно 2 до 128-ї степені операцій для знаходження колізії (birthday bound), що значно виходить за межі сучасних обчислювальних можливостей.

Стійкість до прообразу

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

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

стійкість до вторинного прообразу

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

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

Хешування в блокчейні

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

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

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

Ethereum використовує різновид під назвою Keccak-256 (тісно пов’язаний зі стандартом SHA-3) для керування станом, селекторів функцій смартконтрактів, логування подій та виведення адрес. Кожна платформа блокчейну обирає хеш-функції відповідно до своєї конкретної моделі безпеки та вимог до продуктивності.

Майнінг і хешрейти (Hash Rate)

у майнінгу Bitcoin головна складність — знайти вхідні дані (змінюючи значення nonce в заголовку блоку), які дають SHA-256 хеш нижчий за порогове цільове значення. Цільова величина коригується кожні 2 016 блоків, щоб підтримувати середній час створення блоку 10 хвилин незалежно від того, скільки обчислювальної потужності має мережа. Саме це робить блокчейн захищеним.

хешрейт відображає загальну обчислювальну потужність, спрямовану на майнінг. На початку 2026 року мережа Bitcoin працює приблизно на рівні 800–900 екзахешів за секунду (EH/s), тобто майнери сукупно виконують сотні квінтильйонів обчислень хешів щосекунди.

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

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

Хешування в постквантову еру

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

алгоритм Гровера — найрелевантніша квантова атака на хеш-функції — дає лише квадратичне прискорення. Це означає, що 256-бітна хеш-функція забезпечувала б приблизно 128 бітів безпеки проти квантового супротивника, і це все ще вважається обчислювально неможливим для злому. Для порівняння: криптографічні алгоритми з відкритим ключем, які застосовуються в блокчейні (ECDSA, EdDSA), повністю ламаються алгоритмом Шора на достатньо потужному квантовому комп’ютері.

У серпні 2024 року NIST опублікував FIPS 205 (SLH-DSA) — стандарт цифрових підписів на основі хешування, виведений з SPHINCS+. Ця схема будує свою безпеку цілком на силі хеш-функцій — це є сильним інституційним підтвердженням того, що SHA-2 та SHA-3 залишаються надійними в постквантовому світі.

Консенсус між NIST, ЄС та іншими органами зі стандартизації станом на 2025 рік однозначний: немає потреби в нових «постквантових хеш-алгоритмах». Очікується, що SHA-256 і SHA-3 з 256-бітними виходами або більше залишаться захищеними в найближчому майбутньому. Нагальна постквантова міграційна робота спрямована на заміну криптографії з відкритим ключем, а не хеш-функцій.

Хешування паролів і виведення ключів

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

Спеціалізовані функції для хешування паролів розв’язують цю проблему, навмисно роблячи обчислення повільними та такими, що потребують багато пам’яті. Рекомендований нині стандарт — Argon2id, який виграв Премію/конкурс Password Hashing Competition у 2015 році. Серед інших поширених варіантів — bcrypt і scrypt.

Ці функції також використовують унікальну випадкову «сіль» для кожного пароля, що не дає атакувальникам застосовувати попередньо обчислені таблиці пошуку (rainbow tables). Поєднання обчислювальної вартості, вимог до пам’яті та засолювання робить brute-force атаки економічно недоцільними навіть тоді, коли бази хешів скомпрометовано.

Питання та відповіді (FAQ)

У чому різниця між хешуванням і шифруванням?

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

Чи можуть два різні вхідні дані давати той самий хеш?

Так, теоретично це можливо, і це називається колізією. Проте для надійних хеш-функцій на кшталт SHA-256 знаходження такої колізії потребує приблизно 2 до 128-ї степені операцій (birthday bound), що є обчислювально неможливим за допомогою наявних або найближчих технологій. Хеш-функції, для яких колізії були практично продемонстровані (як-от MD5 і SHA-1), вважаються зламаними і не мають використовуватися для цілей безпеки.

Чому саме Bitcoin використовує SHA-256?

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

Чи можуть квантові комп’ютери зламати хешування в блокчейні?

Квантові комп’ютери створюють мінімальний ризик для хеш-функцій. Алгоритм Гровера може прискорити перебір хешів (brute-force), але лише у квадратичному (кореневому) масштабі: 256-бітний хеш усе одно забезпечуватиме 128 бітів квантової безпеки, що вважається надійним. Реальна квантова загроза для блокчейнів — це схеми цифрових підписів з відкритим ключем (ECDSA), а не самі хеш-функції.

Яку хеш-функцію використовує Ethereum?

Ethereum використовує Keccak-256, який тісно пов’язаний зі стандартом NIST SHA-3, але використовує трохи інше доповнення (padding). Його застосовують для виведення адрес, генерації ключів для state trie, селекторів функцій смартконтрактів та хешування тем подій. Як і SHA-256, Keccak-256 не має відомих практичних атак і вважається криптографічно надійним.

Останні думки

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

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

Додаткове читання

  • Що таке алгоритм консенсусу в блокчейні?

  • Що таке Bitcoin і як він працює?

  • Proof of Work (PoW) vs Proof of Stake (PoS)

  • Загальні принципи безпеки

  • Вступ до Bitcoin Script

Дисклеймер: Цей контент надається вам у форматі «як є» лише для загальної інформації та освітніх цілей без будь-яких заяв чи гарантій будь-якого типу. Його не слід тлумачити як фінансову, юридичну чи іншу професійну пораду, і він не призначений для рекомендації придбання будь-якого конкретного продукту або послуги. Вам слід звернутися по власну пораду до відповідних кваліфікованих фахівців. Якщо цей контент внесено стороннім автором, будь ласка, зверніть увагу, що висловлені погляди належать цьому сторонньому автору та не обов’язково відображають погляди Binance Academy. Ціни на цифрові активи можуть бути волатильними. Вартість вашої інвестиції може зростати або падати, і ви можете не повернути суму інвестиції. Ви несете виключну відповідальність за свої інвестиційні рішення, а Binance Academy не несе відповідальності за будь-які збитки, які ви можете понести. Для отримання додаткової інформації див. наші Умови користування, Попередження про ризики та Умови Binance Academy.