Хеш: ключовий елемент у криптовалютах

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

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

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

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

Робота хеш-функції

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

Щоб ілюструвати це, застосуємо алгоритм SHA-256 (, використаний у Bitcoin) до слів "Gate" та "Gate":

ША-256

Вхід

Вихід (256 біт)

Гейт

8a83f205f3c314f629e3a0128f5f404cfd44b9a95da6d9f1a7b9f50d1f1b3b34

Гейт

7f7e4cf2eb50a0ea9d71edc37d6a1e74cf5e9348f7f9a0321b95e0a8e4097b3e

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

У контексті, якщо ми застосуємо алгоритм SHA-1 до тих самих входів, ми отримаємо:

ША-1

Вхід

Вихід (160 бит)

Гейт

3e2a7fe40ac63dbe0a46a6931c74c1d4e6b7447d

Гейт

c1b7368da4b8ef83dbf7ca3d3c3d17e65d799708

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

Важливість хешування

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

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

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

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

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

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

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

  • Стійкість до колізій: неможливо знайти два різних входи, які генерують однаковий хеш на виході.

  • Стійкість до попереднього зображення: неможливо "інвертувати" функцію хеш (, щоб знайти вхід для певного виходу ).

  • Опір до другого преобразування: неможливо знайти другий вхід, який колізує з конкретним входом.

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

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

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

Серед алгоритмів SHA групи SHA-0 та SHA-1 більше не вважаються безпечними, оскільки були виявлені колізії. Наразі групи SHA-2 та SHA-3 вважаються стійкими до колізій.

Опір до передображення

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

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

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

Стійкість до другої преімідж

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

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

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

Майнінг

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

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

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

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

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

Остаточні роздуми

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

EL-0.58%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити