Що означає доказ роботи?
Доказ роботи описує систему, яка вимагає несуттєвої, але можливої кількості зусиль для того, щоб стримувати легковажні чи зловмисні способи використання обчислювальної потужності, наприклад, надсилання спам-електронних листів або запуск відмови у службових атаках. Концепція була адаптована до грошей Хал Фінні в 2004 році через ідею "багаторазового підтвердження роботи". Після введення в 2009 році біткойн став першим широко прийнятим застосуванням ідеї Фінні (Фінні також був одержувачем першої трансакції з біткойнами). Доказ роботи також лежить в основі багатьох інших криптовалют.
Доказ роботи пояснено
Це пояснення буде зосереджено на доказуванні роботи під час функціонування в мережі біткойн. Біткойн - це цифрова валюта, яка лежить в основі свого роду розподіленої книги, відомої як "блокчейн". Ця книга містить запис усіх біткойн-транзакцій, розташованих у послідовних "блоках", так що жодному користувачеві не дозволяється витрачати жодне їхнє володіння двічі. З метою запобігання фальсифікації книга не є публічною, або "розповсюдженою"; змінена версія буде швидко відхилена іншими користувачами.
Спосіб, яким користувачі виявляють фальсифікацію на практиці, - це хеши, довгі рядки цифр, які слугують доказом роботи. Покладіть заданий набір даних через хеш-функцію (біткойн використовує SHA-256), і він буде коли-небудь генерувати один хеш. Через "ефект лавини", однак, навіть невелика зміна будь-якої частини оригінальних даних призведе до абсолютно невпізнаваного хешу. Незалежно від розміру вихідного набору даних, хеш, згенерований даною функцією, буде однакової довжини. Хеш - це одностороння функція: його не можна використовувати для отримання вихідних даних, лише для перевірки відповідності даних, що генерували хеш, вихідним даним.
Генерування будь-якого хешу для набору транзакцій з біткойнами було б банальним для сучасного комп'ютера, тому для того, щоб перетворити процес на «роботу», мережа біткойн задає певний рівень «складності». Цей параметр регулюється таким чином, щоб новий блок "видобувався" - додається до блокчейн шляхом генерування дійсного хешу - приблизно кожні 10 хвилин. Встановлення труднощів досягається встановленням "цілі" для хеша: чим менша ціль, тим менший набір допустимих хешів і тим важче її генерувати. На практиці це означає хеш, який починається з довгого рядка нулів: хеш для блоку # 429818, наприклад, 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Цей блок містить 2012 транзакцій, що включають трохи більше 1000 біткойн, а також заголовок попереднього блоку. Якщо користувач змінив одну суму транзакції на 0, 0001 біткойн, отриманий хеш буде невпізнанним, а мережа відхилить шахрайство.
Оскільки заданий набір даних може генерувати лише один хеш, як шахтарі впевнені, що вони генерують хеш нижче цілі? Вони змінюють введення, додаючи ціле число, яке називається nonce ("число, яке використовується один раз"). Після того, як знайдеться дійсний хеш, він транслюється в мережу, а блок додається до блокчейн.
Майнінг - це змагальний процес, але це скоріше лотерея, ніж гонка. В середньому хтось генерує прийнятні докази роботи кожні десять хвилин, але хто це буде - це хтось здогадається. Шахтарі збираються разом, щоб збільшити свої шанси на видобуток блоків, що генерує плату за транзакції і за обмежений час винагороду новостворених біткойнів.
Доказ роботи вкрай важко змінити будь-який аспект блокчейна, оскільки така зміна потребує повторної видобутку всіх наступних блоків. Користувачеві або пулу користувачів це також ускладнює монополізацію обчислювальної потужності мережі, оскільки обладнання та потужність, необхідні для виконання хеш-функцій, дорогі.
