StarkNet — это решение Layer 2 для масштабирования Ethereum, основанное на децентрализованном пакете достоверности (Validity-Rollup), также известном, как накопительный пакет с нулевым разглашением (zk-Rollup). Сеть работает поверх базового блокчейна Ethereum и позволяет децентрализованным приложениям (dApps) массово масштабироваться без ущерба безопасности.
Обзор StarkNet
Такие возможности сети StarkNet достигаются за счет объединения транзакций в вычисленное вне основной сети доказательство STARK (краткий прозрачный аргумент с нулевым разглашением). Затем это доказательство передается в основную сеть Ethereum в виде всего одной транзакции, что значительно увеличивает пропускную способность (TPS), сокращает время обработки транзакций и снижает комиссионные сборы. Таким образом пользователи получают возможность осуществлять быстрые и дешевые транзакции без ущерба безопасности, которая по прежнему обеспечивается расчетным слоев сети Ethereum.
Как работает StarkNet?
Starknet достигает высокой масштабируемости за счет обработки транзакций вне основной сети Ethereum, сохраняя при этом сводку транзакций в сети. Большое количество транзакций группируется пакетами в блоки, обрабатываются вне сети, а затем суммируются в одну транзакцию ончейн. Поскольку транзакции происходят вне сети, крайне важным аспектом является обеспечение их целостности и выполнение без необходимости повторного выполнения. StarkNet решает эту проблему, используя доказательства STARK для проверяемых вычислений. Затем StarkNet передает в основную сеть Ethereum лишь необходимую информацию о блоке и доказательство, где оно проверяется с минимальными вычислительными затратами.
Что такое секвенсор StarkNet?
Первым и основным компонентом сети Starknet является секвенсор. Секвенсор — это узелы, который берет на себя ключевую роль в проверке и выполнении транзакций, а также предложении блоков. Основной задачей секвенсоров является группировка транзакций и их обработка как единого целого. Неудачные транзакции помечаются и задерживаются секвенсором, позволяя только успешным быть добавленными в блок. Секвенсоры Starknet могут обрабатывать значительно больше транзакций в секунду, чем узлы Ethereum, что значительно увеличивает пропускную способность и снижает комиссионные сборы сети.
Следующим ключевым компонентом сети StarkNet являются доказывающие узлы (Provers).
Что такое прувер StarkNet?
Прувер (Prover) — это узел, задачей которого является установление математической достоверности транзакций в блоке, генерируя доказательство STARK и обеспечивая тем самым целостность блока. Блоки объединяются в группы и обрабатываются параллельно. На этом этапе прувер записывает каждый шаг выполнения транзакции, создавая трассировку выполнения, а также отслеживая результирующие изменения в состоянии системы, называемые разницей состояния.
Затем алгоритм тщательно анализирует и смешивает данные из трассировки выполнения. На этом этапе любые несоответствия выдвигаются на передний план, поскольку даже единственный экземпляр неверных данных делает не верным весь расширенный набор данных, поэтому любые ошибки невозможно пропустить. Затем прувер выбирает набор случайных выборок из этих расширенных данных для создания доказательства STARK. Это доказательство STARK подтверждает достоверность огромного количества транзакций, насчитывающихся тысячами.
Безопасность Ethereum
Доказательство STARK и разность состояний передаются в Ethereum в виде транзакция, где узел Ethereum принимает транзакции и распаковывает доказательство и разность состояний. Эти распакованные компоненты обрабатываются двумя смарт-контрактами в сети Ethereum: Verifier и Starknet Core.
Контракт Verifier разбивает доказательство и анализирует содержащиеся в нем образцы. Любой намек на сомнительные данные в образцах доказательства приводит к немедленному отклонению. Как только достоверность доказательства будет подтверждена, оно отправляется в смарт-контракт Starknet Core.
Контракт Starknet Core проверяет подлинность доказательства и подтверждает получение разности состояний, впоследствии обновляя состояние StarkNet в блокчейне Ethereum. Это обновленное состояние затем добавляется в блок Ethereum, который распространяется по сети узлов для проверки и голосования. Когда блок набирает достаточное количество голосов, он достигает «завершенного» статуса, закрепляя свое место в качестве неизменной части сети Ethereum.
Архитектура StarkNet
Как и любые другие решения второго уровня (Layer2) для масштабирования Ethereum, сеть StarkNet имеет несколько видов узлов, находящихся за пределами блокчейна Ethereum. Всего их 3 вида:
- Секвенсор (Sequencer) — узел, который принимает транзакции, проверяет их , создает доказательство STARK, объединяя таким образом большое количество транзакций в накопительный пакет.
- Проверяющий узел (Prover) — узел, занимающийся созданием доказательства, подтверждающего целостность вычислений, произведенных секвенсором.
- Полный узел (Full State Node) — узел в сети StarkNet, который используется только для запроса текущего состояния StarkNet. Он может независимо отвечать на запросы о текущем состоянии сети StarkNet, включая состояние родительского блокчейна Ethereum. Он не группирует транзакции и не подтверждает накопительные пакеты.
Ончейн-компоненты StarkNet, находящиеся в основной сети Ethereum:
- Верификатор (Verifier) — смарт-контракт в сети Ethereum, который получает сгенерированные доказательства от проверяющих узлов (Provers), проверяет их и отправляет данные в StarkNet Core.
- Ядро (StarkNet Core) — смарт-контракт в сети Ethereum, получающий изменения глобального состояния StarkNet, когда на втором слое создается и успешно проверяется новый блок.
Создатель технологии zkSTARK утверждает, что в теории она может объединить до 60 миллионов транзакций в один блок на блокчейне Ethereum.
Токен STRK
STRK — это токен управления сети StarkNet стандарта ERC-20, выпущенный в сети Ethereum и необходимый для управления сетью, оплаты транзакций и стимулирования ключевых участников сети.
- Общее предложение: 10 000 000 000 STRK
Логика токена STRK направлена на децентрализацию сети StarkNet и имеет несколько важных функций в экосистеме сети:
- Оплата комиссий. STRK используется для оплаты сетевых сборов и необходим для совершения транзакции, также, как используется ETH в сети Ethereum.
- Стимулирование узлов и разработчиков. Токен используется для стимулирования валидаторов, обеспечивать работу сети и ее безопасность. Кроме того, под программу стимулирования подпадают разработчики смарт-контрактов и разработчики ядра StarkNet.
- Стейкинг. Для участия в работе сети в роли секвенсора, узлу необходимо поставить определенную сумму токенов в стейкинг.
- Управление протоколом. Держатели токенов STRK имеют право на голосование по вопросам управления и развития. Вес голоса каждого пользователя зависит от количества токенов поставленных в стейкинг.