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


