across: бридж между сетями и протокол намерений
Изначально не хотел о нём писать, т. к. мостов уже обозревал достаточно, да и люблю больше агрегаторы.
Но последнее время стал видеть информацию о том, что across создают сеть намерений с решателями, которые будут их выполнять. Это очень актуальная сфера, поэтому решил написать обзор.
Напомню, что намерения - это когда вы можете дать задание обменять, допустим, Polygon USDC на ETH в Arbitrum и застейкать в Karak. Решатель, используя свою ликвидность в ETH или обменивая один актив на другой, выполняет задачу, а затем получает ваши токены.
Оглавление
Аудит
Команда
На сайте информации нет, но нашёл в Cryptorank:
Естественно сразу даю ссылки LinkedIn, так как более плодотворно их рассматривать, чем X.
У него 2319 отслеживающих. Последний пост - это он поделился другим контентом месяц назад.
Сам же писал последний раз 6 лет назад.
- Директор в Risk Labs Foundation с марта 2018
- Co-Founder в Across Protocol с декабря 2021
- Co-Founder в UMA с сентября 2018
- Venture Partner в Robot Ventures с сентября 2022
- Залогодатель в Founders Pledge с 2018
- CEO и Founder в Openfolio с декабря 2013 по ноябрь 2017
- Interest Rate Trading в Goldman Sachs с июня 2005 по февраль 2013
- И другой (всего 10)
- Columbia University: Bachelor of Science (B.Sc.), Computer Science с 2001 по 2005
- Upper Canada College: High School в 2001
Есть в Cryptorank, но в LinkedIn компания не упоминается... Allison Lu:
2464 отслеживающих, постов нет.
- Залогодатель в Founders Pledge с сентября 2018
- Co-Founder в UMA с марта по сентябрь 2020
- Advisor в One Daijo Ltd. с сентября 2017 по май 2018
- VP of Credit & Risk Analytics в Tala с августа 2015 по февраль 2018
- вице-президент в Goldman Sachs с июля 2009 по июнь 2015
- И другие (всего 6)
В целом, компания нигде не упоминается в профиле... Почему его добавили в список на Cryptorank непонятно, но возможно он там есть (просто не указал в LinkedIn).
- Massachusetts Institute of Technology: B.Sc., Economics, Management (Finance)
- SEO (Sponsors for Educational Opportunity): 2007 год
- Trading - Подтверждения навыков от 4 коллег по компании Goldman Sachs, 8 подтверждений
- Options - 3 подтверждения
- Portfolio Management - Подтверждения навыков от 4 коллег по компании Goldman Sachs, 6 подтверждений
- Valuation - 7 подтверждений
- Stata - 1 подтверждение
- Investment Banking - 2 подтверждения
- И другие (всего 22)
352 отслеживающих. Публикаций нет.
- Risk Labs Foundation: Tech Lead с сентября 2018 по январь 2021, CTO с января 2021
- CTO в Across Protocol с декабря 2021
- В UMA: Tech Lead с сентября 2018 по январь 2021, CTO с января 2021
- Software Engineer в Google с мая 2017 по сентябрь 2018
- Principal Engineer в One Daijo Ltd. с июля 2017 по май 2018
- Партнёр в Domeyard LP с июня 2015 по апрель 2017
- Аспирант-исследователь в Georgia Institute of Technology с января 2014 по май 2015
- Software Engineering Intern в NCR Corporation с января 2012 по январь 2014
- Georgia Institute of Technology: Master's Degree, Electrical Engineering с 2014 по 2015
- Georgia Institute of Technology: Bachelor's Degree, Electrical Engineering с 2010 по 2013
- Matlab - Подтверждения навыков от 3 коллег по компании Georgia Institute of Technology, 9 подтверждений
- C - Подтверждения навыков от 3 коллег по компании Georgia Institute of Technology, 8 подтверждений
- Programming - Подтверждения навыков от 3 коллег по компании Georgia Institute of Technology, 9 подтверждений
- Algorithms - 6 подтверждений
- Computer Science - 7 подтверждений
- Circuit Design, Android, Labview - 4 подтверждения
- И другие (всего 31).
1228 отслеживающих. Публикаций нет.
- Главный операционный директор в Across Protocol с мая 2022
- На той же должности в Risk Labs Foundation с ноября 2022
- В UMA: Начальник Штаба с ноября 2020 по май 2022, Главный операционный директор с мая 2022
- В Left: Менеджер по работе с персоналом с января 2016 по январь 2017, Менеджер по корпоративному развитию с января 2017 по июль 2018, Директор по корпоративной стратегии с июля 2018 по ноябрь 2020
- Директор по корпоративной стратегии в RightMesh AG с июля 2017 по ноябрь 2020
- И другое (всего 10)
- Simon Fraser University: Bachelor of Business Administration (BBA), Beedie School of Business
- The School of Economics and Management, Lund University: Bachelor of Business Administration (BBA), Human Resources Management/Personnel Administration, General
- Training - 6 подтверждений
- Leadership - Подтверждения навыков от 3 коллег по компании Left, 21 подтверждение
- И другие без подтверждений: Corporate governance, Strategic Leadership, corporate social responsibility, Strategic Thinking, Community Engagement, data management, data privacy officing
753 отслеживающих. Последняя публикация на момент написания статьи 16 часов назад. Она получила 3 реакции
Предыдущая публикация была день назад. Она получила 2 реакции и 1 комментарий.
В ноябре 2022 года было 13 сотрудников, сейчас - 16.
Все 16, но ни одного со ссылками. Так что хорошо, что я зашёл в Cryptorank...
Есть также список участников команды на сайте Risk labs (узнал в Дискорде):
Эта компания занимается Across и UMA.
Есть новые лица, но с LinkedIn только один - его и рассмотрим.
637 отслеживающих. Публикаций нет.
- Investment Committee Member в Golden Pear с апреля 2022
- Казначей в UMA с июля 2020
- Инвестор в Self-employed с августа 2016
- управляющий директор в Goldman Sachs с июля 2001 по август 2016
- управляющий фондом в UBC Portfolio Management Foundation с января 1999 по май 2001
Учился в The University of British Columbia: Bachelor's degree, Finance, General с 1997 по 2001.
Как видите, Across не упоминается. Но возможно они работают над обоими проектами: не знаю...
Соцсети проекта
Есть новые сообщения в основном чате. Ответили мне быстро и корректно. На другие вопросы тоже отвечают.
В анонсах последнее сообщение 19 ноября (можно сказать, что недавно):
В чате разработчиков на вопросы почему-то не отвечают, последнее сообщение 20 ноября, а до этого были сообщения не по теме чата. Активных обсуждений того же функционала намерений нет:
Здесь (в фидбеке) сообщения нечастые, но на вопросы отвечают:
Русский чат неактивен (последнее сообщение 14 октября):
116,1 тысяч подписчиков. 4929 постов.
Последний пост 3 часа назад. Получил 2 ответа, 1 репост и 18 лайков, 1824 просмотров.
Предыдущий тоже 3 часа назад с 1 ответом и 1 лайком.
Наиболее активный в плане реакций из последних - пост от 25 октября с 19 ответами, сотней репостов и 353 лайками.
В общем, активность есть, хоть в основном небольшая.
В ассоциированных аккаунтах только @EthAsp0rts.
Боты с обновлением от 5 сентября 2024 оцениваются на уровне 1 (отлично), т. е. ботов нет или мало!
Score 1139, уровень 4 (Существенный).
Проекты: XCOPY, Uniswap Labs, MoonPay, Synthetix, Punk 4762, Kyber Network, Boba Network, Lucky Trader, Layer3 и другие...
Венчурный капитал: loomdart - Holy War Arc, eGirl Capital 仙女資本, Chris Burniske, ARK Invest, EllioTrades, Neo и другие...
Последняя статья аж 27 августа.
Видимо посчитали бесперспективным там писать.
Тем более есть блог, где последняя статья 13 ноября:
Есть и форум, как понимаю, для ДАО обсуждений:
Последняя активность 21 ноября в ветке первой в списке.
В теме пропозала активность 1 день назад, что круто!
Итог по команде
Оценка 4 из 5: соцсети активные (за исключением Medium), команда есть, пусть и не на сайте Across, а у них в компании и в Cryptorank, но найти можно.
Минус балл за то, что команду всё же придётся поискать.
Концепт
- Мост: соединение сетей важно для того, чтоб можно было передавать ликвидность
- С появлением большого количества L-2 удобство для пользователей снизилось, т. к. надо переключаться между большим числом сетей. Намерения решают эту проблему.
- Сеть намерений нужна, чтоб объединять решателей и повышать эффективность их работы. В частности, в одной статье читал, что Across позволяет решателям использовать ликвидность проекта для ускорения исполнения.
- Рынок у намерений есть. Многие пользователи используют UniswapX или 1Inch Fusion. Я не знаю, каковы там объёмы, но думаю уже миллиард долларов есть...
Оценка 4 из 5: идея интересная, но важно им не зацикливаться на кроссчейн передачах и обменах, а идти в другие сферы кроссчейн взаимодействий через намерения.
Коин
Из Cryptorank видим, что инвестиции 10 МЛН $ с оценкой 200 МЛН $:
Вложились Blockchain Capital, Hack VC, Placeholder Ventures.
Также видно, что токен находится на 342 месте в топе и добавлен в 468 вачлистов.
Стоит же 0.38 $ (1.78%).
По данным из моего бота токен проекта обладает следующими параметрами и изменениями:
- Максимум: $ 0.47 (-20.50%);
- Минимум: $ 0.034 (1005.14%);
- Капитализация: $ 166'277'490;
- FDV: $ 380'318'088;
- Циркулирующее Предложение: 437'206'368.36;
- Не разблокировано токенов: 56%;
- Изменения цен:
1 час: -0.186 %,
24 часа: 1.468 %,
7 дней: 8.837 %,
14 дней: -2.881 %,
1 месяц: 28.198 %,
1 год: 361.551 %;
За год рост хороший, но в целом изменения небольшие.
Но ещё много токенов в локе...
Нашёл Across в Coinmarketcal:
Будет разблокировано 215 МЛН токенов 28 июня 2025.
В DefiLlama unlocks же пишут иную информацию:
Через 219 дней будет разблокировано 10% от всех токенов, т. е. 100 МЛН.
В документации есть информация по токену:
$ACX — это токен стандарта ERC-20, который обеспечивает децентрализованное владение и управление протоколом. С помощью $ACX регулируются как функциональные аспекты работы протокола, так и управление казной DAO.
- Управление токеном было активировано с момента запуска (ноябрь 2022 года).
- Жизненный цикл предложений включает этапы: идея, обсуждение, создание предложения, сбор отзывов, голосование и выполнение.
- Для управления используются платформы Forum и Snapshot, а также инструмент oSnap для выполнения ончейн-транзакций на основе решений офчейн-голосований.
oSnap функционирует с использованием Snapshot и Safe, что позволяет децентрализованно исполнять результаты голосования DAO без участия привилегированных подписантов.
Дополнительную информацию об использовании oSnap в Across Protocol можно найти в статье.
Адреса токенов доступны здесь.
- Сообщество: 20M $ACX
- Ранние пользователи моста (совершали переходы до 19 июля 2022, 00:00 UTC): 15M $ACX
- Поставщики ликвидности (предоставляли ликвидность до 27 ноября 2022, 00:00 UTC): 70M $ACX
- Программа Bridge Traveler (с 11 октября по 8 ноября 2022): 10M $ACX
250M $ACX для стратегических партнерств и привлечения средств
- Обмен токенов с Risk Labs: 150M $ACX
Обмен 150M $ACX на 2M $UMA из казны Risk Labs с двумя целями:
1. Предоставление сообществу Across владения и управления UMA, что важно для безопасности моста.
2. Укрепление связей Risk Labs с Across через владение токенами. - Привлечение средств: 100M $ACX
Передача 100M $ACX в казну Risk Labs для привлечения инвестиций и обеспечения займов от ключевых игроков в DeFi. Эти партнёрства ускорят рост проекта.
100M $ACX для наград протокола
- Реферальная программа: 25M $ACX
Продолжительность программы зависит от цены и объёма транзакций с $ACX. - Программа блокировки наград для LP: 75M $ACX
Награды распределяются следующим образом (изменения возможны):
~50,000 $ACX в день для LP Across ETH
~50,000 $ACX в день для LP Across USDC
~5,000 $ACX в день для LP Across DAI
~5,000 $ACX в день для LP Across WBTC
~20,000 $ACX в день для LP Across ACX
535M $ACX в резерве казначейства Across DAO
Комитет AEC (Across Emissions Committee) управляет эмиссиями $ACX для стимулирования ликвидности моста, обеспечивая прозрачность и эффективность. Он управляет контрактом Accelerating Distributor через мультиподпись 3 из 5, регулируя параметры программы наград Across Reward Locking.
Принципы корректировки эмиссий
AEC регулирует эмиссии на основе:
- Загрузки пулов Across:
Вознаграждение LP зависит от спроса на актив для кроссчейн-переводов. AEC отслеживает среднюю загрузку за 7 дней. - Конкурентной доходности:
Индекс доходности рассчитывается на основе средних показателей пулов Stargate, Hop и Synapse за 7 дней.
Изменения ограничены 25% за раз с обязательным интервалом в 14 дней.
Также на странице вы найдёте таблицу, где расписано подробнее про корректировки.
AEC выделяет не более 400M $ACX (40% от общего объема) на стимулы для LP, с расчетом на использование до конца 2028 года.
- Журнал изменений: История корректировок эмиссий.
- Панель мониторинга: Метрики для принятия решений.
Итог по коину
Оценка 4 из 5: в локе (ДАО) ещё существенная часть токенов.
Код
Есть репозитории:
Основной код проекта: смарт-контракты.
Обновление последнее (коммит) 12 минут назад:
Были и 22, и 21, и 20 ноября, и пр...
Фронтенд проекта второй версии.
21, 18 ноября и т. д.
Тоже более-менее активная разработка.
Хранилище для общей логики и полезных утилит.
Как понимаю, инструменты для разработчиков, взаимодействующих с Across.
Последний коммит 9 часов назад:
22, 21, 20, 19 ноября и т. д...
Это код ПО для релееов, что помогают с передачей данных между сетями и, как я понял, являются решателями намерений.
Последний коммит 8 часов назад:
22, 21, 20, 16 ноября и ранее...
Последний коммит 14 часов назад:
22, 21, 20, 19, 16 ноября и ранее...
Инструменты для разработчиков.
Как понимаю, SDK для тех, кто хочет погружаться в суть Across, а этот код даёт возможность просто выполнять кроссчейн транзакции и всё...
Последний коммит две недели назад:
5 ноября, 30, 29 октября и ранее...
API-сервис для обработки различных данных.
Последний коммит 6 месяцев назад:
Интересно, что по данным DefiLlama, активность разработчиков отличная:
- Weekly commits: 147
- Monthly commits: 635
- Weekly developers: 18
- Monthly developers: 19,
Last commit:9 hours ago (2024-11-22)
Правда данные не совсем точные, т. к. был и коммит 8 часов назад, но в целом статистика впечатляющая...
Баг-баунти и аудиты
- Уязвимость должна быть неизвестной команде Across и ранее не должна была быть публично раскрыта.
- Программа охватывает все смарт-контракты Across, а также взаимодействия (боты, фронтенд-код).
- Размер вознаграждения зависит от серьезности уязвимости:
Можно получить следующие награды в зависимости от серьёзности:
Серьезность оценивается по модели OWASP с учетом влияния и вероятности.
Для подачи отчетов пишите на [email protected].
- Описание: Краткое описание проблемы с ссылками на проблемный код.
- Атака: Подробные инструкции по эксплуатации уязвимости.
- Решение: Рекомендации по устранению проблемы.
- Оценка риска: Предлагаемая степень серьезности проблемы.
Для программы действуют те же условия, что и для программы вознаграждений UMA.
Молодцы, что учли и критические уязвимости, и дают достаточно хорошие за них награды.
Список ссылок. Я их уже изучать не буду, но здорово, что аудиты есть.
Итог по коду
Оценка 5 из 5: разработка активная, открытая. Аудиты и баг-баунти есть.
Документация
Она есть: https://docs.across.to/
Across — первый протокол на продакшене, реализующий концепцию кроссчейн-намерений, предлагающий самый быстрый и дешевый способ передачи ценностей без компромиссов в безопасности.
Встраивание мгновенного моста в ваше приложение
- Легкая интеграция через REST API для мгновенной и недорогой кроссчейн-передачи ценностей.
- Пользователи могут добавлять активы, не покидая приложение.
Встраивание кроссчейн-действий
Абстрагируйте процесс бриджинга, позволяя пользователям взаимодействовать с вашим приложением с любой сети.
Across Settlement — модульный слой для кроссчейн-намерений, поддерживающий токен-свопы, аукционы запросов котировок и другие кастомные кейсы.
- Присоединяйтесь к сети независимых релейеров (солверов, филлеров, маркетмейкеров), обслуживающих потоки намерений в Across.
- Возможность заработать до 100% APY.
Есть вопросы? Свяжитесь с командой!
Across — это протокол кроссчейн-совместимости, основанный на намерениях. Это единственный протокол кроссчейн-намерений, работающий в продакшене, который предлагает самый быстрый и недорогой способ передачи ценностей без компромиссов по безопасности. Перед тем как углубиться в технические детали, важно понять, почему существующие решения для кроссчейн-совместимости недостаточны и как архитектура Across на основе намерений решает эти проблемы.
Появление роллапов и L2 масштабировало Ethereum, но ухудшило пользовательский опыт, за исключением цен. Разработчики, создающие приложения на L2, вынуждены выбирать, на каком изолированном чейне им работать. Пользователи должны стать экспертами в инструментах кроссчейн-совместимости, чтобы использовать децентрализованные приложения. Этот процесс усложняется с ростом числа роллапов и аппчейнов.
Across утверждает, что парадигма на основе намерений — это решение для вызовов, с которыми сталкиваются разработчики и пользователи.
Ключевой вызов кроссчейн-совместимости заключается в передаче активов из одного чейна в другой. Интуитивно кажется, что это можно сделать, «отправив сообщение». Однако на практике отправка сообщений дешево, быстро и безопасно одновременно практически невозможна.
Каждый протокол передачи сообщений имеет уникальные доверительные предположения, ограничивается скоростью финализации подключаемых чейнов и отличается высокой сложностью реализации.
А что, если можно пойти другим путем?
Кроссчейн-совместимость через намерения
Намерения добавляют третью сторону — релайера (иногда называемого исполнителем или решателем), который берет на себя задачу быстрой передачи активов или выполнения действий.
Намерение — это тип заявки, где пользователь указывает результат, а не путь исполнения. На практике это может быть кроссчейн-лимитная заявка с заданным действием, закодированная в стандартизированной структуре. Релайеры конкурируют за выполнение таких заявок, предлагая скорость и низкую стоимость.
С точки зрения пользователя проблема кроссчейн-совместимости решена — они получают желаемый результат.
Архитектура намерений позволяет выполнять пользовательские заявки быстро, но как оплачиваются услуги релайеров? Средства пользователя помещаются в депозитарный протокол, и релайеры получают их только после того, как протокол подтверждает выполнение намерения.
Такой подход разделяет срочную часть (выполнение заявок) и сложную часть (верификацию сообщений). Хотя релайеры вынуждены предоставлять временные кредиты, преимущества медленной верификации значительно перевешивают эти затраты.
Будущее кроссчейн-совместимости — за намерениями
- Передача сообщений почти неосуществима дёшево, быстро и безопасно.
- Решения на основе намерений позволяют релайерам мгновенно выполнять заявки пользователей.
- Медленная верификация делает расчеты более дешёвыми и безопасными.
Архитектура намерений Across состоит из трёх уровней:
- Механизм запроса котировок: Пользователи указывают желаемый результат без необходимости задавать технические шаги для его достижения.
- Сеть конкурирующих релайеров: Децентрализованная сеть сторон конкурирует за выполнение заявок.
- Уровень расчетов: Средства пользователей депонируются, верифицируются, а затем выплачиваются релайерам при успешном выполнении намерения.
Эта архитектура лежит в основе продуктов Across:
- Приложение Across Bridge: Быстрое и недорогое кроссчейн-приложение для пользователей.
- Across Bridge для разработчиков: REST API для интеграции быстрых и дешевых переводов в приложения.
- Расчет Across: Единственный продакшен-слой для расчетов, который позволяет настраивать процессы, такие как кроссчейн-обмены токенами.
Across прокладывает путь к будущему кроссчейн-совместимости через намерения.
Для упрощенной интеграции Across в dApp рекомендуется использовать App SDK.
Как работает ETH / WETH при трансферах?
Поведение зависит от входного актива и типа получателя:
- Входной актив ETH:
Если получатель — EOA (обычный кошелек), он получит ETH.
Если получатель — контракт, он получит WETH. - Входной актив WETH:
Если получатель — EOA, он получит ETH.
Если получатель — контракт, он получит WETH.
Как внести депозит в ETH, а не в WETH?
- Для депозита ETH (или нативного токена сети): установите msg.value = inputAmount.
- Для депозита WETH: установите msg.value = 0.
- В обоих случаях inputAmount должно соответствовать значению депозита, а inputToken должен указывать на WETH-адрес для текущей сети.
Есть инструкции по миграции, но мы их пропустим, т. к. новым пользователям / разработчикам не нужны.
Варианты использования
Instant Bridging в вашем приложении:
Обеспечьте пользователям вашего приложения быстрый, надежный и недорогой кроссчейн-мост, позволяющий легко совершать депозиты без необходимости покидать интерфейс. Это решение помогает улучшить конверсию и снизить отток пользователей, особенно если мост используется для разовых или редких переводов средств, после которых пользователи совершают повторные действия в приложении.
Для реализации моста через API Across выполните два простых шага:
- Запрос котировок: используйте GET /suggested-fees API для получения актуальных данных о комиссии.
- Инициация депозита: с помощью возвращенных API данных вызовите функции смарт-контрактов Across для завершения операции.
Рекомендации по созданию пользовательского интерфейса и UX
Изучите Multi Chain Bridge UI Guide или Single Chain Bridge UI Guide.
Если у вас есть вопросы или предложения, напишите в канал #developer-questions на Discord Across.
Страницы в разделе данной мы уже рассматривать не будем: ссылки даны в тексте выше. Если вам нужно создавать, изучите.
Скажу лишь, что инструкции подробные и понятные. Должно получиться.
Встроенные кроссчейн действия:
Обеспечьте пользователям вашего dApp возможность легко использовать активы с других чейнов для взаимодействия с вашим приложением или блокчейном. Это решение идеально для приложений в одной сети или тех, кто хочет предоставить пользователям возможность выполнять ключевые действия с активами, находящимися в других сетях.
Кроссчейн-действия обеспечивают максимально быструю и недорогую работу, создавая впечатление работы в одном чейне, абстрагируя мосты от конечного пользователя.
Интеграция кроссчейн-действий через API Across включает три шага:
- Создание сообщения: сформируйте набор транзакций, которые будут выполнены в целевом чейне.
- Запрос котировок: используйте GET /suggested-fees API с параметром сообщения для получения информации о комиссиях.
- Инициация депозита: вызовите функции смарт-контрактов Across с возвращенными API данными, указав сообщение для выполнения транзакций в целевой сети.
Для рекомендаций по интерфейсу и UX изучите Cross-chain Actions Integration Guide.
Есть также инструкция по интеграции кроссчейн действий в UI (интерфейс).
Рассматривать их в рамках статьи не будем, так как нужны больше разработчикам.
Будущее кроссчейн-взаимодействия — это намерения, а Across Settlement — единственный модульный слой урегулирования, готовый к продакшену.
Across Settlement используется для реализации кроссчейн-намерений, предлагая быструю, надежную и экономичную систему урегулирования. Across Bridge и Across+ используют этот слой для предоставления пользователям удобного моста и упрощения интеграции в dApp для разработчиков.
- Hub and Spoke Model (Модель Хаба и Спиц):
Это механизм, где пассивные LP предоставляют кредиты релейерам, минимизируя временные риски. Протокол использует канонические мосты для ребалансировки средств. - Optimistic Oracle от UMA:
Этот инструмент используется для проверки правильности выполненных заказов. Верификация выполняется оптимистично, что сокращает расходы на газ. - Repayment Bundle:
Система собирает заполненные заказы off-chain в единый пакет, который проверяется и оплачивается, снижая сложность ончейн-операций.
Пример приложения с Across Settlement:
- Пользователь запрашивает котировку для кроссчейн-свапа через off-chain RFQ систему.
- Релейеры (рыночные создатели) конкурируют за возможность выполнить запрос.
- Пользователь подписывает выигравшую котировку как Permit2 заказ.
- Этот заказ передается релейеру.
- Релейер отправляет транзакцию, в которой заказ размещается ончейн.
- Средства пользователя и залог релейера вносятся в Across, где создается депозит. Релейер становится единственным исполнителем.
Таким образом, Across Settlement упрощает проверку и выполнение кроссчейн-намерений, снимая сложности, связанные с безопасностью, синхронизацией и временем выполнения. Это повышает качество обслуживания как для пользователей, так и для релейеров.
На странице вы можете посмотреть пример реализации в виде тестового непроверенного кода.
Концепты (раздел в документации)
Что такое кроссчейн-намерения?:
Намерения — это тип заказа, в котором пользователь определяет желаемый результат, а не способ его выполнения. Намерения могут быть внутрисетевыми или кроссчейн, где результат требуется в другой сети, нежели исходные активы. Across фокусируется исключительно на кроссчейн-намерениях.
Развитие кроссчейн-намерений можно описать следующим образом:
- Фаза 1
Пользователь намерен переместить один и тот же актив из чейна A в чейн B.
Именно с этого начался Across, поддерживающий такие операции с 2021 года. - Фаза 2
Пользователь намерен переместить актив из чейна A в чейн B и выполнить транзакцию в чейне B.
Across предоставляет такую возможность благодаря новой функциональности, позволяющей добавлять инструкции на этапе депозита для выполнения на стороне назначения. - Фаза 3
Пользователь намерен обменять актив X в чейне A на минимальное количество актива Y в чейне B, а затем выполнить транзакцию в чейне B.
Across Settlement уже поддерживает такие заказы. Подробнее см. Intent Structure в Across.
Для увеличения распространения решений для кроссчейн-взаимодействия, основанных на намерениях, Across работает над определением стандарта для кроссчейн-намерений. Этот стандарт, основанный на принципах Фазы 3, обеспечит единый подход к обработке, конкурсным заявкам, эскроу и урегулированию пользовательских намерений. Подробнее на erc7683.org.
Архитектура намерений в Across:
Архитектура кроссчейн-намерений Across состоит из трех уровней:
- Механизм запросов на котировку (RFQ): пользователи запрашивают исполнение намерений, получая котировки от релейеров.
- Сеть релейеров: децентрализованная сеть релейеров соревнуется за право исполнить заказ.
- Слой урегулирования: обеспечивает проверку исполнения намерений, эскроу и выплату релейерам.
- Пользователь получает котировку от релейера, подписывает её без ончейн-транзакции.
- Пока RFQ поддерживает фиксированные комиссии и конкуренцию релейеров только по скорости. Обновления, включающие кроссчейн-свапы и безгазовые заказы, находятся в разработке.
- Релейер утверждает заказ и размещает его ончейн. Активы пользователя блокируются в SpokePool.
- На стороне назначения релейер вызывает функцию fillRelayV3, используя собственные активы для перевода пользователю.
- Релейер выбирает чейн для возврата средств, влияя на распределение комиссий LP.
- В течение 60 минут Dataworker агрегирует события депозитов и сопоставляет их с выполненными заказами, формируя "пакет" для верификации.
- Если в течение периода обжалования возражений не поступает, HubPool выполняет расчет, отправляя инструкции возврата в SpokePools.
- Релейеры получают выплаты после небольшой задержки.
- Across поддерживает любые механизмы аукционов, создающие транзакцию или подписанный заказ, распознаваемый SpokePool.
- Risk Labs предоставляет open source-реализацию релейера для поддержки Across и других систем намерений.
Преимущества урегулирования намерений:
- Агрегированная и оптимистичная верификация:
Заказы собираются off-chain и проверяются UMA's Optimistic Oracle. Это снижает затраты на газ с O(N) до O(1), улучшая цены для пользователей и прибыль для релейеров. - Управление кроссчейн-позициями релейеров:
Возвраты выполняются в выбранном релейером чейне, снижая сложность управления и расходы.
Hub and Spoke модель позволяет пассивным LP предоставлять кредиты релейерам, минимизируя временные риски, а протокол управляет ребалансировкой через канонические мосты.
Across Settlement предлагает универсальный слой урегулирования для любых кроссчейн-намерений, поддерживая эскроу, проверку и расчеты, что делает взаимодействие эффективным для пользователей и релейеров.
Жизненный цикл намерения в Across:
Across предоставляет структуру и процесс для выполнения кроссчейн-намерений, что делает его универсальным слоем для урегулирования и коммуникации в различных сценариях.
- Вызов depositV3:
Пользователь или смарт-контракт вызывает функцию depositV3 в SpokePool в исходном чейне. Намерение указывает сеть назначения для вывода средств. - Эскроу средств:
Средства пользователя блокируются в SpokePool до выполнения намерения. Это гарантирует безопасность, так как кроссчейн-намерения не атомарны. - Событие V3FundsDeposited:
SpokePool генерирует событие, которое отслеживают релейеры для выполнения намерений.
После инициации релейер выполняет намерение, проходя три этапа:
- Вызов fillV3Relay:
Релейер вызывает функцию на SpokePool в чейне назначения и выбирает сеть для получения средств. Размер комиссии зависит от этого выбора. - Обновление статуса:
Намерение помечается как выполненное, предотвращая повторное исполнение. - Событие FilledV3Relay:
Используется для отслеживания выполненных намерений и их урегулирования.
Примечание: У намерений может быть период эксклюзивности, в течение которого только определённый релейер может выполнить запрос.
Медленное выполнение или истечение срока
Если релейер не исполняет намерение, возможны два варианта:
- Медленное выполнение:
Across выполняет намерение без релейера, оптимистично проверяя его выполнение. Процесс занимает несколько часов и возможен, если входной и выходной токен совпадают, requestV3SlowFill вызван до истечения срока, медленное выполнение произошло до истечения или исполнения намерения. - Истечение срока:
Если исполнение не произошло, намерение истекает. После оптимистичной проверки пользователь получает возврат средств.
После выполнения намерения Across проверяет его и перечисляет средства релейеру:
- Определение блоков:
Выбирается диапазон блоков для всех чейнов, от предыдущего диапазона до текущего блока. - Проверка событий:
События исполнений и запросов сопоставляются с событиями депозитов. - Формирование выплат:
На основе валидных событий формируется список выплат для каждого чейна. - Перевод средств:
Если выплаты требуют кроссчейн перевода, они включаются в инструкцию. - Создание Merkle-деревьев:
Выплаты структурируются в деревья, корни которых публикуются в HubPool с залогом. - Период оспаривания:
Если возражений нет, HubPool отправляет корни в SpokePools через канонические мосты, а средства переводятся. - Исполнение:
Любой участник может выполнить выплаты, указанные в деревьях.
Намерение представляет собой набор полей, описывающих ожидания пользователя. Средства освобождаются только после проверки выполнения:
- recipient: адрес получателя средств.
- inputToken: токен, который предоставляет пользователь.
- inputAmount: количество входного токена.
- outputToken: токен, который хочет получить пользователь.
- outputAmount: количество выходного токена.
- destinationChainId: чейн назначения.
- fillDeadline: дедлайн для выполнения намерения.
- message: пользовательские данные для исполнения в блокчейне назначения.
- exclusiveRelayer: заранее выбранный релейер с эксклюзивным правом на исполнение.
- exclusivityDeadline: срок действия эксклюзивности.
Эта структура делает Across универсальным решением для реализации и урегулирования кроссчейн-намерений.
Каноничные активы и их преимущества:
Каноничные активы — это оригинальная, "нативная" форма токенов на их родном блокчейне. При взаимодействии между чейнами токены могут быть либо каноничными, либо представительными. Разница заключается в уровне доверия, необходимого для обеспечения безопасности активов во вторичных сетях.
Как активы перемещаются между чейнами?
Перемещение токенов между блокчейнами на самом деле не является их физическим переносом. Процесс состоит из трех этапов:
- Блокировка или сжигание токена на его родном блокчейне (чейн-источник).
- Передача сообщения с чейна-источника на чейн назначения после блокировки или сжигания.
- Выпуск нового токена в чейне назначения.
Ключевая часть процесса — верификация сообщения (шаг 2). Именно этот метод проверки отличает каноничные активы от представительных:
- Каноничные мосты: Сообщения проверяются контрактами каноничных мостов, которые минимизируют доверие, полагаясь на безопасность родного чейна.
- Сторонние мосты: Верификацию выполняют сторонние мосты с любым количеством доверительных моделей. Это повышает риски, так как ошибки в сообщениях могут привести к бесконечному выпуску токенов без обеспечения.
В идеале все активы должны быть каноничными, а все мосты — каноничными. Однако медленная скорость работы каноничных мостов (1 час — 7 дней) делает их неудобными для многих приложений.
Третьи мосты работают быстрее, но они увеличивают риски, так как выпускают представительные токены.
Решение Across: намерения и каноничные активы
Across предлагает архитектуру моста, которая объединяет лучшее из двух миров:
- Быстрое исполнение: Релейеры быстро выполняют запросы, используя собственный запас каноничных активов.
- Безопасное урегулирование: Across использует слой урегулирования на основе каноничных мостов для медленной верификации и возврата средств релейерам.
Эта модель разъединяет выполнение запросов и верификацию, позволяя избежать компромисса между скоростью и безопасностью.
Преимущества системы намерений Across:
- Устранение рисков сторонних мостов.
- Скорость и низкие комиссии, сопоставимые с представительными активами.
- Надежность и минимизация доверия каноничных активов.
Across предоставляет пользователям и разработчикам оптимальное решение для кроссчейн-взаимодействий.
Reference
API предназначен для работы без хранения состояния и является оберткой над SDK. Полную реализацию можно найти здесь.
Если интересно, изучайте эту страницу.
Это решение рекомендовали в FAQ использовать для интеграции Across в приложения.
App SDK для Across разработан и поддерживается командой Risk Labs. Написан на TypeScript и доступен на NPM по адресу @across-protocol/app-sdk.
SDK предоставляет удобные абстракции поверх смарт-контрактов и API Across. Его можно использовать для интеграции Across в ваше приложение, предлагая мгновенные переводы или позволяя пользователям взаимодействовать с вашим приложением, используя активы с любых сетей. App SDK включает утилиты для:
- получения маршрутов, информации о чейнах и токенах
- получения и выполнения котировок
- выполнения контрактных вызовов в целевой сети
- отслеживания статуса депозитов
Для установки App SDK в проект используйте npm или yarn:
npm install @across-protocol/app-sdk
yarn add @across-protocol/app-sdk
Он может быть использован как в фронтенд-приложении, так и в проекте на Node.js.
Дополнительную информацию о модулях App SDK можно найти на странице README в GitHub.
Пожалуйста, обратитесь к репозиторию контрактов Across для изучения подробной документации по ним. Большинство интеграций потребуют взаимодействия с интерфейсом SpokePool, который можно найти здесь.
Адреса смарт-контрактов указаны на страницах раздела, но мы их рассматривать не будем в рамках статьи:
Перейдите по ссылке над скрином и посмотрите их сами, если надо.
Здесь описаны интерфейсы контракта, работающего с депозитами пользователей.
Mainnet сети: Arbitrum, Base, Blast, Ethereum, Linea, Lisk, Mode, Optimism, Polygon, Redstone, Scroll, zkSync, Zora
Тестнеты: Arbitrum, Base, Blast, Ethereum, Lisk, Mode, Optimism, Polygon (Amoy)
Список может обновляться: смотрите на странице.
комиссии в системе:
Комиссии поставщиков ликвидности
Использование Across аналогично протоколам займа, таким как AAVE или Compound. При мостовом переводе токенов Across фактически предоставляет токены в целевой сети в обмен на токены в исходной сети. Комиссии поставщиков ликвидности зависят от того, в каком чейне релейер решит получить возмещение. Если возмещение происходит в исходной сети, комиссия равна нулю, так как возврат происходит напрямую из депозита. Если же релейер выбирает другую сеть, взимается комиссия согласно модели ценообразования для этого чейна.
Ценообразование на основе использования
Модель ценообразования основана на модели AAVE и зависит от использования капитала поставщиков ликвидности. В расчеты включаются следующие параметры:
- Размер транзакции
- Использование капитала до и после транзакции
- Уровень "пикового использования" (kink utilization) и соответствующие параметры процентной ставки
Процентная ставка рассчитывается на основе изменений в использовании капитала, и комиссия взимается исходя из этой ставки за неделю.
Комиссии релейеров похожи на комиссии за газ в экосистеме Ethereum. Релейер получает вознаграждение за выполнение транзакции. Процесс релеирования включает три типа затрат:
- Комиссии за газ
- Возможные упущенные возможности (капитал, не использованный для других операций)
- Риски, связанные с капиталом релейера
Комиссии как для поставщиков ликвидности, так и для релейеров определяются разницей между inputAmount и outputAmount в транзакции depositV3.
Подробности с формулами и прочим на странице.
Прочее в REFERENCE
Пользователь подает намерения в виде заказа на депозит для мостового перевода активов между L2 и L1 через Across. Пользователи оплачивают релейерам и поставщикам ликвидности за мгновенный перевод токенов между сетями.
Релейеры конкурируют за выполнение заказов пользователей, отправляя указанное количество токенов в целевую сеть с возможными данными для выполнения действий там. Релейеры предоставляют краткосрочные кредиты пользователям в обмен на комиссию. Пользователи мотивируют релейеров выполнять их заказ через разницу между суммой ввода и суммой вывода, указанной в заказе. Релейеры выбирают сеть для возмещения, которая может быть любой поддерживаемой Across. Релейеры компенсируются с учетом комиссии LP.
- Стоимость капитала: релейеры отправляют токены пользователю, а возвращаются они, когда выполненный заказ включен в пакет.
- Газовые комиссии: релейеры оплачивают газ в целевых чейнах.
- Риск программного обеспечения: ошибки в программном обеспечении релейера могут привести к неверным заполнениям.
- Риск финальности: депозит может исчезнуть, если сеть-источник изменит свою структуру.
Dataworkers поддерживают стабильность системы, возвращая средства релейерам и перемещая активы между сетями. Разрешенные Dataworkers предлагают "пакеты" для оптимистичной верификации. Они также могут быть удалены или изменены голосованием DAO. Dataworkers несут ответственность за:
- Возврат средств релейерам за правильные выполнения.
- Перевод токенов в SpokePools для выполнения медленных заполнений.
- Вывод средств из SpokePools в HubPool.
Поставщики ликвидности депонируют активы в пулы на платформе Across. Они предоставляют капитал, который позволяет релейерам выбирать сеть для возмещения, а также могут использоваться для выполнения депозитов, если релейеры не могут быстро их выполнить.
- Стоимость капитала: LP должны депонировать токены в контракт Across в основной сети.
- Ликвидный риск: если спрос высок, часть капитала LP может быть перераспределена для выполнения депозитов или ребалансировки через канонические мосты, что может ограничить вывод средств.
Эта секция объясняет, как вы можете реализовать собственную систему для отслеживания событий Across на протяжении всего их жизненного цикла. Также предоставляется публичное решение для отслеживания, с которым можно ознакомиться в разделе API.
Я не буду уже это описывать: при желании смотрите на странице.
Модель безопасности и верификация
Смарт-контракты Across и UMIP определяют основные правила протокола Across. Цена ACROSS-V2 в UMIP-157, а также расширение в UMIP-179 точно определяют ограничения и правила системы. Акторы в системе (релейер, dataworker) должны действовать в соответствии с этими правилами. Система защищена оптимистичной верификацией возмещения релейеров и инструкций по ребалансировке с использованием Optimistic Oracle от UMA, что требует лишь одного честного актора для оспаривания неверных предложений, чтобы обеспечить безопасность системы.
Для получения подробной информации о архитектуре системы, модели безопасности и верификации обращайтесь к UMIP-157 и UMIP-179.
Оспаривание корневых пакетов (Root Bundles):
О процессе: Для предложений и оспариваний в Across требуется залог. Этот залог возвращается, если предложение или оспаривание верны, и теряется, если они признаны неверными. Это защищает от попыток неверного перемещения средств, спама и других атак отказа в обслуживании. Across Bond Token (ABT) — это залог, требуемый контрактом HubPool. Это контракт, похожий на WETH, который выпускается в обмен на депонированный эфир и может быть обменян обратно на эфир в любой момент. ABT реализует специальную логику ERC20 transferFrom(), чтобы ограничить адреса, которые могут подавать предложения для корневых пакетов HubPool.
Есть возможность ручной и автоматической процедуры оспаривания. Рассмотрим только ручной вариант, т. к. автоматический связан со скриптами:
- Проверьте требуемую токен-бонду и сумму (обычно 0.45 ABT), вызвав функции bondToken() и bondAmount() на HubPool.
- При необходимости, создайте токен-залог, вызвав deposit() в контракте BondToken.
- Убедитесь, что HubPool имеет разрешение на снятие залога во время оспаривания. Увеличьте разрешение, если нужно, вызвав approve() в контракте BondToken. Адрес для одобрения: 0xc186fa914353c44b2e33ebe05f21846f1048beda.
- Вызовите disputeRootBundle() на HubPool.
Корневые пакеты дают системе Across инструкции о том, как перевести средства между смарт-контрактами в разных сетях для возврата средств релейерам и выполнения депозитов пользователей.
Видео на странице объясняет, почему корневые пакеты критичны для работы системы Across и как они валидируются. Корневые пакеты проходят оптимистичную валидацию и в конечном итоге защищаются UMA Oracle. Рекомендуется, чтобы участники голосования UMA и другие участники экосистемы UMA понимали, как система Across использует UMA oracle.
Релеер
Чтобы запустить свой собственный релеер Across V3, следуйте приведённым на странице инструкциям. Они предназначены для пользователей, комфортно работающих с командной строкой. Все необходимые коды можно найти в соответствующем GitHub репозитории.
- Node.js: Убедитесь, что у вас установлен Node.js (версия 16 или выше).
- Yarn: Yarn — рекомендуемый менеджер пакетов, но также можно использовать npm, если предпочтительнее.
- Git: Убедитесь, что Git установлен для клонирования репозитория.
- Кошелёк Ethereum: Вам понадобится кошелёк Ethereum с ETH для оплаты газовых сборов и Across Bond Token (ABT).
Эксклюзивность релеера предоставляет одному релееру ограниченное по времени право на выполнение депозита. Это право назначается при создании депозита через аргументы exclusiveRelayer и exclusivityDeadline в депозите Across и указывается в событии V3FundsDeposited. Релеер, указанный в exclusiveRelayer, имеет время до exclusivityDeadline для выполнения заполнения без риска конкуренции с другими релеерами. Если депозит не будет заполнен до exclusivityDeadline, возможность заполнения становится доступной для других релееров.
Конкуренция релееров, основанная на скорости, может привести к столкновениям и конкуренции по ценам на газ. Многие реализации релееров достигли такого уровня зрелости, что дополнительные улучшения скорости сложно получить, и они начинают вмешиваться в гарантии финальности исходной сети.
Эксклюзивность релеера позволяет сохранить скорости, которые Across предлагает пользователям, при этом снижая неопределенность и риски для релееров. Это также помогает оценить производительность релееров по скорости и доступности, а также даёт возможность для предпочтений заказов в будущем. Релееры должны:
- Соблюдать поля exclusiveRelayer и exclusivityDeadline.
- Быстро реагировать, если их адрес указан в новом депозите.
Как работает эксклюзивность релеера?
Эксклюзивность релеера назначается через API Across. Релееры могут выразить намерение стать частью пула кандидатов на эксклюзивность, отправив Pull Request в репозиторий Exclusive Relayer Configuration. Этот репозиторий используется как временная система для ускоренного внедрения эксклюзивности.
При выборе эксклюзивного релеера API Across применяет процесс выбора, который учитывает предпочтения конфигурации релеера и его баланс в целевой сети. Точная реализация и критерии выбора могут изменяться для оптимизации пользовательского опыта и минимизации внешних воздействий. Недавняя производительность релеера также может быть учтена при выборе.
Когда будет внедрена эксклюзивность релеера?
Эксклюзивность релеера внедряется поэтапно в API Across для выбранных маршрутов для тестирования системы. Производительность мониторится командой Across, и будут вноситься корректировки при необходимости. Ожидается, что сторонние интеграторы начнут использовать эксклюзивность релееров в 4 квартале 2024 года.
Последнее обновление страницы было 21-22 ноября...
Ресурсы
Дана ссылка на миграцию. Возможно есть изображение с иной информацией, но я о нём не знаю с программой экранного доступа.
Пишут, что поддерживают через связь в Discord. Также даны другие ссылки на Twitter, Medium и Github.
Баг-баунти и аудиты мы уже рассмотрели, поэтому дальше.
Запросы на добавление новых чейнов:
Для того чтобы Across рассмотрел поддержку нового чейна, должны быть выполнены следующие требования. Команда проекта намерена поддерживать как можно больше чейнов, чтобы предоставить лучший опыт мостов, LP и релейеров для пользователей. Однако каждая новая сеть требует значительных инвестиций, и эти требования установлены для того, чтобы выгода для пользователей, LP и релейеров превышала затраты на разработку, безопасность и эксплуатацию.
Эти требования могут изменяться по мере эволюции экосистемы EVM и Layer 2. Выполнение этих требований является первым шагом в процессе оценки, но не гарантирует поддержку.
Ниже указаны требования, которые обязательны для рассмотрения.
- EVM чейн с каноничным токеном и месседж-бриджем в основной сети
- ≥ 2 независимых поставщика RPC-нод, которые могут надежно поддерживать ~150M RPC-запросов в месяц от Across, предпочтительно с одним Tier 1 поставщиком: Infura, Alchemy, Quicknode
- Канал технической поддержки с приоритетной поддержкой, который включает технических специалистов нового чейна для консультаций по разработке контрактов, отладки качества данных и/или разрешения споров между поставщиками RPC
- Работа релейера в обоих направлениях с новым чейном
- Подтвержденная рыночная возможность, основанная на активных пользователях, существующем объеме мостов, ценности партнерства, ключевых рынках расширения и других факторов
- Токен-грант для Across DAO, который будет распределяться между пользователями за каждую транзакцию на новый чейн (либо токен чейна, либо протокольный токен) для привлечения и стимулирования пользователей
Итог по документации
Оценка 5 из 5: подробно и понятно всё описали. Есть и информация по работе сети намерений, и по запуску релеера, и для разработчиков решения.
Практика
DApp https://app.across.to/bridge
Давайте я оставлю ETH Arbitrum в качестве токена отправки, а вот получение изменю. Для этого жму по "Ethereum Mainnet":
И выбираю, допустим, Polygon Network:
Как видите, получу WETH. Т. е. здесь обменов пока нет на любой токен в сети получения...
Давайте нажму по ETH у Arbitrum для демонстрации:
Сеть же выберу Redstone, т. к. в Polygon WETH мне не нужен:
Видим, что я сделаю бридж за 6 секунд. Получу 0.000999 ETH и 0.00173 OP, видимо, в рамках какой-то акции.
"Confirm transaction" и подтверждаем в кошельке. Всё:
Предлагают добавить ликвидность и посмотреть награды.
Страница Pool
Как видите, есть варианты других пулов, но я остановлюсь на ETH.
В статистике написано, что ликвидность > 21 тысячи ETH, что равно примерно 74 МЛН $ - очень неплохо!
APY 3.919%.
Просит сменить сеть, но клик по "Switch Network" ничего не активирует...
Но это потому что я в Arbitrum...
А нужен Ethereum.
Вот переключился, обновил, и появилась форма добавления ликвы:
Вводите сумму, "Add liquidity" и подтверждаете в кошельке.
Я этого не буду делать: дорогие комиссии, да и сумма небольшая на балансе...
Когда у вас будет ликвидность добавлена, через время можете перейти к вкладке "Remove":
Вводите сумму, "Remove liquidity" и подтверждаете в кошельке. Всё.
Прочее
Видим награды по пулам и по программе от Optimism и Across.
Везде по нулям (видимо из-за небольшой суммы перевода).
Можем увидеть список транзакций своих.
Итог по практике
Оценка 3 из 5: интерфейс простой и удобный, но не хватает обменов одного токена на другой. Учитывая реализуемую сеть намерений, это возможно сделать...
Но, как понимаю, это будет в третьей версии интерфейса, а пока так...
Ещё минус балл за то, что пул ETH лишь в Ethereum - не добавить ликвидность в L-2...
Общий итог
- Команда: соцсети активные (за исключением Medium), команда есть, пусть и не на сайте Across, а у них в компании и в Cryptorank, но найти можно.
Минус балл за то, что команду всё же придётся поискать. - Концепт: идея интересная, но важно им не зацикливаться на кроссчейн передачах и обменах, а идти в другие сферы кроссчейн взаимодействий через намерения.
- Коин: в локе (ДАО) ещё существенная часть токенов.
- Код: разработка активная, открытая. Аудиты и баг-баунти есть.
- Документация: подробно и понятно всё описали. Есть и информация по работе сети намерений, и по запуску релеера, и для разработчиков решения.
- Практика: интерфейс простой и удобный, но не хватает обменов одного токена на другой. Учитывая реализуемую сеть намерений, это возможно сделать...
Но, как понимаю, это будет в третьей версии интерфейса, а пока так...
Ещё минус балл за то, что пул ETH лишь в Ethereum - не добавить ликвидность в L-2...
С вами был незрячий программист и автор обзоров
Благодарю за внимание. Распространяйте статью (это для меня важно) и подписывайтесь на мой канал https://t.me/blind_dev - там новые обзоры анонсирую, пишу дайджесты интересных статей из web3 сферы и новости по своим разработкам.