Sailfish
Sailfish -- это слой исполнения для высокопроизводительной торговли на Cardano. Он сопоставляет ордера вне блокчейна для обеспечения скорости, а затем рассчитывает итоговые изменения балансов обратно в блокчейне пакетами, верифицированными консенсусной сетью Echo.
Зачем нужен слой исполнения?
Сопоставление ордеров в блокчейне на Cardano ограничено временем создания блоков и пропускной способностью транзакций. Чтобы торговля ощущалась мгновенной -- субсекундное сопоставление, книги ордеров в реальном времени -- исполнение должно происходить вне блокчейна. Sailfish предоставляет эту среду исполнения, при этом все результаты рассчитываются обратно в Cardano, где валидаторы в блокчейне независимо проверяют каждый пакет.
Архитектура
Ранние версии Sailfish использовали головы Hydra непосредственно в качестве среды исполнения. По мере улучшения и оптимизации системы -- преодоления ограничений, таких как требование единогласия Hydra, статические наборы участников и необходимость закрывать и открывать головы при изменении состава -- Sailfish эволюционировал в независимое решение. Основные идеи сохранились, но архитектура была перестроена для лучшего соответствия высокопроизводительной торговле на Cardano.
Sailfish опирается на идеи нескольких устоявшихся паттернов второго уровня:
Фиксация состояния на основе снимков (snapshots), аналогичная модели, используемой каналами состояний Hydra на Cardano. Как и Hydra, Sailfish фиксирует внесетевое состояние в подписанные снимки, которые могут быть проверены в блокчейне. В отличие от требования единогласия Hydra (где каждый участник должен подписать), Sailfish использует пороговые подписи через Echo для более высокой доступности -- сеть продолжает работать, даже если некоторые участники уходят в офлайн.
Пакетный расчёт (batch settlement), заимствованный из паттерна роллапов, популярного на других блокчейнах. Вместо расчёта каждой сделки отдельно в L1, Sailfish группирует множество результатов ордеров в один пакет и фиксирует их в одной атомарной транзакции Cardano. Концептуально это аналогично тому, как роллапы сжимают множество транзакций в одну отправку на L1 -- максимизируя пропускную способность при наследовании безопасности базового уровня.
Механизм выхода в блокчейне, выполняющий ту же функцию, что и протокол оспаривания Hydra и аварийные выходы (escape hatches) в роллапах. Если внесетевой слой становится недоступным, пользователи могут вернуть свои средства напрямую в Cardano через процесс самостоятельного вывода с временной блокировкой, целиком обеспечиваемый валидаторами в блокчейне.
Результатом является специализированный слой исполнения, объединяющий эффективность снимков каналов состояний, пропускную способность пакетного расчёта роллапов и гарантии самостоятельного хранения, которые могут обеспечить валидаторы Cardano в блокчейне.
Единая ликвидность
Многие решения второго уровня страдают от фрагментации ликвидности -- активы, заблокированные на L2, недоступны на L1, что разделяет доступную ликвидность между уровнями. Sailfish полностью избегает этой проблемы.
Намерения, отправленные через Smart Account, совместимы как с транзакциями Pond-to-Pond на первом уровне, так и с транзакциями Sailfish на втором уровне. Пользователи просто выражают своё намерение торговать, и намерение может быть исполнено по тому пути, который обеспечивает лучшее исполнение. Это означает, что ликвидность фактически доступна на обоих уровнях одновременно.
Для DeFi-экосистемы, такой как Cardano, где ликвидность на данный момент относительно невелика, это особенно ценно. Вместо разделения и без того ограниченного пула между уровнями, Sailfish добавляет скорость исполнения без фрагментации ликвидности, от которой зависят участники L1.