Как безнадежно, безопасно и недорого перевести средства между Sidechain и StarkEx
TL;DR
- Перевод средств между сайдчейнами и L2 является растущей потребностью
- Текущие способы: через L1 (Ethereum) — медленно, дорого, но ненадежно; или через приложение (или LP) — требует доверия, но быстро и недорого
- Мы предлагаем не требующий доверия, безопасный и недорогой мост между сайдчейном и StarkEx, который опирается на безопасность Ethereum.
- Расширяя такой мост между StarkEx и несколькими сайдчейнами, мы создаем эффективный мост, соединяющий эти сайдчейны.
Введение
В то время как Ethereum остается «капитальным» блокчейном DeFi с высокой тягой и безопасностью, а также мостами к нескольким цепочкам, он становится все более перегруженным и страдает от высоких и нестабильных затрат на передачу. Это приводит пользователей к другим платформам, таким как сайдчейны (например, Polygon, BSC, Solana) и L2 (OR или ZK-Rollups). Эти платформы различаются по стоимости, безопасности, производительности и доступным приложениям, что способствует фрагментации.
Следовательно, все больше и больше пользователей должны переводить средства между несколькими платформами.
Решения, предлагающие ненадежные мосты между сайдчейнами, появляются в сети (например, Hop или MovR ). Тем не менее, ненадежная совместимость между L2 (в частности, накопительными пакетами) и сайдчейнами еще не решена.
Совместимость с Optimistic Rollups проблематична из-за дизайна, так как длительное время завершения приводит к высоким требованиям к капиталу для эксплуатации моста, что приводит к дорогостоящим переводам.
А как насчет ZK-роллапов? Депозиты и снятие средств без доверия через L1 и ZK-Rollups уже доступны в реальных системах (например, dYdX, DeversiFi, Loopring). И они обеспечивают короткое время завершения через условные переводы .
Но ZK-Rollups в настоящее время несовместимы с функциональной совместимостью сайдчейна. Причина этого техническая: ZK-Rollups, развернутые в настоящее время на L1, доказывают правильность конкретных вычислительных утверждений (даже если инструменты, стоящие за ними, такие как язык Cairo, поддерживают полноту по Тьюрингу). Это делает их несовместимыми со схемами, которые требуют «умного контракта функциональной совместимости» в накопительном пакете.
StarkNet, наш децентрализованный ZK-накопитель без разрешений, изменит это. Но что можно сделать с помощью StarkEx, нашего надежного механизма масштабирования, здесь и сейчас? Ниже мы демонстрируем, как StarkEx может поддерживать совместимость с сайдчейнами.
StarkEx работает в основной сети с июня 2020 года, обеспечив миллионы транзакций на общую сумму миллиарды долларов. Мы представим систему и схемы StarkEx, чтобы продемонстрировать, как поддерживать недорогой и быстрый перевод средств в сайдчейны и обратно, прокладывая путь к лучшей совместимости между dApps, работающими на ZK-Rollups, и сайдчейнами. Но сначала давайте рассмотрим, что определяет хорошую систему взаимодействия.
Качества хорошего решения для взаимодействия
Хорошее решение для взаимодействия между сайдчейнами и L2 должно обеспечивать минимальное доверие и обеспечивать оптимизированный пользовательский интерфейс.
Точнее:
- Минимальное доверие: пользователи должны доверять как можно меньшему количеству сущностей.
- Быстрое завершение: средства должны быть доступны быстро.
- Низкая стоимость: недорогие решения должны обеспечивать низкие цены на транзакции на соответствующих платформах и высокую эффективность использования капитала в мосте (поскольку расходы, которые несет поставщик ликвидности, будут компенсированы пользователю).
L2 — Взаимодействие Sidechain
До сих пор пользователям, которые хотели перемещать средства между сайдчейном и L2, приходилось выбирать между двумя наивными вариантами: ненадежный, но дорогой и медленный вариант (рис. 1) или недорогой и быстрый, но требующий доверия метод (рис. 2).
Рисунок 1: Облегченный L1 перенос между боковой цепью и L2
Рисунок 2: Передача данных между сайдчейном и L2 через приложение
Решение на базе StarkEx
Мы демонстрируем (Рисунок 3) предлагаемое нами решение, в котором StarkEx облегчает взаимодействие между L2 и боковой цепью, удовлетворяя при этом трем качествам эффективного решения взаимодействия. Обратите внимание, что это также относится к взаимодействию между сайдчейнами с использованием StarkEx в качестве канала.
Рисунок 3: Мост сайдчейнов на базе StarkEx, защищенный Ethereum.
Преимущества StarkEx
Для тех, кто не знаком со StarkEx, мы представляем его основные концепции. Вы можете найти полную документацию StarkEx здесь . Но, чтобы следовать схемам, достаточно следующего фона:
StarkEx не доверяет
Поскольку StarkEx полагается на доказательства STARK, никакое обновление состояния не может произойти на L1 без доказательства того, что это состояние действительно допустимо. Это означает, что средства могут переходить из рук в руки внутри StarkEx только в соответствии с логикой, реализованной в Cairo, которая обеспечивает следующее:
- Средства не могут быть переведены от пользователя без его действительной подписи на соответствующем запросе на перевод.
- Зафиксированное состояние StarkEx на L1 отражает все передачи, которые происходят в среде L2.
- StarkEx не может выполнить один и тот же перевод дважды
В результате Оператор (например, биржа) не может украсть средства пользователя. Принудительные транзакции, аварийные люки и специальный механизм обновления дополняют картину, делая StarkEx полностью автономным .
StarkEx быстрый
Оператор может считать транзакцию завершенной, как только она попадает в очередь транзакций StarkEx. Это означает, что пользователи могут мгновенно отправлять последующие транзакции; нет необходимости ждать фактического расчета транзакции в сети!
StarkEx недорогой
На StarkEx даже сложные бессрочные торговые транзакции стоят всего 1100 газа в режиме ZK-Rollup, что в 200 раз дешевле, чем реализация той же логики L1. Затраты еще меньше в режиме Validium. Кроме того, StarkEx эффективно использует капитал, завершая транзакции, как только доказательство, содержащее их исполнение, публикуется в сети, что обычно происходит всего через несколько часов после транзакции.
Вывод со StarkEx на Sidechain
Рисунок 4: Совместимость StarkEx и сайдчейна — выход
Шаг 1: Пользователь отправляет в приложение запрос вне сети, указав сумму и тип актива, который он хочет вывести. Приложение проверяет, достаточно ли у пользователя средств в хранилище StarkEx.
Шаг 2: Приложение блокирует указанное значение и тип актива в контракте на совместимость, найденном в сайдчейне. Приложение связывает эти средства с (неподписанным) запросом на перевод StarkEx, который приказывает StarkEx перевести соответствующие активы из Хранилища пользователя в Хранилище Приложения.
Шаг 3: Пользователь подписывает запрос на передачу, указанный на шаге 2 на рис. 4, активируя договор о взаимодействии в сайдчейне. Эта транзакция немедленно разблокирует средства пользователя для использования в сайдчейне.
Резервный поток: если пользователь не подпишется в течение ограниченного периода времени, приложение вернет деньги из контракта на совместимость.
Шаг 4: Теперь приложение может выполнить запрос на перевод на StarkEx и получить там средства пользователя.
Соответствие требованиям
- Эта схема не требует доверия : пользователь получает средства на сайдчейне до того, как отдаст средства Оператору на StarkEx (а последнее не может произойти без первого):
- StarkEx требует, чтобы для получения средств от пользователя приложение должно было знать его подпись.
- Предоставление подписи разблокирует средства пользователя в сайдчейне.
2. Это быстро; средства становятся доступными для пользователя по истечении удвоенного времени завершения сайдчейна.
3. Недорого ; не включает транзакции L1, и приложение может сразу получить доступ к средствам на StarkEx, а через несколько часов — на L1.
Депозит с Sidechain на StarkEx
Рисунок 5: Совместимость StarkEx и сайдчейна — депозит
Шаг 1: Пользователь блокирует свои средства на сайдчейн-аккаунте в контракте на совместимость. Эти средства связаны с определенными параметрами запроса на перевод на StarkEx, который будет переводить деньги в хранилище пользователя.
Шаг 2: Оператор выполняет запрос на перевод, показанный на рис. 5, шаг 1, в StarkEx, переводя средства в хранилище StarkEx пользователя. Пользователь может начать торговать этими средствами немедленно.
Шаг 3: Перевод с шага 2 объединяется с другими транзакциями (рис. 5, шаг 3.1). StarkEx доказывает L1, что эти транзакции произошли (шаг 3.2), и состояние сети обновляется соответствующим образом (шаг 3.3).
Шаг 4: Специализированный контракт на Ethereum передает новое состояние L1 в контракт интероперабельности в сайдчейне. Это состояние, то есть корень Merkle всех транзакций на StarkEx, подтверждает, что пользователь получил средства на StarkEx в соответствии с запросом.
Шаг 5: Приложение открывает обязательство Merkle Tree, чтобы доказать сайдчейну, что пользователь действительно получил средства на StarkEx на шаге 2 на рис. 5, разблокируя средства в контракте на взаимодействие для приложения.
Резервный поток: если приложению не удается выполнить шаг 5 на рис. 5 в течение ограниченного периода времени, пользователь может вернуть средства в боковой цепи из контракта на совместимость.
Соответствие требованиям
- Эта схема не требует доверия : пользователь получает средства на StarkEx до того, как приложение сможет запросить средства в сайдчейне. Логика и доказательства StarkEx убеждают в том, что второе невозможно без первого:
- Для получения средств на сайдчейне Оператор должен показать запись соответствующего перевода пользователю через StarkEx.
- StarkEx следит за тем, чтобы такую запись можно было найти только в том случае, если пользователь получил средства.
- Это быстро : как только транзакция будет подтверждена в сайдчейне, приложение может немедленно предоставить пользователю средства на StarEx.
- Это недорого : транзакции в сайдчейне или StarkEx недороги, а большая стоимость транзакции L1 на шаге 4 распределяется между многими запросами на депозит.
Кроме того, приложение может получить свои средства через сайдчейн через несколько часов.
Что дальше?
Клиенты StarkEx скоро смогут насладиться схемами функциональной совместимости без доверия, представленными выше.
Что касается StarkNet, наш не требующий разрешения децентрализованный ZK-накопитель: StarkNet Planets Alpha 1 уже работает на Ropsten, и мы планируем поддерживать совместимость с другими экосистемами, такими как сайдчейны. Поскольку StarkNet доказывает любую произвольную логику, он может поддерживать механизмы, аналогичные описанным здесь, или развертывать существующие решения для взаимодействия.
Так или иначе, StarkNet обеспечивает высокую степень совместимости и станет центральным ульем взаимодействия для многих приложений DeFi, которые ищут способы выйти за пределы Ethereum.