Сеть Waves работает на алгоритме консенсуса leased proof-of-stake (LPoS) в сочетании с Waves-NG протоколом, что обеспечивает высокую степень масштабируемости и пропускную способность транзакций.
Предисловие
Сеть Waves была запущена в 2016 году после ICO, в ходе которого было привлечено 30 000 BTC, около 16 миллионов долларов на то время. В рамках проекта разрабатывается комплексная блокчейн экосистема для бизнес-решений с широким набором инструментов, охватывающих разнообразные потребности, включая легкое создание пользовательских токенов, смарт-контрактов, одноранговая торговля на встроенной децентрализованной бирже (DEX), а также безопасное и удобное средство взаимодействия с dApps и веб-сервисами с помощью плагина для браузера Waves Keeper.
Масштабируемость
С самого начала существования Waves, компания понимала, что для массового принятия технологии блокчейн потребуется улучшить масштабируемость и определила приоритеты развития технологии, чтобы устранить ограничения существующих блокчейнов. Например, Биткойн очень безопасен, но он относительно медленный и может поддерживает только около 7 транзакций в секунду (TPS). Таким образом, Биткойн недостаточно эффективен для использования его в качестве повседневной валюты. Решение второго уровня, такое как Lightning Network, необходимо для того, чтобы Биткойн смог это реализовать. В Waves был принят другой подход, который изначально был сосредоточен на высокой масштабируемости цепочки, прежде чем рассматривать приложения второго уровня.
Лизинг баланса
Первоначальный алгоритм консенсуса в Waves был простой имплементацией Proof of Stake. Все 100 миллионов токенов WAVES были разосланы после ICO и их общее количество является фиксированным, без наличия инфляции, как это происходит с монетами в PoW. Следовательно, валидаторы в Waves (форгеры, хотя их обычно называют “майнерами”) в качестве награды получают оплату комиссий в блоке, а не вознаграждение.
Система Leased Proof of Stake (LPoS) была полностью запущена в мае 2017 года, что позволило пользователям Waves lite клиента, тем кто не может запустить полный узел, сдавать в аренду свои 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 созданный профессором Cornell IT Эмин Гюн Сирером.
Оригинальный протокол Биткойн выбирает каждого майнера ретроспективно. После того, как блок был добавлен в блокчейн, майнеры конкурируют между собой, чтобы найти действительный хеш для следующего блока основываясь на текущем состоянии цепи. Тем временем вновь созданные транзакции попадают в пул памяти (mempool), где они будут оставаться в режиме ожидания, пока один из майнеров их соберет и проверит.
И хотя оба эти протокола, как Биткойн, так и Bitcoin-NG считаются системой задач византийских генералов (BFT), но последний был предложен в 2015 году, в качестве альтернативы для повышения масштабируемости, основанной на другом рабочем механизме. В системе Bitcoin-NG следующий майнер выбирается заранее и он создает пустой ключевой блок (key block) - это блок, который в конечном итоге будет добавлен в блокчейн. К этому ключевому блоку добавляются небольшие блоки, называемые микроблоками (состоит из нескольких транзакций). На примере из повседневной жизни, это похоже на добавление нескольких пакетов с покупками (микроблоков) в тележку (ключевому блоку) до того, как она заполнится и в конечном итоге попадет на кассу (добавиться в блокчейн). Это означает, что транзакции могут быть добавлены в блокчейн всего за несколько секунд с единственной реальной задержкой связанной с сетью. Компания Waves обновила proof of stake, создав протокол Waves-NG, это первая интерпретация Bitcoin-NG для открытого, публичного блокчейна.
Еще одним дополнением к экосистеме был MassTransfers. Это позволяет упаковать до 100 переводов в рамках одной транзакции с уменьшенной комиссией. Ограничение в 100 TPS для MassTransfer было выбрано в качестве компромисса между значительной емкостью и удобством, и ограничением возможности отправлять очень большие партии недорогих транзакций. Если необходимо сделать больше переводов, несколько MassTransfers могут быть последовательно реализованы.
Другими словами, пользователи могут просто выбрать MassTransfer в качестве другого типа отправки транзакций, что позволяет им включать до 100 получателей в один перевод. Кроме того, адреса получателей могут быть предоставлены в файлах с расширением JSON или CSV, что делает его простым и эффективным для выполнения больших аирдропов или еженедельных выплат тем, кто предоставляет свои WAVES в аренду для майнинг-узлов. В сочетании с Waves-NG функция MassTransfer обеспечивает очень высокую пропускную способность сети.
В сети Waves был проведен ряд тестов для оценки пропускной способности нового протокола. В октябре 2018 года был проведен стресс-тест майнета. Это продемонстрировало, что публичный, открытый блокчейн протокол может поддерживать более 6,1 миллиона транзакций в сутки и в среднем 4200 TPS в минуту или 71 TPS в секунду, при этом максимальная пропускная способность достигает 100+ транзакций в секунду.
Заключение
Система Leased Proof-of-Stake позволила обычным пользователям, помочь в защите сети Waves, передавая свои WAVES токены узлам, не теряя контроля над ними. В то же время, Waves-NG обеспечивает пропускную способность до 100 TPS, что на порядок больше чем у множества блокчейнов. Транзакции также дешевле, потому что нет необходимости платить майнерам вознаграждение за блок, чтобы компенсировать их затраты на электроэнергию и дорогое оборудование.
Масштабируемость цепи является приоритетом для Waves, но существуют определенные ограничения для других блокчейн сетей с таким же подходом в связи с требуемым объемом памяти и пропускной способности. Разработчики Waves считают, что ее можно оптимизировать для поддержки до 1000 TPS, прежде чем потребуются дополнительные решения. В настоящее время Waves в поиске различных вариантов для масштабирования второго уровня, включающего сайдчейн, что позволит обрабатывать большое количество транзакций в параллельной цепочке и в конечном итоге защищать ее с помощью основной.