Oracle and Front-Running Transactions - Angle Research Series Part 1

Средний2/20/2025, 5:32:13 AM
Эта статья предоставляет глубокий анализ оракульного дизайна Angle Protocol и его защитных механизмов от фронтраннинговых транзакций. Комбинируя Chainlink и Uniswap V3 TWAP, Angle предлагает инновационное решение, направленное на защиту протокола от атак фронтраннинга, обеспечивая пользователям справедливые цены на транзакции.

Введение

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

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

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

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

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

Обновление оракула Front-Running: пример

Прежде чем погружаться в решение Angle, давайте сначала попробуем понять, как front-running может навредить протоколу. Мы рассмотрим пример, где 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. Поэтому, как мы увидим позже, из-за конструкции временно взвешенной средней цены Uniswap (TWAP), pU склонен отставать от pC.

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

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

Решение угла

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

Опции

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

  • Цепь ссылок
  • Uniswap V3 TWAP
  • Maker Feeds

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

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

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

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

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

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

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

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

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

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

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

Пример: Uniswap ETH/USDC TWAP: 1900 USD (протокол предполагает, что USDC в целом поддерживает свой пег, т.е. 1 USDC равен 1 USD) Цена ETH Chainlink: 1850 USD Цена USD Chainlink: 1,16 EUR

Если пользователь хочет создать agEUR в этом случае, протокол использует более низкую цену ETH/USD, т. е. цену Chainlink в размере 1850 USD за ETH. Напротив, если пользователь хочет сжечь agEUR на wETH в той же ситуации, протокол использует более высокую цену, т. е. Uni's ETH/USDC TWAP в размере 1900. В обоих случаях протокол использует курс USD/EUR Chainlink в размере 1.16 для преобразования ETH/USD в ETH/EUR.

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

Более общим образом:

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

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

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

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

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

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

Сравните 10-минутный и 60-минутный TWAP с ценовыми лентами Chainlink

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

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


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

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

Сфокусируйтесь на восстановлении/возврате сборов Synthetix

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

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

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

Вывод

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

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

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

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

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

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

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

Отказ:

  1. Эта статья перепечатана из [gateСообщество Denglink]. Все авторские права принадлежат оригинальному автору [Угол]. Если есть возражения против этой перепечатки, пожалуйста, свяжитесь с Gate Learnкоманда, и они незамедлительно разберутся с этим.
  2. Ответственность за отказ: Взгляды и мнения, выраженные в этой статье, являются исключительно мнением автора и не являются инвестиционной рекомендацией.
  3. Переводы статьи на другие языки выполняются командой gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

Пригласить больше голосов

Oracle and Front-Running Transactions - Angle Research Series Part 1

Средний2/20/2025, 5:32:13 AM
Эта статья предоставляет глубокий анализ оракульного дизайна Angle Protocol и его защитных механизмов от фронтраннинговых транзакций. Комбинируя Chainlink и Uniswap V3 TWAP, Angle предлагает инновационное решение, направленное на защиту протокола от атак фронтраннинга, обеспечивая пользователям справедливые цены на транзакции.

Введение

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

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

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

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

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

Обновление оракула Front-Running: пример

Прежде чем погружаться в решение Angle, давайте сначала попробуем понять, как front-running может навредить протоколу. Мы рассмотрим пример, где 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. Поэтому, как мы увидим позже, из-за конструкции временно взвешенной средней цены Uniswap (TWAP), pU склонен отставать от pC.

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

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

Решение угла

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

Опции

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

  • Цепь ссылок
  • Uniswap V3 TWAP
  • Maker Feeds

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

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

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

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

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

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

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

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

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

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

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

Пример: Uniswap ETH/USDC TWAP: 1900 USD (протокол предполагает, что USDC в целом поддерживает свой пег, т.е. 1 USDC равен 1 USD) Цена ETH Chainlink: 1850 USD Цена USD Chainlink: 1,16 EUR

Если пользователь хочет создать agEUR в этом случае, протокол использует более низкую цену ETH/USD, т. е. цену Chainlink в размере 1850 USD за ETH. Напротив, если пользователь хочет сжечь agEUR на wETH в той же ситуации, протокол использует более высокую цену, т. е. Uni's ETH/USDC TWAP в размере 1900. В обоих случаях протокол использует курс USD/EUR Chainlink в размере 1.16 для преобразования ETH/USD в ETH/EUR.

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

Более общим образом:

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

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

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

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

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

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

Сравните 10-минутный и 60-минутный TWAP с ценовыми лентами Chainlink

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

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


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

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

Сфокусируйтесь на восстановлении/возврате сборов Synthetix

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

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

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

Вывод

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

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

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

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

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

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

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

Отказ:

  1. Эта статья перепечатана из [gateСообщество Denglink]. Все авторские права принадлежат оригинальному автору [Угол]. Если есть возражения против этой перепечатки, пожалуйста, свяжитесь с Gate Learnкоманда, и они незамедлительно разберутся с этим.
  2. Ответственность за отказ: Взгляды и мнения, выраженные в этой статье, являются исключительно мнением автора и не являются инвестиционной рекомендацией.
  3. Переводы статьи на другие языки выполняются командой gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!