SQUAD для децентрализованного секвенсирования

Почему именно децентрализованная секвенция?

Центральным компонентом любого роллапа является секвенсор. Секвенсоры - это ноды в сети роллапов, на которые возложены следующие функции роллапа:

  1. Агрегирование транзакций: Принимать транзакции от конечных пользователей через mempool.

  2. Заказ транзакций: Выбрать транзакции из mempool и упорядочить их в соответствии с определенной политикой.

  3. Выполнение транзакций: В большинстве роллапов секвенсору также поручается выполнение транзакций в соответствии с базовой VM.

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

  5. Отправка упорядоченных данных транзакции на уровень DA: В качестве последнего шага секвенсор также фиксирует данные заказанных транзакций на уровне DA, например, на базовом уровне Layer 1. После размещения на Layer 1 транзакции приобретают завершенность на Layer 1.

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

Хотя можно утверждать, что даже когда секвенсор выходит из строя, сеть продолжает работать, поскольку пользователи могут отправлять транзакции Layer 2 непосредственно на Layer 1. Однако эти транзакции могут занять до 24 часов, чтобы считаться завершенными, и будут стоить столько же, сколько и базовые транзакции Layer 1, а значит, приведут к ухудшению пользовательского опыта. Кроме того, 24-часовая задержка может быть не идеальна для операций, привязанных ко времени, таких как ликвидация долговой позиции.

В более общем случае централизованный секвенсор может:

  • цензурировать транзакции пользователей

  • стать препятствием или, в худшем случае, стать полностью недоступным

  • извлекать чрезмерную ренту

  • опережать пользовательские транзакции или, в более широком смысле, создавать плохие MEV и негативно влиять на пользователей

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

Децентрализованная секвенция через SQUAD

AltLayer спроектирован таким образом, чтобы разработчики приложений, желающие создать роллап, могли запросить его через панель запуска роллапа и указать количество секвенсоров, которые они хотели бы иметь для своего роллапа. Разработчикам приложений не нужно беспокоиться о поиске и загрузке секвенсоров или размещении какого-либо компонента роллапа самостоятельно, тем самым делая весь процесс создания роллапа с децентрализованными секвенсорами простым и беспроблемным.

Это достигается за счет использования SQUAD, который позволяет нодам, управляемым операторами EigenLayer AVS, регистрировать свою заинтересованность в том, чтобы стать секвенсором для роллапов, инстанцированных нашим бескодовым дашбордом RaaS. Когда конечный пользователь делает запрос на роллап через нашу платформу RaaS, он указывает минимальное и максимальное количество секвенсоров, необходимых для работы роллапа, а также минимальный объем экономического обеспечения, требуемый от каждого секвенсора, и список токенов, в которых может быть предоставлено обеспечение. Залог должен быть перезаключен через EigenLayer и позже использован для разрушения любого неисправного секвенсора.

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

Чтобы облегчить поиск секвенсоров, SQUAD спроектирован как сеть нод, к которой могут присоединиться любые операторы EigenLayer AVS, и фактически сам по себе является полноценным блокчейном с режимами работы WASM и EVM. Узлы в SQUAD называются валидаторами, что типично для любой PoS-сети. Как только валидатор становится частью сети SQUAD, он может начать регистрировать потребности в секвенции из роллапов и сопоставлять их с секвенсорами.

Регистрация в качестве секвенсора в SQUAD

Секвенсоры сами вносят минимально необходимые ставки LST или реализуют механизм делегированных ставок, позволяющий держателям LST делать ставки вместе с секвенсором. Ставка на Squad реализована нативно в контракте AVS.

Регистрация запроса на роллап в SQUAD

Если разработчик хочет развернуть свой собственный роллап определенного типа (флэш-слой или постоянный слой) через панель запуска роллапов AltLayer, он должен начать с регистрации запроса на слой исполнения в SQUAD в форме вызова смарт-контракта к контракту с именем ExecutionLayerRegistryContract.

Запрос на регистрацию имеет следующий формат JSON. В основном разработчик указывает расчетный и DA-слой для слоя исполнения, время выполнения (т. е. WASM, EVM и т. д.) и тип слоя исполнения (оптимистичное исполнение с доказательствами мошенничества или ZK с доказательствами подлинности), а также назначение слоя исполнения (т. е. общее назначение или для конкретного приложения). Обратите внимание, что в запросе также указывается количество секвенсоров, необходимых для данного уровня исполнения.

“execution_layer_req” : {
 “settlement_layer” : “ethereum”,
 “da_layer”: “celestia”,
 “vm”: “wasm”,
 “type”: “optimistic”,
 “purpose”: “app-specific”,
 “nb_sequencers”: “3”,
 “allowed_tokens”: [{“sym”: “ALT”}, {“sym”: “stSOL”}],
 “min_stake_per_seq”: [{“sym”: “ALT”, val: “100"}, {“sym”: stSOL, val: “1000”}]
}

Выбор секвенсоров для роллапа

Получив запрос на роллап, SQUAD выбирает валидаторы из тех, которые выполнили минимальное количество LST, основываясь на их ставке и некоторой случайности, сгенерированной VRF. Затем этим нодам разрешается стать секвенсорами для данного роллапа.

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

Last updated