Зміст
Хеш в криптовалюта є використання детермінованої схеми в процесі перетворення вхідної інформації вільної довжини в вихідну бітову рядок з конкретним розміром. Іншими словами, хеш — перетворення вхідної інформації за певним алгоритмом для отримання на виході шифрованого інформації (набору символів). Наприклад, хеш алгоритму біткоіни (SHA-256) може мати такий вигляд — e58f1e8c55fa105bdd3f40e5038eb0b039b5998d52c05e6cd99878dd2da5cab2.
Отримані хеші можна порівнювати, адже вони можуть відрізнятися за складом і розміром. Така необхідність виникає в процесі видобутку віртуальних монет. Суміжне поняття (хешрейт) являє собою швидкість розрахунку хеш в процесі отримання нового блоку в ланцюзі блокчейн. Чим більше цей параметр, тим швидше обладнання знаходить необхідне число, тим вищий заробіток Майнера. Найбільш продуктивним обладнанням вважаються Асіка. Наприклад, якщо ASIC-майнер має потужність в 10 ТХ / с, це говорить про його можливості обробляти 10 000 000 000 000 хеш за одну секунду.
Що таке хеш в криптовалюта — коротка історія
У математичному сенсі хеш-функція являє собою перетворення даних в коротку позицію, що має певну довжину. З її допомогою можна контролювати стан файлів ОС, важливих програм і основної інформації. Робота здійснюється за бажанням або з певною періодичністю (в автоматичному режимі).
Термін «хеш» походить від слова hash англійською мовою. Прямий переклад визначення означає «плутанина». Таке формулювання описує принцип роботи функції, завдання якої полягає в зміні вхідного параметра для отримання іншого значення на виході. Аналогічний підхід характерний і для терміна «хешування». Джерелом цього слова є англійське визначення «hashing», що перекладається як «подрібнення».
Визначення з’явилося в 50-х роках XX століття в середовищі фахівців, що займаються обробкою великих обсягів інформації. За допомогою хеш-функції фахівці приводили будь-який масив до рядку з певним числом символів. Так, якщо конкретну цифру (незалежно від числа знаків) безліч разів ділити на ідентичний числовий параметр, отриманий набір символів буде називатися хеш. Підсумковий результат різниться в залежності від застосовуваного подільника.
Хеш в криптовалюта — сутність
Простими словами, хеш в криптовалюта — це процес перетворення одного набору символів (на вході) в інший. Різниця в тому, що в першому випадку параметр носить вільний характер, а в другому — фіксовану довжину. Це пояснення характерно для різних сфер, в тому числі криптовалюта. Перетворення відбувається на підставі певного алгоритму. Наприклад, в біткоіни це SHA-256, в Лайткоіне — Scrypt і так далі.
Для розгляду принципу роботи використовуємо протокол Bitcoin з серії SHA-2 (його розмір — 256 біт). Незалежно від обсягу даних, що вводяться підсумковий параметр на виході завжди має певну величину. Це важливо, адже у випадку з криптовалюта мова йде про передачу величезного потоку інформації і здійсненні безлічі транзакцій в секунду.
Наявність хеша — можливість спростити запам’ятовування великих масивів інформації. Досить мати хеш-функцію для отримання необхідних відомостей про операції в мережі.
Властивості хеша в криптовалюта
Щоб розібратися, що таке хеш в криптовалюта, важливо розуміти його властивості. Виділимо основні:
Функції хеша в криптовалюта
Хеш-функція має наступні функції:
Алгоритм, який застосовується в процесі перетворення функції хеш, повинен бути відкритим. Це дозволяє визначити стійкість до зворотного перетворення, тобто отримання первинних даних по наявному хешу.
Внутрішня будова хеша в криптовалюта
Щоб зрозуміти сутність хеша в криптовалюта, що це, і як працює, важливо уявляти структуру процесу перетворення. Блокчейн є безліч осередків, в яких зберігаються певні дані. Для розуміння структури blockchain і роботи хеша необхідно знати такі терміни:
Ланцюг blockchain є пов’язаний список з інформацією, а також хеш-покажчики. Завдяки їх наявності, відбувається закріплення елементів ланцюга і контроль валідності операцій. Покажчик містить хеш даних, розташованих усередині минулого блоку. Така особливість забезпечує максимальну надійність ланцюжка блокчейн. Наприклад, зловмисник намагається атакувати п’ятий блок і внести зміни до відомостей. Через особливості хеш-функції навіть невеликі правки здатні змінити підсумковий хеш. В результаті змінюється хеш-функція в попередніх чотирьох елементах ланцюга. Блокчейн коригується в повному обсязі, що неможливо реалізувати.
Не менше значення має заголовок блоку, що складається з таких елементів:
- Номер версії елемента ланцюга.
- Час.
- Складність.
- Хеш минулого вузла blockchain.
- Nonce.
- Хеш кореня Меркле.
Необхідність наявності хеша кореня Меркле пояснюється наступним чином. У кожному елементі блокчейн знаходиться велика кількість транзакцій. Якщо інформація зберігається в формі серії, це займе багато місця, а сама ланцюжок втрачає ефективність. Застосування дерева Меркле оптимізує блокчейн і дозволяє швидше отримати інформацію про транзакції (при наявності такої необхідності).
Застосування хеша криптовалюта в Майнінг
Суть Майнінг має на увазі пошук параметра Nonce для отримання нового елемента ланцюга. Після успішного знаходження він додається в загальну ланцюжок. При зародженні криптовалюта біткоіни для розрахунків застосовувалися звичайні ноутбуки або ПК, але з ростом складності такої спосіб втратив актуальність. Люди стали застосовувати більш потужне обладнання і об’єднуватися в пули для отримання нових блоків.
У випадку з біткоіни число монет обмежена 21 мільйоном одиниць. На створення блоку в blockchain йде певний проміжок часу. Середній час на отримання нового елемента ланцюга становить 10 хвилин. При прискоренні цього процесу підвищується складність, яка підтримує швидкість пошуку хеш і отримання блоків на певному рівні.
Зниження часу видобутку блоку може призвести до наступних проблем:
Щоб уникнути розглянутих проблем передбачена система складності, яка підвищує вимогу до обчислювальної потужності для пошуку необхідного хеша і створення нового блоку. Суть проста. При появі чергового вузла ланцюга його вміст хешіруется. Якщо обраний хеш перевищує або дорівнює рівню складності, він включається в блокчейн, а Майнер отримують оплату за блок.
У процесі видобутку учасники мережі шукають символ Nonce, що представляє собою число, поєднане з хешем. Отримана рядок змінюється і порівнюється з поточною складністю. При невідповідності параметрів код змінюється.
В цілому алгоритм такий:
На жовтень 2018 року рішення хеша в Bitcoin вимагає великих обчислювальних потужностей.
Де застосовується хеш (в тому числі для криптовалюта)?
Функції хеш мають широкий спектр застосування:
Значення хеш в криптовалюта та інших сферах складно переоцінити. Це важливий параметр, що забезпечує швидке перетворення і шифрування даних з можливістю отримати інформацію про проведену операцію.
Відео про криптографічних хеш-функціях: