Вступ
Proof of Work був першим алгоритмом консенсусу, що з'явився, і на сьогоднішній день залишається домінуючим. Він був представлений Сатоші Накамото у Bitcoin whitepaper 2008 року, але сама технологія була створена задовго до цього.
HashCash від Адама Бека – це ранній приклад використання алгоритму Proof of Work ще до криптовалют. Вимагаючи від відправників виконання невеликого об'єму обчислень перед надсиланням електронного листа, одержувачі могли фільтрувати спам. Такі обчислення практично нічого не коштували для звичайного відправника, але це суттєво ускладнювало процес масового розсилання.
Що таке подвійні витрати?
Подвійні витрати виникають, коли одні й ті самі гроші витрачаються більше одного разу. Цей термін використовується майже виключно в контексті цифрових грошей – зрештою, вам буде важко витратити ті ж самі фізичні гроші двічі. Коли ви платите за каву, ви передаєте гроші касиру, який, швидше за все, блокує їх у своєрідному регістрі. Ви не можете піти в кафе через дорогу і заплатити за другу каву тим самим чеком.
У сфері цифрових коштів така ймовірність можлива. Це можна порівняти з дублювання файлу на комп'ютері. Все що нам для цього знадобиться, це скопіювати його і вставити. Також ви можете надіслати один і той же файл електронною поштою десятьом, двадцятьом і більше користувачам.
Оскільки цифрові гроші – це просто дані, вам потрібно заборонити людям копіювати і витрачати ті самі одиниці в різних місцях. В іншому випадку ваша валюта обезціниться в дуже короткі терміни.
Навіщо потрібен Proof of Work?
Тепер ми маємо спосіб відстеження одиниць. Якщо Боб спробує здійснити ще одну транзакцію, використовуючи ті самі одиниці, які він щойно відправив Керол, всі відразу про це дізнаються. Група не дозволить додати транзакцію в блокнот.
Це може добре спрацювати у невеликій групі. Всі один одного знають, тому, напевно, домовляться, хто з друзів має додавати транзакції до блокноту. Але якщо нам потрібна група із 10 000 учасників? Ідея з блокнотом погано масштабується, бо ніхто не хоче довіряти керування ним незнайомій людині.
Ось тут і з'являється Proof of Work. Це гарантує, що користувачі не витрачають гроші, на які вони не мають права. Використовуючи комбінацію теорії ігор та криптографії, алгоритм PoW дозволяє будь-кому оновлювати блокчейн відповідно до правил системи.
Як працює PoW?
Наш блокнот вище – це блокчейн. Але ми не додаємо транзакції одну за одною, натомість ми об'єднуємо їх у блоки. Ми анонсуємо транзакції в мережі, після чого користувачі, які створюють блок, включатимуть їх у блок-кандидат. Транзакції будуть вважатися дійсними лише після того, як їх блок-кандидат стане підтвердженим блоком, що означатиме, що його було додано до блокчейну.
Практично неможливо розшифрувати хеш блоку, щоб отримати вхідні дані. Однак, знаючи вхідні дані, вам неважко підтвердити правильність хешу. Вам просто потрібно відправити вхід через функцію та перевірити, чи збігаються вихідні дані.
У Proof of Work ви повинні надати дані, хеш яких відповідає певним правилам. Але ви не знаєте цих правил. Єдиний варіант – передати дані через хеш-функцію та перевірити, чи вони відповідають умовам. Якщо це не так, вам доведеться трохи змінити свої дані, щоб отримати інший хеш. Зміна навіть одного символу у ваших даних призведе до іншого результату, тому неможливо передбачити, яким може бути вихід.
Підсумовуючи, можна сказати, що майнінг – це процес збору блокчейн-даних та їх хешування разом з nonce, доки ви не знайдете конкретний хеш. Якщо ви знайдете хеш, який відповідає умовам, встановленим протоколом, ви отримуєте право транслювати новий блок в мережу. У цей момент інші учасники мережі оновлюють свої блокчейни, щоб включити новий блок.
В даний час умови, встановлені великими криптовалютами, неймовірно складно задовольнити. Чим вище хешрейт у мережі, тим складніше знайти дійсний хеш. Це зроблено для того, щоб блоки не генерувалися занадто швидко.
Як ви можете уявити, спроба вгадати величезну кількість хешів може дорого обійтися вашому комп'ютеру. Ви витрачаєте обчислювальні цикли та електроенергію. Але протокол нагородить вас криптовалютою, якщо ви знайдете дійсний хеш.
Давайте підсумуємо те, що ми знаємо наразі:
- Процес майнінгу є дуже дорогим.
- Після виконаної роботи та виробництва підтвердженого блоку ви отримуєте винагороду.
- Знаючи вхідні дані, користувач легко може перевірити правильність виробленого хешу. Будь-які учасники можуть перевірити, що блок є дійсним, не використовуючи при цьому велику кількість обчислювальних ресурсів.
Все виглядає досить непогано. Але якщо ви спробуєте обдурити систему? Що заважає вам помістити в блок купу шахрайських транзакцій та створити дійсний хеш?
Будь-який блок, що включає недійсну транзакцію, буде автоматично відхилено мережею. Спроба обдурити мережу коштуватиме вам дуже дорого. Ви витратите власні ресурси без будь-якої винагороди.
Хочете почати торгувати криптовалютою? Купуйте Bitcoin на Binance!
Proof of Work та Proof of Stake.
Тим не менш, алгоритм не має нічого спільного з послужним списком PoW. Хоча такий підхід і може сприйматися як марнотратство, на даний момент майнінг є єдиним способом досягнення консенсусу, який зарекомендував себе у глобальних масштабах. Усього за десятиліття він забезпечив транзакції на трильйони доларів. Щоб впевнено сказати, чи зможе PoS конкурувати з безпекою PoW, стейкінг повинен бути належним чином протестований у глобальних умовах.
Заключні думки
Proof of Work був оригінальним вирішенням проблеми подвійних витрат і довів свою надійність та безпеку. Bitcoin довів, що нам не потрібні централізовані структури, щоб запобігти подвійним витратам одних і тих самих коштів. Завдяки грамотному використанню криптографії, хеш-функцій та теорії ігор, учасники децентралізованого середовища можуть самі регулювати стан та відстежувати правильність роботи усієї фінансової бази даних.