DeFi. Compact от Uniswap - кроссчейн-прорыв 2025 года
Перевод
Это вольный перевод: blog.uniswap.org/the-compact-v1.
Авторы
0age, Chris Cashwell, Mark Gretzke, Christian Angelopoulos
Сегодня мы выпускаем The Compact v1 — контракт ERC-6909 без владельца для повторно используемых resource locks (буквально - “замков ресурсов”), который позволяет токенам быть достоверно “закоммиченными” (от слова коммит (в гит): коммит в git - это, по сути, "снимок" состояния проекта в конкретный момент времени, который фиксирует все изменения в файлах и сохраняет их в репозиторий) в обмен на выполнение действий между цепями.
Без правильных примитивов межсетевой ландшафт рискует раздробиться на изолированные экосистемы, где команды строят инфраструктуру под свои нужды, но она остаётся несовместимой с другими.
Мы видим лучший путь: общий, проверенный и совместимый примитив, который гибко адаптируется под требования каждого проекта без потери композиционности.
The Compact предоставляет именно такой примитив: общую основу для разработчиков, чтобы строить настраиваемые и компонуемые системы, раскрывающие огромный потенциал и выразительность программируемых цифровых активов.
Система станет движком для кроссчейн-свапов в UniswapX, а также для множества других приложений. Команды вроде LI.FI и Rhinestone уже строят решения на базе Compact.
The Compact v1 прошло несколько независимых проверок безопасности от Open Zeppelin и Spearbit Cantina; вспомогательные контракты сейчас активно дорабатываются. Полные отчёты аудита будут опубликованы вскоре, а система войдёт в программу bug bounty Uniswap Labs.
Как работает The Compact?
The Compact обеспечивает безопасные межсетевые расчёты с помощью системы повторно используемых замков ресурсов (Resource Locks) и программируемых коммитов.
- Когда спонсоры депонируют активы, они получают ERC-6909 токены, представляющие эти заблокированные активы, остающиеся под их контролем.
- Замки ресурсов являются основой для Compacts — проверяемых обязательств, задающих условия, при которых ресурсы можно забрать.
- Важное разделение: замок хранит активы, а Compact определяет правила доступа. Один замок может поддерживать несколько Compact, делая активы мгновенно “активированными” для использования в кроссчейн-сценариях без отказа (от кастодиальности).
Гибкость The Compact заключается в настройке ролей и правил:
- Allocators (распределители) - предотвращают двойное расходование, авторизуя использование замков. Спонсоры выбирают их по уровню доверия: от полностью ончейн до гибридных моделей.
- Arbiters (арбитры) - проверяют, выполнены ли условия Compact. При подтверждении они принимают доказательства и инициируют получение средств. Спонсоры подбирают арбитров исходя из баланса доверия, скорости и стоимости.
- Tribunals (трибуналы) - специализированные арбитры для кроссчейн-свапов: не-кастодиальный движок аукционов, который учитывает особенности разных сетей, проверяет кроссчейн-транзакции и координирует их финализацию. (Пока трибунал един).
- Emissaries (эмиссары) - резервные верификаторы, полезные для смарт-кошельков (EIP-1271) при изменении логики проверки подписи или ротации ключей.
Модульная архитектура позволяет разработчикам собирать компоненты под свои нужды, избегая жёсткой инфраструктуры.
По сути, The Compact -> это общий фреймворк для распределения ресурсов с сильными гарантиями против эквивокации.
Проблема абстракции чейнов
Кроссчейн-приложения сталкиваются с фундаментальной проблемой: разные окружения исполняются асинхронно, что делает невозможными атомарные транзакции.
Например, при свапе токенов между сетями нет гарантии одновременного исполнения обеих сторон сделки.
Раньше это была задача координации между несколькими чейнами, теперь — между сотнями rollup-ов и окружений с разными допущениями о финальности. Это приводит к экспоненциальному росту инфраструктуры, которую протоколы вынуждены согласовывать и перестраивать.
В результате появились монолитные эскроу-системы с высокими уровнями доверия, что породило ряд проблем:
- Фрагментация ликвидности - капитал разбросан по несовместимым эскроу.
- Жёсткие модели доверия - пользователи вынуждены отдавать (средства) кастодианам или использовать централизованных посредников.
- Отсутствие композиционности - кастомные эскроу не сочетаются в сложные сценарии.
- Риск исполнения и не-атомарность - асинхронность оставляет транзакции в “подвешенных” состояниях, возможны двойные траты.
- Нет резервных механизмов при ротации ключей - потеря ключа блокирует средства.
- Сложность навигации - пользователи вынуждены работать с разными кошельками, интерфейсами и моделями доверия.
The Compact решает эти вызовы, предоставляя примитив, который полностью абстрагирует кроссчейн-сложность.
Как Compact устраняет проблемы расчётов?
The Compact — это “безвладельческий” контракт ERC-6909, управляющий замками ресурсов:
- Замок создаётся при депозите токенов (ERC-20 или нативных).
- У каждого замка есть распределитель (allocator), область действия (сингл- или мультичейн), и период сброса (reset period), закодированные в 12-байтовом lock tag.
- Замки представлены как ERC-6909 токены, идентифицируемые комбинацией lock tag и адреса токена. Владельцы этих токенов могут выступать спонсорами и создавать Compacts.
- Спонсор назначает распределителя и период сброса.
- Allocator подтверждает все переводы и заявки, предотвращая даблспенд.
- Если allocator не отвечает, спонсор может инициировать форсированный вывод после периода сброса.
- Спонсор может назначить эмиссара как резервного подписанта.
- Средства остаются в Compact всегда, риску подвергаются только выделенные суммы.
- Когда спонсор хочет использовать средства в замке, он подписывает или регистрирует Compact и указывает Арбитра.
- Арбитр проверяет условия и в случае успеха подаёт заявку на вывод.
- Если Compact отклонён или истёк, спонсор может создать новый — с другим арбитром или параметрами, не теряя контроль над средствами.
Преимущества этого дизайна (архитектуры)
Мгновенная активация между сетями. Депонированные токены “активируются” и могут быть потрачены или обменяны в асинхронных средах; получателям нужно лишь доверять распределителю (allocator) и арбитру (arbiter).
Минимум доверия. Спонсоры и получатели должны доверять, что распределители не будут занижать аллокации, а арбитры — обрабатывать только валидные заявки. Если кто-то ведёт себя некорректно, спонсоры могут инициировать принудительный вывод.
Максимальная композиционность. Замки ресурсов — это повторно используемые взаимозаменяемые токены (ERC-6909), которые легко интегрируются в батч-компакты и мультичейн-флоу. Compact поддерживает синглчейны, батчи и мультичейн-компакты “из коробки”.
Повторно используемые замки ресурсов. После депозита спонсор может создавать любое количество компактов к одному замку. Распределители управляют nonce, предотвращая атаки с повторным воспроизведением.
Гарантированная атомарность. Заявки по компактам потребляют nonce и аллокации в одной транзакции. Двойные траты предотвращаются через валидацию attest и authorizeClaim, выполняемую распределителем. Если заявку нельзя подтвердить, средства остаются заблокированными.
Самокастодиальность. Пользователи никогда не отказываются от владения своими токенами. Все балансы остаются в их кошельке в форме ERC-6909 до тех пор, пока не будет выполнена заявка или спонсор не выведет базовые активы.
Делегирование и мультисиг. Эмиссары, опирающиеся на продвинутую систему управления ключами, позволяют делегировать полномочия и поддерживают M-of-N мультисиг, настраиваемые периоды сброса и протокол-осведомлённую проверку подписей. Это даёт возможность кошелькам 7702, аппаратным кошелькам, схемам социальной восстановления или MPC авторизовывать заявки.
Кроссчейн-операции. Спонсоры могут ограничивать замки одной сетью или отмечать их как мультичейн. Один компакт может включать обязательства сразу по нескольким сетям, а Tribunal и распределители обеспечивают атомарный кроссчейн-сеттлмент.
Что внутри The Compact?
Ниже приведён пример того, как может выглядеть типичный кроссчейн-свап с использованием The Compact. В этом примере используется полностью ончейн-распределитель и арбитр с моделью pull-based для кроссчейн-доказательств.
В общем виде кроссчейн-флоу проходит следующие шаги:
- Deposit → Lock. Спонсор депонирует токены в Compact, создавая замок ресурсов. Он выбирает область действия, период сброса и распределителя. Поддерживаются депозиты нативных токенов, ERC-20, батч-депозиты и Permit2 (без оплаты газа).
- Commit (создание Compact). Спонсор создаёт Compact, подписывая EIP-712 payload, регистрируя его напрямую или поручая ончейн-распределителю. Compact определяет арбитра, обязательства (токены/суммы), срок действия и условия свапа.
- Fulfill. Исполнители обнаруживают Compact и выполняют свап в целевой сети, доставляя токены пользователю. В целевой сети это обычно делает движок Tribunal.
- Claim. Арбитр получает доказательство исполнения и подаёт заявку в Compact. Контракт проверяет заявку через распределителя, сверяет nonce и разрешения и выпускает токены исполнителю. Тот может перевести их напрямую, создать новый замок или вывести базовый токен.
Модель доверия и безопасности
- Спонсоры доверяют распределителям, что те не будут цензурировать заявки.
- Получатели доверяют распределителям, что те не будут занижать аллокации.
- Обе стороны доверяют арбитрам, что они корректно обрабатывают заявки, а эмиссарам — лишь настолько, насколько безопасна их система управления ключами.
Ключевой момент: спонсоры всегда могут принудительно вывести средства, если распределитель скомпрометирован.
Референсные реализации и инструменты
Allocators (Аллокаторы)
Аллокаторы регистрируются в The Compact и выступают посредниками при переводе заблокированных токенов. Протокол запрашивает авторизацию аллокатора как для claim-операций, так и для переводов по ERC-6909, чтобы обеспечить достоверность закреплённых ресурсов.
Аллокаторы также определяют механику nonce и сроков действия (expiration), а также выполняют проверки безопасности для переводов ERC-6909.
Предоставлены несколько эталонных реализаций:
- OnChainAllocator - полностью ончейн-аллокатор, который управляет распределениями по идентификаторам и nonce через двухфазный процесс prepare/execute.
- HybridAllocator - позволяет спонсорам выделять ресурсы либо ончейн, либо путём предоставления оффчейн-подписей. Авторизованные подписанты управляются ончейн.
- ERC7683Allocator / HybridERC7683 - расширяют вышеописанные аллокаторы для интеграции с предлагаемым стандартом кросс-чейн ордеров ERC-7683 и генерируют события Open для сеттлмента через Uniswap Tribunal. Поддерживаются безгазовые открытия ордеров (gas-less) при помощи подписей спонсоров или депозитных потоков.
Также разработаны два минимальных серверных аллокатора для лучшего понимания работы гибридных вариантов:
- Smallocator - предоставляет API для спонсоров, чтобы запрашивать блокировки ресурсов в нескольких блокчейнах с поддержкой аутентификации по EIP-4361 (Sign-In With Ethereum). Включает фронтенд для прямого взаимодействия с сервером и внесения депозитов в управляемые им блокировки. Аллокации спонсоров не публикуются ончейн, что повышает приватность конечных пользователей.
- Autocator - форк Smallocator, использующий подписи спонсоров или ончейн-регистрации вместо сессионной аутентификации и не предоставляющий те же гарантии приватности. Балансы выделенных токенов и рекомендуемые nonce для каждого спонсора публичны. Основное применение — сценарий deposit and register, где информация о входных токенах уже публична. Поддерживаются повторные попытки (retry) и досрочные выводы (early withdrawals).
Tribunal (Трибунал)
Tribunal - это эталонная реализация движка расчётов (settlement engine), демонстрирующая паттерн обработки исполнений (fills) против PGA-цепей (priority-gas-auction) с использованием ресурсных блокировок The Compact.
- Филлер вызывает fill и прикладывает необходимое нативное значение для оплаты кросс-чейн сообщений.
- Tribunal проверяет срок действия (expiry), идентификаторы цепей, условия валидности, вычисляет хэши и суммы, после чего выполняет расчёт:
- Переводит исполненные токены получателю.
- Для той же цепи: делает claim токенов через The Compact и вызывает обратный вызов арбитра или получателя.
- Для кроссчейн: эмитит (от слова - генерировать, испускать, “выпускать” событие )или обрабатывает директивы, которые инструктируют удалённых арбитров забрать claim (требование активов).
Единый путь расчёта исключает споры и гарантирует справедливость при множественных филлерах.
Внешние мосты могут расширять Tribunal, переопределяя внутренние функции для внедрения логики передачи сообщений арбитру в целевой цепи или проверки обновления состояния для последующего pull (реквеста).
Сам The Compact остаётся нейтральным к механизмам кросс-чейн расчётов. Команды могут разрабатывать собственные движки с иными моделями доверия, механизмами аукционов или способами обмена сообщениями. Tribunal лишь предоставляет рабочий пример, который можно изучить, форкнуть или заменить. При этом Tribunal никогда не берёт на хранение активы.
Emissary (Эмиссар)
Ключи подписи со временем меняются, а спонсоры смарт-контрактов часто не могут предоставить однозначные подписи. Протокол Uniswap Emissary обобщает управление ключами, добавляет поддержку M-of-N мультисигов, настраиваемых таймлоков и верификацию подписей с учётом протоколов.
- Регистрация ключей Secp256k1, P256 и WebAuthn и планирование их удаления с настраиваемыми периодами сброса.
- M-of-N мультисиги с гибкими порогами, хранением битмапов и защитой таймлоками.
- Поддержка проверки подписей в разных протоколах и фильтрации совместимых ключей.
- Адаптер KeyManagerEmissary, интегрированный с The Compact, для валидации ключей по тегам блокировок.
Это позволяет спонсорам делегировать авторизацию claim аппаратным кошелькам, MPC-системам или другим менеджерам ключей без ущерба для безопасности. Также это гарантирует, что опубликованные подписи не могут быть впоследствии “переписаны”.
Стройте вместе с The Compact
The Compact уже развёрнут по адресу 0x00000000000000171ede64904551eeDF3C6C9788 в Ethereum mainnet, Unichain, Base и Arbitrum, с планами дальнейших деплоев в другие сети. (Деплой — процесс развертывания смарт-контракта на/в блокчейне).
The Compact — это ownerless публичный продукт и открытый стандарт кроссчейн инфраструктуры.
Несколько команд уже строят решения на его основе, а другие экспериментируют с новыми аллокаторами и арбитрами.
Мы приглашаем весь Ethereum-экосистему исследовать этот общий примитив и создавать приложения, использующие Resource Locks в неожиданных формах.
Чтобы начать разработку на The Compact, см. репозиторий GitHub и документацию для разработчиков.
The Compact — это ownerless контракт, что означает: любой может деплоить его в любую новую сеть. Инструкции по деплою доступны в репозитории.