Що таке Hash? Принципи, Криптографія та Застосування в Blockchain

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

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

Основи хеш-функцій

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

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

Як працює функція хеш?

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

Щоб проілюструвати це, давайте запустимо слова "Trading" та "trading" через алгоритм хеш SHA-256 ), що використовується в Bitcoin(:

SHA-256

Вхід: Торгівля Вихідний )256 bits(: 95d1a7ca65e8e7a866be323693fd2c22e07d8f198695481f1660e12142cdbecc

Вхід: трейдинг Вихідна )256 bits(: 2180de693ed2598851b751454f78332a363a0ddb0376db0e4fc9eedb25cde194

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

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

ША-1

Вхід: Торгівля Вихідний )160 bits(: 37736e173a824ff9cecc9b5de47f5bda155b7f51

Вхід: трейдинг Вихід )160 біт(: 7da19b30a5c5c198709373e8eb7d5c33a3f48241

Важливо зазначити, що 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 автоматично відрегулює складність видобутку, щоб середній час, необхідний для видобутку блоку, залишався близьким до 10 хвилин. Навпаки, якщо кілька видобувачів вирішать припинити видобуток, що призведе до значного зниження хеш-ставки, складність видобутку буде відрегульована, полегшуючи видобуток ###, поки середній час блоку знову не повернеться до 10 хвилин (.

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

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

Практичні застосування хешування у світі криптовалют

Хешинг має численні практичні застосування в екосистемі криптовалют та на торгових платформах:

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

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

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

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

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

Висновок

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

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

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