TechFlow Logo
Войти/ Регистрация
Газ ETH
Gwei
Страх
gas
Оракул и фронтраннинг

Оракул и фронтраннинг

2025.02.14
Поделиться
Углубленный анализ оракульного решения Angle и того, как оно построено для снижения риска фронтраннинга.

Перевод: Сообщество Denglian

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

Первая статья посвящена решению Angle для оракулов и тому, как оно построено для смягчения риска фронтраннинга.

Введение

Angle позволяет пользователям минтить и сжигать agTokens (стейблкоины) в обмен на другие токены. Трейдеры также могут открывать длинные позиции по доступным парам залог/стейблкоин. Это не традиционные бессрочные контракты, поскольку баланс не зависит от ставок финансирования, а цена исполнения поступает напрямую от оракула.

Учитывая эти варианты использования, протоколу нужен надежный способ оценки доступных активов, чтобы предлагать пользователям справедливые цены и защищать себя от фронтраннинга. В разделе FAQ этой статьи Samcszun объясняет, почему это не просто использование спотовой цены.

Фронтраннинг — это давняя проблема на рынке. Это сводится к тому, что некоторые участники могут получать информацию раньше других и использовать ее для получения безрисковой прибыли за счет другой стороны сделки. Исторически предотвращение этого явления в цепочке было очень сложным. Высокая стоимость и низкая скорость транзакций Ethereum затрудняют быстрое и частое обновление цен оракулами. Это вносит задержку между ценами вне цепочки и в цепочке, что позволяет фронтраннерам использовать это для получения прибыли.

Не все протоколы стейблкоинов обеспокоены риском фронтраннинга, вызванным задержкой оракулов. В случае с DAI от Maker задержка оракулов обычно выгодна протоколу. Если кто-то видит, что его позиция будет ликвидирована при следующем обновлении оракула из-за падения цены, у него есть стимул вернуть средства в хранилище, тем самым улучшая здоровье протокола и коэффициент залога.

Синтетические активы (Synthetix) позволяют обменивать ценность оракула между синтетическими активами и залогом, что является идеальным примером проблем, с которыми сталкиваются протоколы стейблкоинов из-за фронтраннинга. Их сообщения в блоге подытоживают долгую историю протокола с фронтраннингом, включая некоторые атаки, которым они подвергались в прошлом.

Подобно Synthetix, Angle позволяет обменивать активы по ценности оракула без проскальзывания цены. Следовательно, Angle также сталкивается с той же проблемой фронтраннинга. Основная команда Angle приложила много усилий для предотвращения фронтраннинга. В этом отношении были внедрены два основных улучшения: специфический дизайн оракула и динамическая структура комиссий. В этой статье мы объясним дизайн оракула Angle и причины, стоящие за ним.

Фронтраннинг обновления оракула: пример

Прежде чем углубляться в решение Angle, давайте попробуем понять, как фронтраннинг может нанести ущерб протоколу. Мы рассмотрим пример, где ETH принимается в качестве залога для поддержки стейблкоина Angle.

Без торговых комиссий

Предположим, злоумышленник смотрит на цену ETH вне цепочки и видит, что оракул Chainlink скоро обновит данные в цепочке по более высокой цене (от p0 до p1, где p0 < p1). Этот злоумышленник может отправить транзакцию для сжигания x стейблкоинов по цене p0 в обмен на x/p0 ETH, а затем продать их обратно протоколу после обновления цены до p1, получив прибыль:

Из-за фронтраннинга этого обновления оракула эта часть прибыли была изъята из резервов протокола. Если мы установим x = 100 ETH и p1 = 1.01 * p0 (рост цены на 1%), это будет означать, что злоумышленник забрал 1 ETH из резервов протокола.

С торговыми комиссиями

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

Например, если комиссия за минт и сжигание постоянна и равна f, то злоумышленник, сжигающий x стейблкоинов по цене p0 и продающий ETH обратно протоколу по цене p1, в итоге получит следующую прибыль:

По сравнению с предыдущим случаем комиссии уменьшили прибыль:

Когда торговая комиссия составляет f=0.3% и следует приведенному выше примеру, прибыль злоумышленника теперь составляет всего 0.39 ETH.

С торговыми комиссиями и решением двух оракулов

Чтобы еще больше сократить эту возможность, мы можем положиться на вспомогательный оракул для получения двух возможных источников цены: pC (цена Chainlink) и pU (цена Uniswap). Протокол может использовать наиболее выгодную цену (более низкую цену при минте, то есть покупку токенов у пользователя, и более высокую цену при сжигании, то есть продажу ETH пользователю), делая возможности для фронтраннинга менее привлекательными.

  • Представьте трейдера, пытающегося извлечь прибыль из той же возможности, что и выше, предполагая pC0 < pC1.

  • С другой стороны, мы можем считать pU постоянным и более близким к pC0, следовательно:

Позже мы увидим, что из-за дизайна взвешенной по времени средней цены (TWAP) Uniswap, pU часто отстает от pC.

  • В этом случае злоумышленник, пытающийся извлечь прибыль из потенциальной возможности, купит токены у протокола по цене pC0 (сжигая стейблкоины) в обмен на x(1-f)/pC0 ETH и продаст их обратно по более высокой цене pU1, что приведет к следующему результату операции:

Если мы сохраним цифры из приведенного выше примера, злоумышленник в итоге потеряет 0.6 ETH в этой операции.

Решение Angle

Дизайн Angle специально создан для устранения этого риска фронтраннинга. Следовательно, протокол внедрит механизм, очень похожий на приведенный выше пример. В этом разделе мы более подробно рассмотрим потенциальные существующие варианты, сосредоточимся на специфике дизайна, который мы собираемся внедрить, и проведем анализ нашего выбора временного окна TWAP.

Варианты

Основные решения для оракулов, которые могут подойти для случаев использования Angle:

  • Chainlink

  • Uniswap V3 TWAP

  • Maker Feeds

Chainlink — это очевидный первый выбор: это широко используемое децентрализованное решение для оракулов, предоставляющее несколько источников данных для различных активов. Их цены поступают из нескольких источников данных и проходят через децентрализованную сеть ретрансляции, гарантируя, что эти данные надежны, доступны и трудны для манипуляции. Однако некоторые источники данных обычно обновляются только после «значительных» изменений цены (например, 0.5% для ETH/USD) или через определенный период времени, что означает, что цены Chainlink всегда отстают от фактических рыночных цен. Следовательно, обновления цен Chainlink могут быть подвержены фронтраннингу из-за просмотра цен вне цепочки или мемпула.

Взвешенная по времени средняя цена (TWAP) Uniswap V3 — это еще одно очевидное и широко используемое решение для оракулов. TWAP можно запросить из контрактов Uniswap, чтобы получить взвешенную по времени среднюю цену токенов в пуле за определенный период времени, диапазон от нескольких секунд до 9 дней. Цена рассчитывается как средняя цена между этими двумя токенами за указанное время. Благодаря этому манипулирование TWAP требует значительных средств и занимает много времени, что в большинстве случаев неэффективно.

Тем не менее, поскольку TWAP представляет собой среднюю цену наблюдений прошлых блоков, они также часто отстают от цен в реальном времени вне цепочки и даже от источников цен Chainlink. Если использовать их по отдельности, их недостаточно для защиты протокола от фронтраннинга.

Кроме того, поскольку TWAP сообщает только цены пар токенов в цепочке, они не могут удовлетворить цель протокола по предоставлению доступа к активам, не представленным в цепочке (и, следовательно, не в пулах Uniswap), таким как стейблкоины Forex.

Использование Maker Oracles могло бы быть еще одним выбором для Angle. Но это означало бы доверие MakerDAO и прохождение процесса управления для запроса доступа к данным о ценах. Источники цен также ограничены теми, которые использует Maker, чего для нас недостаточно, поскольку мы хотим иметь доступ к валютным курсам.

Дизайн Angle: Chainlink + UniV3 TWAP

Учитывая это, было решено объединить оракул Chainlink протокола Angle с 10-минутным Uni V3 TWAP. Это позволяет получать максимально справедливую цену в любое время, одновременно защищая протокол от атак фронтраннинга.

В общем, контракты Angle будут сравнивать цены двух каналов и использовать цену, наиболее выгодную для протокола. Благодаря такому дизайну фронтраннинг протокола становится более сложным, поскольку для использования обменного курса протокола необходимо манипулировать или фронтраннить два оракула.

В частности, наши контракты будут получать лучшую цену между Chainlink и Uniswap для всех пар волатильный актив/стейблкоин и использовать оракул Forex от Chainlink для конвертации цены в требуемую фиатную валюту. Для каждой пары залог/стейблкоин будет выделен специальный контракт оракула и его независимый источник цены.

Как это работает?

Например, предположим, что пользователь хочет торговать по паре ETH/agEUR. Нашему контракту нужно получить цены ETH/USD и USD/EUR. Он сохранит лучшую цену ETH/USD от Chainlink и 10-минутный TWAP пула ETH/USDC UniV3. Затем он получит цену Forex USD/EUR от Chainlink.

Пример:Uniswap ETH/USDC TWAP: 1900 USD (протокол предполагает, что USDC обычно сохраняет свой пег, то есть 1 USDC стоит 1 USD); Цена Chainlink ETH: 1850 USD; Цена Chainlink USD: 1.16 EUR.Если пользователь хочет в этой ситуацииминтитьagEUR, протокол будет использовать более низкую цену ETH/USD, которую он может найти, то есть 1850 USD за ETH от Chainlink. И наоборот, если в той же ситуации пользователь хочетсжечьagEUR на wETH, протокол будет использовать более высокую цену, то есть Uni ETH/USDC TWAP равную 1900. В обоих случаях протокол будет использовать курс Chainlink USD/EUR 1.16 для конвертации ETH/USD в ETH/EUR.Аналогично, протокол будет использовать самую высокую цену для пользователей, желающих открыть бессрочный контракт, и самую низкую цену для тех, кто хочет закрыть контракт.

В более общем смысле:

  1. Контракт пользователя, которому нужна цена, вызовет соответствующий контракт оракула.

  2. В зависимости от типа пары, контракт оракула может считывать котировки из UniV3 TWAP и Chainlink или только из Chainlink (например, для обмена стейблкоин на стейблкоин) и возвращать их главному контракту.

  3. В зависимости от выполняемой операции (минт, сжигание, открытие или закрытие), соответствующий контракт сохраняет лучшую котировку протокола и исполняет транзакцию.

Выбор временного окна Uni V3 TWAP

Контракты Angle будут использовать 10-минутное временное окно для TWAP. Этот выбор был тщательно обдуман, поскольку разные временные окна могут привести к совершенно разным ценовым структурам.

Различия между разными временными окнами

В случае Angle, с одной стороны, временное окно должно быть достаточно долгим, чтобы обеспечить достаточную задержку между протоколом и спотовой ценой. Это действительно позволяет получить более высокий спред между ценами минта и сжигания в случае волатильности цен, когда риск фронтраннинга Chainlink удваивается. Кроме того, чем дольше временное окно, тем сложнее манипулировать ценой TWAP, поскольку недавние наблюдения оказывают меньшее влияние на цену.

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

Сравнение 10-минутного и 60-минутного TWAP с источниками цен Chainlink

Чтобы показать вам, почему мы в итоге выбрали 10-минутное временное окно, ниже показано сравнение 10-минутного и 60-минутного ETH/USDC TWAP с ценой Chainlink ETH/USD и ценой закрытия Coinbase.

Вы можете видеть, как при переходе между ценами верхние и нижние ставки, используемые протоколом при минте/закрытии и сжигании/открытии пользователем, перемещаются между наиболее выгодными ценами между TWAP Chainlink и Uniswap.

Хотя 60-минутный сегмент TWAP часто дает цены, далекие от рынка, 10-минутный TWAP обеспечивает полезный буфер для источника цен Chainlink, сохраняя цены достаточно близкими к рынку.

Стоит отметить, что из первого графика видно, что чем выше волатильность, тем больше спред между ценами Chainlink и Uniswap. И наоборот, когда цены остаются относительно стабильными в течение периода времени, источники цен Uniswap и Chainlink приближаются друг к другу.

Использование TWAP в качестве дополнительной защиты от фронтраннинга фактически равносильно динамическому взиманию более высоких существенных комиссий в периоды высокой волатильности цен, поскольку в этом случае риск фронтраннинга выше из-за задержки оракула в цепочке. Ценой этих более высоких эффективных комиссий является снижение способности арбитражных трейдеров напрямую переоценивать стейблкоины через протокол.

В большинстве случаев цены Uniswap и Chainlink будут очень похожи, так что пользователи почти не заметят использования двух решений для оракулов. В периоды высокой волатильности, когда протокол может быть подвержен фронтраннингу из-за значительной разницы в ценах между текущей и будущей ценами Chainlink в цепочке, цены протокола будут отличаться, и протокол будет защищен от фронтраннинга.

Внимание на возврат/возмещение комиссий Synthetix

Исследование оракулов Angle было сильно вдохновлено обсуждениями управления Synthetix относительно фронтраннинга и их соответствующими сообщениями в блоге. Другим вариантом, с которым мы также столкнулись в нашем исследовании, было внедрение ими возврата/возмещения комиссий в феврале 2020 года, что в итоге было временной мерой.

Что они сделали, так это добавили период ожидания для транзакций, в течение которого пользователи не могли манипулировать Synth, который они хотели использовать. В течение этого периода оракул мог проверить, подверглась ли транзакция несоответствию, то есть是否存在 ли разница в ценах между моментом исполнения и окончанием периода ожидания. Если да, то разница в ценах должна быть выплачена пользователем или протоколом другой стороне (протоколу или пользователю), или оплачена при следующей транзакции с Synthetix.

Это решение было очень эффективным в уменьшении фронтраннинга, но им пришлось увеличить время ожидания и комиссии, что привело к очень плохому пользовательскому опыту для всех трейдеров. Это также предотвратило комбинацию Synth с другими протоколами во многих случаях использования. В SIP-120 они заменили это решение вариантом использования оракула TWAP для крупных транзакций.

Заключение

Специфический дизайн оракула Angle имеет два основных последствия для протокола:

  • Злоумышленнику нужно манипулировать двумя рынками, чтобы обмануть протокол, что значительно снижает риск успешного фронтраннинга.

  • В периоды рыночного стресса протокол, вероятно, не будет предлагать пользователям лучшую цену.

Последнее влияние — это тема, обсуждавшаяся на форуме управления Fei. Поскольку предоставление наилучшего исполнения сделки не является основной целью протокола, мы считаем, что устойчивость к фронтраннингу более важна для обеспечения безопасности протокола. Вторичные рынки обеспечат лучшее исполнение сделок в периоды высокой волатильности.

Наша цель в проекте Angle — разработать полностью обеспеченный эффективный протокол стейблкоинов. Для этого необходимо учитывать многие аспекты протокола, чтобы убедиться, что его нельзя обмануть в невыгодном положении, и одним из них является устойчивость к фронтраннингу. Это особенно важно, поскольку стабильность децентрализованного стейблкоина в цепочке, зависящего от оракулов, зависит от его оракула.

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

Наконец, следует отметить, что это решение для оракула сохраняет гибкость и масштабируемость. С одной стороны, управление Angle может в любое время проголосовать и обновить свои контракты оракула. С другой стороны, оракул может быть создан для любой подачи цен, поддерживаемой Chainlink. Это минимальная поддержка для реализации видения Angle — привлечения финансовых активов в цепочку капиталоеффективным способом.

Присоединяйтесь к официальному сообществу TechFlow

В избранное
Поделиться