Алгоритм консенсусу Leased Proof of Stake і протокол Waves-NG
Автор: Гай Брендон, учасник Waves.
Мережа Waves працює на основі консенсусу Leased Proof of Stake (LPoS) у поєднанні з протоколом Waves-NG, забезпечуючи високий рівень масштабованості й пропускної спроможності транзакцій.
Вступ
Мережа Waves була запущена у 2016 році після ICO, в результаті якого було зібрано 30 000 BTC – близько 16 мільйонів доларів США на той момент. Проєкт розробляє всеосяжну блокчейн-екосистему для використання в бізнес-процесах з широким набором інструментів, що охоплюють різні потреби, зокрема просте створення персоналізованих криптовалютних токенів; прості смартконтракти; P2P-торгівлю на вбудованій децентралізованій біржі (DEX); і безпечний та зручний засіб взаємодії з dApp і вебсервісами через змінний модуль браузера Waves Keeper.
Масштабованість
З самого початку проєкт Waves розумів, що для масового прийняття блокчейну знадобиться масштабованість, і приділяв пріоритетну увагу розробці технологій для усунення обмежень існуючих блокчейнів. Наприклад, Bitcoin дуже безпечний, але відносно повільний і може підтримувати лише близько 7 транзакцій на секунду (TPS). Таким чином, Bitcoin недостатньо ефективний, щоб його можна було використовувати як повсякденну валюту в усьому світі. Для цього Bitcoin потрібні рішення рівня 2, такі як Lightning Network. Waves застосував інший підхід, зосередившись спочатку на високій масштабованості ончейн, перш ніж розглядати застосунки рівня 2.
Оренда активів
Початковий алгоритм консенсусу Waves був простою реалізацією Proof of Stake. Усі 100 мільйонів токенів WAVES були розподілені після ICO. Також була фіксована пропозиція, тобто відсутня інфляція, як у монетах, здобутих за допомогою PoW. Таким чином, валідатори блоків Waves (карбувальники, хоча в екосистемі Waves їх зазвичай називають просто майнерами) отримують комісію за транзакції з блоків, які вони обробляють, але не винагороду за блок.
Система Leased Proof of Stake (LPoS) була повністю запущена в травні 2017, що дозволило користувачам спрощеного клієнта Waves (тим, у кого не було повної ноди) здавати свої токени WAVES в оренду майнінг-нодам. Орендовані WAVES блокуються в акаунті користувача і не можуть бути переказані або продані. Тим не менш, токени залишаються під повним контролем власника акаунту, і оренда може бути скасована у будь-який момент. Враховуючи технічні накладні витрати, пов'язані із запуском майнінг-нод, і необхідність бути в мережі 24/7, лише відносно невелика частина спільноти Waves використовує ноди (список генераторів блоків можна знайти за адресою https://dev.pywaves.org/generators/).
Токени WAVES, що здаються в оренду майнінг-ноді, використовуються для збільшення частки майнера, що, зі свого боку, збільшує шанси цього майнера знайти наступний блок. Система Leased Proof of Stake підвищує безпеку мережі як мінімум двома способами. По-перше, що більше WAVES використовується для захисту мережі, то краще, тому що зловмиснику стає складніше накопичити токени, необхідні для проведення атаки 51%. По-друге, WAVES можна здати в оренду нодам з адресою холодного зберігання, але сама нода, що залишається онлайн, може мати лише мінімальний баланс. Це значно знижує ризик злому токенів WAVES з комп'ютерів, що знаходяться онлайн, оскільки орендовані кошти не передаються майнеру.
Новий підхід до консенсусу: Waves-NG
Подальше оновлення мережі відбулося у грудні 2017 року із запуском Waves-NG. Це новий протокол, заснований на пропозиції Bitcoin-NG, висунутий Еміном Гюном Сірером, професором інформаційних технологій Корнельського університету.
Оригінальний протокол Bitcoin вибирає кожного майнера заднім числом. Після того, як блок додається до блокчейну, майнери змагаються, щоб знайти дійсний хеш для наступного блоку, ґрунтуючись на поточному стані блокчейну. Тим часом, знову згенеровані транзакції потрапляють до пулу пам'яті (мемпулу), де вони залишатимуться в очікуванні, поки майнер зрештою не збере і не перевірить їх.
Хоча протоколи Bitcoin і Bitcoin-NG вважаються системами, які вирішують Задачу візантійських генералів (BFT), останній був запропонований в 2015 році як масштабовна альтернатива, заснована на іншому робочому механізмі. У системі Bitcoin-NG наступний майнер вибирається заздалегідь, і цей майнер створює порожній "ключовий блок" – блок, який зрештою буде доданий до блокчейну. Невеликі блоки, які називаються "мікроблоками" (що складаються з кількох транзакцій), додаються до цього ключового блоку майже в реальному часі. Якщо використовувати повсякденну аналогію, це схоже на додавання кількох сумок з покупками (мікроблоків) у візок (ключовий блок), перш ніж повний візок зрештою буде доставлений до каси (додано до блокчейну). Це означає, що транзакції можуть бути додані до блокчейну всього за кілька секунд, і єдиною реальною затримкою є мережева затримка. Waves оновила цю ідею для мережі Proof-of-Stake, створивши протокол Waves-NG – перше розгортання Bitcoin-NG для відкритого публічного блокчейну.
Ще одним доповненням до екосистеми став MassTransfers. Він дозволяє об'єднувати до 100 переказів в одну транзакцію зі зниженою комісією. Обмеження у 100 транзакцій на MassTransfer було вибрано як компроміс між додаванням значної ємності й зручності, з одного боку, і обмеженням можливості одночасного відправлення дуже великих пакетів недорогих транзакцій, з іншого боку. Якщо потрібно зробити більше переказів, можна надіслати кілька MassTransfers послідовно.
Тобто користувачі можуть просто вибрати масовий переказ як інший тип транзакції надсилання, що дозволить їм включити до 100 одержувачів в одну транзакцію. Крім того, адреси одержувачів можуть бути надані у форматі JSON або завантажені з файлу CSV, що робить простим і ефективним проведення великих аірдропів або щотижневих виплат тим, хто здає свої WAVES в оренду майнінг-нодам. У поєднанні з Waves-NG, функція MassTransfer забезпечила дуже високу пропускну спроможність мережі.
У мережі Waves було проведено низку стрес-тестів, щоб оцінити пропускну спроможність нового протоколу. У жовтні 2018 року в основній мережі було проведено великий стрес-тест. Він продемонстрував, що публічний відкритий блокчейн-протокол (а не просто обмежений і контрольований тестнет) може підтримувати понад 6,1 мільйона транзакцій протягом 24 годин, тобто в середньому 4200 транзакцій за хвилину або 71 транзакцію за секунду, при цьому пікова пропускна спроможність досягає сотень транзакцій за секунду.
Підсумки
Система Leased Proof-of-Stake дозволила звичайним користувачам, які не мають технічних знань, захищати мережу Waves, здаючи свої WAVES в оренду повним нодам без втрати контролю над своїми токенами. Waves-NG забезпечує пропускну спроможність до 100 TPS, що на порядок більше, ніж у багатьох блокчейнів. Комісії низькі, тому що немає потреби платити майнерам винагороду за блок, щоб компенсувати їм високі витрати на електроенергію і дороге обладнання.
Масштабованість ончейн була пріоритетом для Waves, але існують обмеження щодо того, наскільки будь-який блокчейн може масштабуватися таким чином через необхідне сховище й пропускну спроможність. Розробники Waves вважають, що поточний підхід можна оптимізувати для підтримки до 1000 TPS, перш ніж юудуть потрібні додаткові рішення для масштабування. Наразі Waves вивчає варіанти рішення для масштабування рівня 2, зокрема сайдчейни, що дозволяють обробляти велику кількість транзакцій у паралельному блокчейні, але зрештою забезпечуючи їхню безпеку в основному блокчейні Waves.