Zilliqa — первый публичный блокчейн, построенный на технологии шардинга

Zilliqa — первый публичный блокчейн, построенный на технологии шардинга (разбивания на части по определенным критериям с целью ускорения работы), позволяющей линейно увеличивать пропускную способность сети по мере увеличения нагрузки.

У технологии блокчейна есть одна неотъемлемая проблема, связанная с масштабируемостью: чем больше узлов в сети, тем сложнее достичь консенсуса. Чтобы проиллюстрировать этот момент, проведем аналогию с людьми:

Небольшая группа близких друзей обычно принимает решения легко и быстро. Не все с ними могут быть согласны, однако сам процесс прозрачен и очевиден.

Для умеренно больших групп, например, заполненной аудитории, достичь согласия можно простым голосованием. Люди поднимают руки, и ведущий их пересчитывает. Однако в этом случае учесть голоса становится сложнее, и нельзя гарантировать, что все проголосовали лишь один раз.

Для групп, состоящих из тысяч и миллионов людей, необходима более сложная система подсчета, потребляющая значительно больше энергии. Кроме того, нельзя быть уверенным в честности всех людей, и сложно достичь окончательного результата, будучи уверенным, что учтены все голоса и имеется конкретный результат.

Эта аналогия несовершенна, однако прослеживается определенная тенденция: с ростом числа участников прийти к консенсусу становится сложнее. Скорость/качество принимаемых решений обычно обратно пропорциональны размеру сети. Когда один параметр растет, другой падает.

Имеющиеся решения проблемы масштабируемости блокчейна направлены на вынесение части информации за пределы цепочки или увеличение размера блоков (другими словами, узел, подтверждая блок, заверяет большее число транзакций). Эти способы помогают отсрочить кризис, однако они не устраняют саму проблему масштабируемости.

Чтобы ее решить, необходимо изменить архитектуру системы таким образом, чтобы размер сети и скорость работы положительно коррелировали.

Разработчики Zilliqa нашли способ обрабатывать больше транзакций по мере расширения сети. Для этого им пришлось полностью переработать концепцию блокчейна. Новая модель основана на гибридном протоколе консенсуса, который увеличивает пропускную способность сети каждый раз, когда к ней подключаются новые узлы.

Теоретически пропускная способность Zilliqa увеличивается за счет разделения работы. На практике возникают определенные проблемы с трансляцией, когда сеть становится очень большой (более миллиона узлов). Впрочем, человечество нескоро приблизится к верхнему пределу: в настоящий момент в сети Bitcoin насчитывается около 10 тыс. узлов, а Ethereum — крупнейшее объединение полных узлов, — примерно 16 тыс.

При этом обе сети способны обрабатывать всего 3−15 транзакций в секунду. Для сравнения, испытания в частной сети (виртуальный тест AWS) показали, что Zilliqa способна проводить 1218 операций в секунду при 1800 работающих узлах. В случае удвоения их числа скорость работы возрастает до 2488 т/с.

zilliqa sharding

Zilliqa удается достичь подобной масштабируемости с помощью так называемого шардинга. Протокол Zilliqa разбивает сеть на группы из 600 узлов. Каждая группа — это один шард (от англ. shard — осколок).

Например, в приведенном выше примере тестовая сеть из 1800 узлов делилась на три шарда. Сеть из 3600 узлов разбивалась, соответственно, на шесть шардов. По мере подключения дополнительных узлов будут создаваться новые шарды.

Каждый шард обрабатывает часть транзакций в сети. Другими словами, если есть шесть шардов, то каждый получает примерно 1/6 часть всех транзакций сети. Чем больше шардов, тем ниже нагрузка. Подобный подход позволяет поддерживать требования к вычислительной мощности на относительно стабильном уровне.

zilliqa throughput

Каждый шард обрабатывает свои транзакции и сохраняет их в микроблок параллельно с другим шардами. В конце периода параллельной обработки, который называется DS-эпохой, микроблоки объединяются в полный блок, а он добавляется к блокчейну.

Для каждой DS-эпохи случайным образом выбираются узлы, управляющие шардами. Эта структура, известная как DS-комитет, направляет работу сети. Она определяет, какие узлы включаются в каждый из шардов. При поступлении запросов на транзакции DS-комитет переправляет их в соответствующий шард для обработки. В конце DS-эпохи комитет собирает блок из микроблоков, созданных шардами

Zilliqa использует гибридный механизм консенсуса. Майнер, впервые приступающий к работе, обязан рассчитать хэш по алгоритму Proof-of-Work. Для этого требуется определенная вычислительная мощность, которая гарантирует, что на компьютере установлен только один узел. Таким образом, PoW в некотором смысле позволяет удостовериться в личности майнера, предотвращая создание множества фиктивных идентификаторов и обеспечивая защиту от атаки Сивиллы. Однако сеть не использует PoW для достижения консенсуса.

После того как узел подтвердил свою личность, он включается в шард. В пределах шардов Zilliqa использует алгоритм консенсуса на основе Стратегии византийских генералов (Practical Byzantine Fault Tolerance, PBFT).

Это высокопроизводительный алгоритм с окончательностью (finality). Окончательность означает, что согласовать миниблок обязаны большинство узлов шарда. Когда блок подтверждается шардами и DS-комитетом, в него встраивается ссылка на предыдущий блок. Другими словами, в механизме консенсуса с окончательностью невозможны ветвления.

Zilliqa — это не первый распределенный реестр, основанный на BFT. NEO, Tendermint, и Hyperledger используют версии этого алгоритма консенсуса.

Механизм шардинга транзакций довольно прост и прозрачен. Каждая транзакция самостоятельно проверяется одним из шардов. Обмен большими объемами данных между шардами не требуется.

Однако это не относится к смарт-контрактам и децентрализованным приложениям. Смарт-контракты часто зависят от проверки состояний, переменных и функций. Их выполнение требует огромного объема коммуникаций между шардами. Постоянный обмен сообщениями увеличивает нагрузку на сеть и вычислительные мощности, сводя на нет все преимущества технологии.

По этой причине контракты Zilliqa ориентированы исключительно на потоки данных и функциональное программирование. Они не позволяют проверять, хранить или изменять состояния (по крайней мере, пока).

Общее мнение сводится к тому, что в шардинге пока не существует надежной и эффективной системы контроля состояний. Если позволить контрактам раздельно работать в разных шардах, существенно возрастают риски различных атак, сбоев в работе алгоритма и избыточной коммуникации между шардами.

Программисты Ethereum в настоящее время работают над решением этой проблемы, однако неясно, как далеко они продвинулись.

Однако Zilliqa хорошо подходит для децентрализованных приложений, требующих высокой пропускной способности. Любое децентрализованное приложение, чувствительное к скорости работы сети, будет прекрасно себя чувствовать в Zilliqa.

Чтобы сделать функциональное программирование более стандартизированным и безопасным, команда Zilliqa разработала язык программирования Scilla.

Scilla разделяет состояния и функции. Этот язык программирования проводит различия между коммуникационными аспектами контракта (передачей средств и взаимодействиями с другими контрактами) и фактическими выполняемыми вычислениями.

Новый язык не является полным по Тьюрингу. Это означает, что он не поддерживает приложения, построенные на некоторых типах циклов и условных операторов. Однако его неполнота позволяет проводить формальные логические верификации, необходимые для обеспечения безопасности. Они дают пользователю понять, что контракт проверен и безопасен для применения.

Scilla помогает осознать разницу между функциональными контрактами, поддерживаемыми Zilliqa, и контрактами, зависящими от состояний, которые проект пока не поддерживает.

По аналогии с другими децентрализованными приложениями и платформами, такими как Ethereum или NEO, токены ZIL выступают стимулом для майнеров, «газом» для исполнения контрактов и средством оплаты транзакционных сборов.

Изначально ZIL появились как токены стандарта ERC-20 на блокчейне Ethereum. Связано это с тем, что основная сеть Zilliqa еще не запущена. Когда она заработает (ориентировочно в третьем квартале 2018 года), токены ERC-20 будут обменены на собственные токены проекта.

В конце 2017 года Zilliqa привлек 12 млн долларов в эфирах по итогам частного раунда финансирования. Однако стремительное подорожание эфира привело к тому, что в скором времени 12 млн выросли до 20 млн — верхней планки финансирования проекта.

Собрав необходимые средства, Zilliqa объявил сообществу, что публичная продажа больше не требуется. Однако из-за высокого спроса проект все же провел размещение токенов на сумму 4445 ETH.

В настоящее время токены ZIL обращаются на Huobi, EtherDelta, gate.io, Idex и других криптовалютных биржах.

telega


Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 5,00 из 5)
Загрузка...

Редактор. Маркетолог. Криптоинвестор с 2014 года.