Proof of Work (Доказ роботи)
Сама концепція подібного алгоритму була розроблена ще в 1993 році. Але тоді його завданням було запобігання DoS -атаки і зайвої заспамленності мережі. Сенс полягав у тому, що комп'ютер, що подає запит, повинен був для його підтвердження виконати деякі обчислення. І якщо звичайному темпу спілкування це практично не заважало, то підтвердження десятків і сотень запитів серйозно завантажує комп'ютер-порушник.
А в 2009 році стало відомо, що даний алгоритм був допрацьований для забезпечення безпеки першої в світі криптовалютної мережі Біткоін. Тепер він називався «алгоритм консенсусу» і служив для гарантії достовірності нових блоків інформації, що додаються в блокчейн. Сама по собі ідея виявилася вкрай ефективною, так що практично всі сучасні криптовалюти в тій чи іншій мірі використовують алгоритм Proof-of-Work.
Як працює алгоритм Proof-of-Work?
Якщо коротко, то окремі вузли мережі будуть на швидкість шукати варіанти рішення складного рівняння, що визначається вмістом блоку - хешем. Процес цей вимагає значних обчислювальних потужностей, а в зв'язку з цим - і електроенергії. Однак перевірити правильність цього рішення - набагато простіше. Тому після того, як черговий вузол таки першим вираховує правильну відповідь - інші учасники мережі можуть підтвердити правильність його обчислень. І якщо воно вірне - вузол отримає право додати новий блок в блокчейн, а також - всю ту винагороду в криптовалюті, що в цьому блоці буде зберігатися.
Конкретний приклад
Найкраще розглядати роботу алгоритму Proof-of-Work на найпростішому прикладі - роботі мережі біткоін. Оскільки інші криптовалюти змінюють деякі особливості алгоритму так, як самі вважають за потрібне.
Отже, є децентралізована мережа. Всі вузли в ній рівні, тобто - мають рівні права і не мають переваг один перед іншим. Активні вузли називаються майнерами - саме вони і шукають рішення рівняння. Для це їм потрібно вгадати або підібрати псевдовипадкове число nonce. Якщо його, разом з інформацією, що міститься в блоці, пропустити через хеш-функцію, то повинен вийти заданий результат - хеш блоку. Коли це число буде знайдено, решта учасників мережі просто підставить його в функцію, щоб переконатися в правильності рішення.
У блокчейн не можна додати новий блок, поки не буде знайдено це число nonce, яке ще називають «одноразовим кодом». І кожен новий підтверджений блок містить в собі інформацію про хеш попереднього блоку, що забезпечує їх логічний і криптографічний зв'язок. А оскільки для отримання цього нового блоку потрібно виконати обчислювальну роботу, то алгоритм і почали називати Proof-of-Work - «підтвердження роботи».
Цей алгоритм гарантує, що вміст блоків не будуть підробляти. І що блоки реально містять інформацію, пов'язану з попередніми блоками ланцюга. Для успішного імітування достовірності блоку, потрібно близько 51 відсотка обчислювальної потужності всієї мережі, що неймовірно складно забезпечити. Складається така ситуація - більше половини обчислювальних потужностей починають вибудовувати ланцюжок, виходячи з помилкового блоку. А оскільки сама система організована так, що більш короткі альтернативні ланцюжки автоматично забираються, в даній ситуації, буде прибрано «достовірне» відгалуження.
Головна проблема алгоритму Proof-of-Work - необхідність використання дорогого устаткування (наприклад - відеокарти останнього покоління) і великої кількості електроенергії. І незважаючи на сумарну колосальну обчислювальну потужність децентралізованої мережі, її не можна використовувати ні для чого іншого, окрім як для обчислення одноразового коду.
Висновок
Але незважаючи на це, алгоритм Proof-of-Work досі залишається найпростішим, надійним і поширеним способом підтвердження достовірності криптовалютних транзакцій. А наявні на даний момент альтернативи, тільки починають набирати популярність. Чи зможуть вони стати повноцінною і зручною альтернативою - покаже час. Все ж криптовалюти, як явище, розвиваються дуже нетривалий термін, щоб можна було вибудовувати чіткі прогнози.