Алгоритм Proof-of-Work
![майнінг](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdQeZmDvxvrT5f3LlLGMUgR2vqknlxxN3hR3NRq31zMFjtKFR7Ig05z0vkgxJ0DyBe2A5k5EXVgqXX5q2zdyWSCILUM_YZU_0jMcA7-Mf4x4mHMyLRE5UdWRl1d45ivLwjtHGdSAhajGA/s1600/168-1-maining.jpg)
Криптовалюти невідривно пов'язані з поняттям Proof-of-Work. Але що це таке?
У більшості криптовалют нові монети випускаються у вигляді винагороди, тому учаснику мережі (вузла), який перевірив певну кількість транзакцій в мережі на валідність, зібрав ці транзакції в так званий блок і додав цей блок в блокчейн - розподілену базу даних. Створення механізму захисту від безконтрольного створення блоків і випуску монет, а також інших зловживань - необхідний елемент розробки криптовалюти. Найбільш поширеним механізмом є алгоритм Proof-of-Work, що вимагає довести, що для створення блоку були дійсно проведені необхідні обчислення.
Для цього вузлу-творцю потрібно вирішити задачку. Завдання при цьому повинно бути складним, але посильним і вирішуваним, а перевірка результату повинна бути максимально простою і швидкою.
Історія створення алгоритму Proof-of-Work
Ідея механізму PoW з'явилася в літературі ще в далекому 1993 році. Тоді його запропонували використовувати для захисту електронної пошти від спаму. Хоча словосполучення Proof-of-Work ще не прозвучало - термін з'явився лише у 1999.
Перше практичне втілення відбулося через чотири роки, у 1997 і також було пов'язано з боротьбою зі спамом. Проект отримав назву HashCash.
Для створення блокчейну біткоіна, Сатоши Накамото застосував захисний алгоритм HashCash (який вже довів до того часу свою працездатність), а в якості обчислюваної хеш-функції використовував SHA-256 - найбільш популярну у 2008 році.
Що таке Proof-of-Work?
Використовуючи PoW для додавання блоку в ланцюжок, вузлу необхідно вирішити складну задачку.
У випадку з біткоіном і більшості блокчейнів інших криптовалют, заснованих на його алгоритмі, необхідно підібрати хеш заголовка блоку. У нього включені хеш попереднього блоку і блок транзакцій, який починався б з певної кількості нулів.
Оскільки для цього використовується стійка необоротна хеш-функція, вирішити задачу можна тільки простим перебором. У той же час, після знаходження рішення, його можна дуже швидко перевірити.
Особливості Proof-of-Work
Однією з найважливіших особливостей використовуваного в криптовалютах алгоритму PoW (в порівнянні, скажімо, з механізмом захисту від спаму) є механізм динамічної зміни складності розв'язуваної задачі. Без нього емісія того ж біткоіна дуже швидко стала б неконтрольованою, оскільки з ростом сумарної обчислювальної потужності мережі, швидкість випуску блоків збільшиться і, відповідно, швидкість випуску нових монет також.
Однак, складність пошуку доказу нового блоку в біткоінах постійно змінюється таким чином, щоб середній час пошуку рішення становив близько 10 хвилин. Досягається це простою зміною числа необхідних нулів на початку шуканого хеша.
У зв'язку з тим, що обчислювальні потужності мережі безперервно ростуть, складність завдання також постійно підвищується. Це призводить до підвищення витратності майнінгу, в зв'язку з чим почалися роботи над альтернативними алгоритмами. Найбільш успішним з них став Proof-of-Stake, в якому доводити потрібно не факт проведення обчислень, а факт володіння видобуваною криптовалютою.
Плюси Proof-of-Work
Proof-of-Work пропонує достатньо високий рівень безпеки блокчейну, стрімко зростаючий по мірі того, як збільшується число вузлів в мережі і їхня сумарна обчислювальна потужність.
Пов'язано це з тим, що більша частина атак на блокчейн, який використовує PoW, вимагає, щоб атакуючий контролював більшу частину обчислювальних потужностей мережі.
Теоретично, у зловмисника є можливість підтверджувати тільки свої блоки, ігноруючи інші, збирати 100% нових монет і блокувати транзакції. Однак для цього йому потрібно контролювати більше половини обчислювальних потужностей (звідси назва «атака 51%»). Це, за великим рахунком, позбавляє атаку економічного сенсу.
Інші атаки, призначені, наприклад, для забезпечення подвійного витрачання коштів за допомогою форків, не вимагають обов'язкового контролю над більшою частиною потужностей, однак, все ще «ненажерливі» - зловмиснику потрібно підтримувати розгалуження протягом тривалого часу.
Мінуси PoW
Основна проблема Proof-of-Work - це постійно зростаюча складність обчислень. Виникаючі через це вимоги до обладнання і величезна енерговитратність, роблять пошук нових блоків вкрай дорогим і енергонеефективним процесом.
Проекти, які намагаються знайти корисне застосування цим ресурсам, які «йдуть в порожнечу», з'являються регулярно (чого вартий тільки проект біткоін-ферми, що опалює будинок) але особливого успіху поки не здобули.
Проблема «ненажерливості» PoW посилюється ризиком витратити ресурси «в нікуди». Передбачити, який саме вузол знайде новий блок, неможливо, а винагороду отримає тільки «переможець». Всі інші вузли палили електрику марно.
Високі вимоги до обладнання також привели до того, що домінуючі позиції в майнінгу зайняли пули і компанії з великими датацентрами. А «домашні майнери» з процесу видобутку біткоіна фактично вибули вже кілька років тому.
Зосередження обчислювальних ресурсів під контролем нечисленних компаній суперечить самій ідеї децентралізації, закладеної в криптовалюти. Роботи над «ASIC-захищеними» PoW-алгоритмами ведуться, однак, говорити про їхню повну успішність поки рано. В основному вони лише роблять використання спеціального устаткування більш витратним.
Використання Proof-of-Work в криптовалютах
Proof-of-Work використовується в абсолютній більшості криптовалют, представлених сьогодні на ринку. Виняток становлять ті валюти, в яких випуск нових токенів або не передбачений (всі монети перебували в мережі з самого початку роботи), або здійснюється централізовано (як в Ripple).
Навіть ті валюти, розробники яких заявили про намір використовувати альтернативні алгоритми для захисту проведення транзакцій, для початкового розподілу токенів використовують PoW.
Майнінг криптовалют, що використовують Proof-of-Work
![Proof-of-Work](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAoF9ahlX0gHypkoOgAcGXxz0HSYfB-qbQo6UyiUeVx6f29on3rLtN_HKgVnhnp3anB6ja3e6mfOrjIwf81W6SS3tFFhPMF5O21mNzS5aUpiiLbmO1GCRL3CwUIOpNfIf4R976BVYo2ME/s1600/168-2-dokaz.jpg)
На сьогоднішній день всі цифрові валюти, які майняться, використовують саме алгоритм PoW. Однак, майнінг найбільших криптовалют для одинаків, які використовують неспеціалізоване обладнання і не входять до великих пулів, практично недоступний. Їх нішею стали нечисленні ASIC-захищені крипти або монети «з дна», які нікому з великих гравців не потрібні.
Популярні криптовалюти на алгоритмі Proof-of-Work
![BitCoin](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRtyDafQGO3_4wsXERMH5Bktc9KfkIBwESkRtukzOazvE1dFAxuse7F7horEVHuvRNz5SPCTS6Mrt-jzp7I2mhdRNJHAmBNIN4amAecOzh4SD6O9AHqOP2zyl36T5CowIlptrWC6FUQ48/s1600/168-3-bitkoin.jpg)
Само собою, головна PoW-крипта в світі - це Bitcoin. З нього почалася історія криптовалют і поки що не видно монети, яка змогла б змістити біткоін з вершини і відібрати у нього звання «цифрового золота».
Велика частина нашого матеріалу і присвячена роботі алгоритму PoW в тому вигляді, в якому він реалізований в біткоінах. Пов'язано це з тим, що в більшості валют використовується той же самий алгоритм. Причому не тільки в тих, які є форками біткоіна: більшість розробників цілком природно краще «не винаходити велосипед» і використовувати перевірене і працююче рішення.
![efir](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD7GzfB6YVrdqqJCEbceQc2aWyPQVotz6wAUgY3YEh7tCQIR_Pq_tA4iImxNHBgIjqgOnz2qv9uar_KnSombLXIayMmTDF1QnRq0Bp_EsqzTzkqWLHPdd0Wg__4QBWcWCtWyOD0lIXZmk/s1600/168-4-efir.jpg)
Друга криптовалюта за капіталізацією - Ethereum, на даний момент також використовує для захисту мережі алгоритм PoW, званий Ethash. Надалі розробники планують перейти спершу на гібридну схему PoW+PoS, а потім і повністю відмовитися від алгоритму Proof-of-Work.
Подібний підхід викликаний тим, що творець Ethereum спочатку мав намір використовувати концепцію Proof-of-Stake, однак, невирішені проблеми цього алгоритму змусили його звернутися до більш перевірених варіантів. Зараз же розробники сподіваються, що створюваний ними протокол PoS під назвою Casper вирішить проблеми доказу частки і захисту блокчейна від форків, що дозволить відмовитися від PoW.
![monero](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Bq4x3jQmjzd1PmfzuLZs8NbH0V4sIlWqMvuPYyCIRCPwnlWLEqBVT1jCYJHmvNBV2nKtQvMTtEM9LfimVPZYEI4goOuz0w2i3da2bGsoWrBDkEyX4Qz9DIrQFArMul4OoEE-WoQDEDQ/s1600/168-5-monero.jpg)
Monero є рідкісним прикладом успішної валюти, що використовує ASIC-захищений PoW-алгоритм. Протокол, названий CryptoNight, використовує вбудовані інструкції CPU, виконання яких на пристроях з низькою частотою і швидкою пам'яттю або спеціалізованому обладнанні дуже затратне. Успішність Monero, втім, забезпечується не нововведеннями в алгоритмі консенсусу, а унікально високою анонімністю - на відміну від того ж біткоіна, транзакції в блокчейні Monero НЕ відстежуються в принципі.
Яке майбутнє чекає алгоритм Proof-of-Work?
Proof-of-Work залишається найбільш надійним (багато в чому в силу того, що він - найбільш старий і випробуваний з усіх) алгоритмом консенсусу. У зв'язку з цим, навіть ті розробники криптовалют, які заявляють про свою прихильність альтернативним алгоритмам, змушені використовувати PoW як мінімум для розподілу токенів.
І, хоча недоліки Proof-of-Work призводять до поступового переходу від «чистих» PoW-алгоритмів до гібридних, відмови від використання цієї концепції найближчим часом не відбудеться. І тим більше цього не станеться, поки буде працювати блокчейн біткоіна.
Обробка: Vinci