Спочатку завданням даного алгоритму, придуманого ще 1993 року, було запобігання DoS-атак. Сенс полягав у тому, що для надсилання повідомлення комп'ютер повинен був виконати певну обчислювальну роботу. Звичайному спілкуванню це не заважало, але при спробі надіслати понад десяток запитів – починалися проблеми.
А в 2009 році стало відомо, що саме цей підхід ліг в основу алгоритму консенсусу, який захищає першу криптовалюту у світі - Bitcoin. Причому він виявився настільки ефективним, що активно застосовується і досі.
Зрозуміло, з деякими доопрацюваннями, оскільки обчислювальні потужності помітно з 1993 зросли.
Сенс у чому. Будь-який вузол, який бажає додати в блокчейн новий блок, повинен випередити інших бажаючих у процесі вирішення складного завдання, що визначається вмістом блоку – хеш. А щоб це зробити, потрібні суттєві обчислювальні потужності, які вимагають великої кількості електроенергії.
Розглянемо, як алгоритм PoW працює у Біткоїні. Оскільки це децентралізована мережа, всі вузли мають рівні права. Але деякі з них можуть брати участь у додаванні нових блоків, якщо це дозволяє обчислювальна потужність. Для того, щоб включити в ланцюжок нову "ланку", необхідно підібрати псевдовипадкове число nonce або "одноразовий код". Воно має бути таким, щоб якщо його, разом з інформацією, що додається в блоці, пропустити через хеш-функцію, вийшов певний заданий результат - хеш блоку.
І будь-який інший учасник може перевірити правильність цього обчислення, просто підставивши на функцію отриманий результат.
Якщо ж хтось намагатиметься підробити вміст блоків, утвориться нове відгалуження ланцюжка. Однак оскільки воно не пов'язане з основним логічно та криптографічно, «добудовувати» його будуть лише вузли-зловмисники. А вся система, завдяки механізму «візантійської відмови стійкості», незабаром цей «короткий ланцюжок» відкине. Уникнути цього можна тільки в тому випадку, якщо зловмисники володітимуть 51 і більше відсотком обчислювальної потужності блокчейну.
Однак цей алгоритм дуже прив'язаний до обчислювальних потужностей, які використовуються виключно для підбору «одноразового коду» і для чогось іншого. Тому були розроблені альтернативні методи, одним з яких став алгоритм консенсусу «Proof of stake».
0 Комментарии