Що таке nonce: заповітне бажання майнерів

icon FOR
Фото - Що таке nonce: заповітне бажання майнерів
Nonce ─ це спеціальний номер, який отримують блоки блокчейну в процесі майнінгу. Хоча дехто вважає, що nonce відповідає терміну number used once, слово, найімовірніше, походить із середньоанглійської мови, в якій nonse символізує одиничний випадок або інцидент.
Nonce уможливлює створення унікального хешу ─ криптографічного "відбитка пальця", що ідентифікує блок і закладений в основу роботи блокчейну. Попри те, що nonce зазвичай використовують в алгоритмі консенсусу Proof-of-Work (PoW), йому також можна знайти застосування і в таких напрямках, як e-mail або передача даних.

Поряд з алгоритмом корегування складності та хеш-функцією SHA-256, nonce становить основу алгоритму консенсусу PoW. Аби чіткіше окреслити роль nonce у цьому процесі, пригадаймо принцип алгоритму консенсусу Proof-of-Work

Принцип роботи PoW

Proof-of-Work усуває таку вразливість, як подвійна витрата. Це феномен, що утворюється під час повторного використання одного й того ж активу для двох різних платежів. У традиційній фінансовій системі цю проблему вирішує довірчий орган, як-от банк або держава. Однак блокчейн — це децентралізована база даних, тому для боротьби з подвійною витратою необхідно застосовувати альтернативний підхід. Саме його і пропонує Proof-of-Work.
Проблема подвійної витрати. Джерело: geeksforgeeks.org

Проблема подвійної витрати. Джерело: geeksforgeeks.org

PoW стимулює валідаторів працювати над підтвердженням даних у блокчейні. Вони витрачають часові та енергетичні ресурси, завдяки чому шахрайство в мережі стає економічно невигідним. По суті nonce необхідний для пошуку потрібного хешу, который присвоюється кожному блоку в блокчейні.

Наприклад, блокчейн Bitcoin складається з послідовного ланцюжка блоків, які зберігають дані про транзакції, включно з сумою, адресою гаманців і датою операцій. Потім, за допомогою хеш-функції SHA-256, валідатори конвертують ці дані в єдиний формат: 64-значне шістнадцяткове число, яке називається хешем. Цей процес засвідчує валідність даних, а згодом відбувається створення нового блоку.
Архітектура блокчейну Bitcoin. Джерело: geeksforgeeks.org

Архітектура блокчейну Bitcoin. Джерело: geeksforgeeks.org

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

Роль nonce у консенсусі Proof-of-Work

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

  • хеші транзакцій, що взяті з мемпула (список очікування);
  • хеш попереднього блоку;
  • час створення блоку;
  • алгоритм корегування складності майнінгу (механізм, що утримує періодичність створення блоків в оптимальному діапазоні 10 хвилин);
  • nonce.

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

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

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

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

Інші способи застосування nonce

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

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

Nonce також може використовуватися для ідентифікації користувачів. Окремі такі функцій, як SSO (єдиний вхід), 2FA (двофакторна автентифікація) і відновлення облікового запису, можуть застосовувати nonce.

Висновок

Nonce ─ це невід'ємний елемент алгоритму консенсусу Proof-of-Work, який застосовують для створення унікальних ідентифікаторів блоку. Фактично це одна з небагатьох частин блокчейну, яку майнери можуть перебирати під час створення нових блоків.

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

Кожен охочий може спробувати себе в майнінгу та пошуку заповітного nonce. Якщо це про вас — почитайте нашу нещодавню статтю про найкращі криптовалюти для майнінгу!

Пише про DeFi та криптовалюти через призму технологій.