Это исследование возникло из вызова получения достоверной информации о ценах on-chain, максимизирующей безопасность и отражающей текущие рыночные цены целевых активов. Мы специально сосредоточены на залоговых активах Prisma Finance (wstETH, rETH, cbETH и sfrxETH), а также деривативах ликвидного стейкинга на основе Ethereum (LSD). Некоторые из этих активов не имеют источников данных Chainlink (часто считающихся золотым стандартом для надежных данных о ценах), что отразилось на их интеграции с платформой Prisma.
Последняя реализация стабильного пула Curve Finance включает внутренний пул Oracle, который вычисляет экспоненциальное скользящее среднее (EMA) для получения устойчивых к вмешательству ценовых данных. В то время как интеграторы уже начали изучать использование Oracle в других приложениях DeFi, Oracle в основном используется для обеспечения безопасности залоговых средств на собственном рынке crvUSD Curve.
Основная цель этого отчета - определить, может ли оракул Curve Finance служить надежной альтернативой Chainlink для токенов ETH LSD. В этом исследовании проводится статистический анализ эффективности оракула цены Curve, сравнивая его волатильность, точность и общую производительность с ценами Uniswap (предполагается, что это точные цены на цепи).
Анализ разделен на два связанных исследования:
Анализ остаточных данных оракулов stETH: Сравнительное исследование между Chainlink и Curve с использованием исторических данных для определения отклонения Оракула относительно среднего значения и стандартного отклонения базовой цены.
Анализ погашения stETH MEV: Сравнительное исследование между Chainlink и оракулом на цепочке, используя исторические данные для изучения событий погашения на Prisma и оценки прибыльности роботов и ожидаемого поведения с использованием альтернативных Оракулов.
После анализа мы предоставляем предварительные спецификации для Оракула, ожидая улучшения отклонения цены Оракула, обеспечивая надежность Оракула. Предложенное решение может служить начальным чертежом для других исследований, нацеленных на оптимизацию Оракула.
Эффективность оракулов оценивается в конкретной среде использования Prisma: ликвидация и погашение. (Кроме того, следует отметить, что те же оракулы также используются для сбора комиссии за выпуск токенов и продажи приобретенных токенов в «токенизированный стабильный пул», чье значение увеличится после запуска.)
Производительность Oracle критически важна для пользователей Prisma, поскольку арбитражеры могут иметь возможности для извлечения прибыли из различий между ценами Oracle и рыночными ценами. Гарантируя использование наиболее точной обратной связи по ценам во время ликвидации и погашения, не жертвуя безопасностью источников ценообразования, соответствует наилучшим интересам протокола Prisma и его депозитариев.
Две функции Oracle в Prisma описаны следующим образом:
Чтобы защитить Prisma от банкротства, где позиции по долгам превышают стоимость их залога, контракт LiquidationManager выполняет логику ликвидации для всех активных TroveManagers (казначейств Prisma). Ликвидация может быть запущена одним из трех способов, в зависимости от коэффициента залога целевого счета и системного коэффициента залога.
Индивидуальное отношение залога (ICR) <= 100%: Учетная запись (казначейство) имеет недостаточный залог. Вся задолженность и залог перераспределяются между оставшимися активными казначействами, фактически социализируя убытки.
100% < ICR < Минимальное Коэффициент Залога (MCR): Казна падает ниже порога ликвидации, но может быть безопасно ликвидирована. Стабильный пул используется в качестве резерва для обработки ликвидаций (стимулирование пула ликвидации). Залог выделяется депозиторам стабильного пула. Если баланс стабильного пула недостаточен для полного погашения казны, оставшийся долг и залог перераспределяются среди оставшихся активных казен.
MCR <= ICR < Глобальное общее коэффициент обеспечения (GTCR) && GTCR < 150%: Система находится в режиме восстановления, что означает, что казначейства могут быть ликвидированы, когда CR ниже GTCR, а не MCR. Депозиты в стабильный пул используются в первую очередь для ликвидации казначейства. Обеспечение, эквивалентное стоимости долга при MCR, распределяется среди вкладчиков в стабильный пул. Оставшееся обеспечение может быть запросено владельцем казначейства.
Возможность ликвидации Prisma возрастает, когда ETH или ETH LSD испытывают значительные ценовые колебания, особенно падения, в условиях высокой волатильности рынка. В то время как сбои или манипуляции Oracle могут влиять на протокол в любое время, риск сбоя Oracle может возрасти в самые критические моменты. Обеспечивающие активы могут не обновлять цены вовремя из-за всплесков комиссий за газ, или методология ценообразования Oracle может недостаточно отслеживать увеличившуюся волатильность, что приводит к неправильной ценообразованию. Банкротства могут возрасти, потребуется перераспределение среди активных казначейств, или заёмщики могут быть несправедливо ликвидированы (в случаях, когда Oracle ошибочно сообщает цены ниже честной рыночной цены).
Арбитражники всегда могут инициировать погашение, выбрав погашение 1 мкUSD стоимостью залога за 1 доллар США (+ динамические комиссии за выкуп), начиная с казны с наименьшим коэффициентом залога в системе. Это помогает укрепить его привязку, когда цена мкUSD падает ниже 1 доллара США. Процесс погашения снижает залоговый риск целевой казны и увеличивает ее коэффициент залога. Сторона, осуществляющая погашение, платит комиссию, называемую комиссией за погашение. Диапазон комиссий за погашение находится в TroveManager и представляет собой сумму нижнего предела комиссии за погашение + базовая ставка. Переменные, хранящиеся в TroveManager, увеличиваются пропорционально выкупленному общему предложению мкUSD и линейно уменьшаются со временем. Эта динамическая комиссия, базовая ставка, регулирует прибыльную ставку погашения.
В то время как ликвидации на Prisma исторически были редкими, погашения являются обычными и требуют особого внимания со стороны Оракулов. Боты MEV активно ищут такие возможности для быстрой прибыли через флеш-кредиты.
Кроме неудобств, связанных с принудительным выкупом своих казначейств, пользователи могут столкнуться с извлечением некоторой стоимости из-за расхождений между оракулом и рыночными ценами. Неправильная ценообразование может привести к потере пользователями большего количества активов, чем необходимо, особенно когда оракул сообщает о ценах ниже справедливой рыночной стоимости. С другой стороны, цены, сообщаемые оракулом, выше справедливых рыночных цен, могут затруднить выкупы, отменяя цель механизма выкупа, обеспечивающего мкUSD фиксацию курса.
Взглянем на ведущих кандидатов на Oracle ценовые ленты на Prisma.
Chainlink - это децентрализованная сеть оракулов, которая агрегирует данные из широкого спектра рыночных источников и соединяет эти данные с смарт-контрактами. Ее архитектура основана на независимых узлах, которые извлекают и передают данные из различных бирж и API агрегаторов рыночных данных, минимизируя единичные точки отказа и повышая безопасность. Целостность данных обеспечивается криптографическими методами и механизмами консенсуса, которые проверяют точность данных перед передачей. Ее подход включает объемно-взвешенное ценообразование активов (VWAP) для агрегации справедливых рыночных значений, которые лучше всего представляют цены активов на месте.
Сети узлов регулярно (по пульсу) или на основе порогов отклонения цен выталкивают цены на цепь. Это ограничение, вызванное высокими комиссиями за газ на основной сети, может сделать обновление цен дорогостоящим и привести к увеличению задержки, тем самым ухудшая производительность Оракула. Стоимость поддержки таких Оракулов может быть высокой, особенно в периоды высокой волатильности, что делает своевременные обновления Оракула критически важными.
Недавние реализации пулов Curve (пулы StableSwap и CryptoSwap) включают расчеты цен EMA, предоставленные функциями-геттерами, такими как price_oracle()
. Эти пулы не полагаются на внешних оракулов, а вместо этого рассчитывают цены активов относительно токена в индексе 0 пула на основе их собственной внутренней торговой деятельности. EMA увеличивает затраты на манипулирование за счет сглаженных корректировок цен, находя баланс между устойчивостью к манипуляциям и отклонением цены от текущей. У каждого пула есть ma_exp_time
которую можно настроить через голосование Curve DAO.
Как указано в документации Curve Oracle, EMA Oracle активно находится в процессе разработки:
“Если вы хотите использовать функциональность ‘оракула цен’ Curve или любого оракула цен для предоставления ценовых данных on-chain в вашем децентрализованном приложении, которое вы строите, мы рекомендуем вам проявить особую осторожность.”
Различные реализации пулов модифицируют версии кода EMA Oracle, поэтому интеграторы должны понимать реализацию Oracle целевого пула.
В ноябре 2023 года была обнаружена ошибка, затрагивающая пул Oracle, во время развертывания реализации пула stableswap-ng. Эта ошибка была обнаружена вскоре после развертывания реализации пула yAudit во время вторичной проверки. Это стало поводом для предложения обновления реализации и устаревания нескольких затронутых пулов. Средства не находились под угрозой, но этот случай подчеркнул активное развитие оракулов Curve pool и потенциал несоответствий между пулами, несмотря на обширные проверки, и возможность продолжения существования ошибок, которые могут сделать оракулы уязвимыми к манипуляциям или неточностям.
Третья часть этого отчета - анализ выкупа wstETH TroveManager. Учитывая значительное влияние выкупа на пользователей Prisma, в этом разделе представлены наблюдения за историческими выкупами, которые будут оценены в сравнении с альтернативным Curve EMA Oracle в сравнительном анализе.
По запросу событий выкупа в TroveManager wstETH обнаружено более 200 сделок по выкупу, из них 190 идентифицированы как сделки BOT (метод идентификации сделок, выполненных ботами, будет объяснен позже в этом же разделе). Ниже приведена визуализация, показывающая частоту этих сделок со временем.
Источник: Dune query_3402461
Есть всего 3 бота, которые часто обменивают mkUSD:
Источник: Dune query_3402461
Каждый БОТ следует похожему общему процессу приобретения mkUSD и их погашения. Ниже приведена одна из транзакций БОТ, раскрывающая некоторые полезные идеи:
Источник: Phalcon Tx Explorer
Шаблон транзакции BOT можно дополнительно разделить следующим образом:
Получите мгновенные кредиты от Uniswap V3: USDC.
Конвертируйте USDC в mkUSD, используя Кривая.fi Factory USD Metapool: Prisma mkUSD.
Обменять mkUSD на wstETH на TroveManager wstETH.
Распакуйте wstETH в stETH на wstETH.
Обменять stETH на ETH в пуле Curve stETH/ETH.
Wrap ETH, погасить кредит и распределить прибыль и комиссии.
Прибыльность MEV зависит от разницы в ценах на шагах 2, 3 и 5:
2: По мере снижения цены mkUSD увеличивается доходность выкупа.
3: Поскольку динамические комиссии за погашение уменьшаются как функция недавних количеств погашения и времени с момента погашения, увеличивается прибыльность погашения.
-5: По мере увеличения проскальзывания на биржах активов (например, stETH), уменьшается прибыльность восстановления. Такие активы, как stETH, могут быть непосредственно обменены на базовый ETH, но для этого процесса требуется период ожидания, что делает ликвидность на вторичном рынке критически важной.
Prisma использует механизм для ограничения возможностей получения прибыли от погашения mkUSD на wstETH через динамические комиссии. Шаг 3 включает в себя динамические комиссии для предотвращения частых и чрезмерных погашений. Несмотря на этот механизм, погашения все равно могут происходить из-за неправильной ценообразования Oracle для извлечения MEV. Котировки Oracle для погашения mkUSD могут предложить владельцам казначейства неоптимальные обеспечительные ставки, что приведет к отрицательному пользовательскому опыту.
Предложение о изменении ценообразования Oracle Prisma для stETH было утверждено. Изначально Prisma использовала оракул Chainlink stETH/USD с порогом отклонения 1% для TroveManager wstETH. Было выяснено, что использование комбинации оракулов Chainlink stETH/ETH и ETH/USD может привести к улучшению, с порогом отклонения 0,5% для каждого оракула.
Пожалуйста, обратитесь к различию между новым Оракулом и старым Оракулом с разрешением 15 блоков:
Источник: Диаграмма от @wavey
Было замечено, что, когда торговая цена mkUSD падает ниже закрепленной ставки, происходят чрезмерные погашения из-за отклонения Oracle, превышающего 1%. В этих случаях мы обнаружили, что динамические комиссии были недостаточны, чтобы предотвратить излишние погашения, вызванные отклонениями в ценообразовании. Пожалуйста, обратитесь к корректировке комиссий за погашение для событий погашения ниже.
Источник: диаграмма от @wavey
Эти погашения могут повлечь косвенные издержки для пользователей Prisma, поскольку они могут получать невыгодные курсы при погашении своих кладов. Анализ Wavey показывает, что оракул stETH/USD более подвержен отклонениям по сравнению с комбинациями оракулов, подтвержденными в вышеуказанных данных. Временные отклонения, превышающие 1,2%, создали возможности для MEV ботов для эксплуатации.
Предложение об изменении Оракула (PIP-004) было выполнено 17 ноября 2023 года в 735 PM +UTC, наряду с этой транзакцией. Исходя из диаграммы цен mkUSD ниже и даты исполнения предложения, можно заметить, что после исполнения предложения реальная цена mkUSD в USDC уменьшилась. Уменьшение прибыльности погашений из-за улучшений оракулов может привести к снижению уровня привязки.
Источник: Dune query_5685458
Также следует учитывать другие влияющие факторы, включая ограничения модели процентной ставки протокола, варианты использования mkUSD и несогласованные меры стимулирования. Еще одно значительное предложение, ограничивающее погашение, - PIP-019, реализованное 31 января. Это предложение увеличило базовую комиссию за погашение для всех TroveManagers до 1%-1.5%, уменьшая упругость привязки mkUSD, но за счет снижения риска погашения для владельцев хранилищ Prisma.
Анализ направлен на оценку производительности реализованных оракулов Prisma и оценку гипотетической производительности альтернативных он-чейн оракулов Curve EMA с использованием исторических данных. Результаты исследования предоставят первоначальное представление о поведении оффчейн и он-чейн оракулов, обеспечивая более детальную оценку в последующих исследованиях.
Цель данного анализа - определить, обеспечивает ли текущий оракул наиболее оптимальное решение производительности, или улучшения могут быть внесены путем реализации ончейн или гибридных решений с использованием оракула пула EMA Curve.
Анализ будет специально сосредоточен на stETH, поскольку это самый часто используемый LSD, с зрелой ценой Chainlink и глубокой ликвидностью в пуле Curve. Был проведен анализ других залогов, перечисленных на Prisma, и результаты предоставлены в Приложении B к отчету для справки.
Сравнительный анализ включает оценку степени соответствия между исходными данными испытания и эталонным набором данных. В данном случае рассматриваются два набора данных: исходные данные испытания и эталонный набор данных. Ожидается, что данные испытания должны тесно соответствовать эталонным данным, однако могут возникать отклонения.
Для количественной оценки согласованности мы рассматриваем остатки, которые в основном представляют собой разницу между исследовательскими данными и опорными данными. Анализ остатков направлен на выявление закономерностей или тенденций в этих различиях.
При анализе остатков (отклонений от эталонных значений) наблюдения производятся на основе стандартного отклонения остатков. Стандартное отклонение (SD) - это статистическая мера, используемая для количественной оценки изменчивости или разброса набора значений. Оно указывает на распределение значений вокруг среднего (среднего значения). Маленькое стандартное отклонение подразумевает, что точки данных имеют тенденцию находиться близко к среднему значению, в то время как большое стандартное отклонение указывает на то, что точки данных распределены на более широком диапазоне.
В нашем случае среднее значение, близкое к 0, желательно, поскольку это указывает на то, что предоставленные цены не завышают или не занижают опорные цены. Однако среднее значение, близкое или равное 0 с относительно высоким стандартным отклонением, указывает на значительные колебания, которые нежелательны, поскольку они соответствуют серьезным ошибкам в ценообразовании. Оракул средним значением ноль и минимальным стандартным отклонением является идеальным результатом, указывающим на то, что информация точно отслеживает текущие цены.
Для мониторинга и оценки точности активности цен оракула на цепочке котировки, полученные с наиболее ликвидных торговых площадок (исключая Curve) служат в качестве ссылки для резидуального анализа. Конкретно, котировки валютной пары LSD/ETH на Uniswap являются основными опорными точками в данном сценарии.
Наш анализ включает в себя две стратегии вычисления цен stETH Chainlink. Это делается потому, что было обнаружено, что отклонение оригинальной цены Chainlink stETH/USD выше, чем отклонение при использовании stETH/ETH + ETH/USD. Оракулы были обновлены в соответствии с предложениями управления. Впоследствии анализ, включающий улучшенную цену stETH/ETH Chainlink в ETH, называется stETHv1, в то время как комбинированная цена stETH/USD + ETH/USD (воспроизведение первоначальной производительности оракула stETH, стандартизированная до ETH) называется stETHv2.
Для аналитических целей данные за последний квартал 2023 года были получены из всех соответствующих активов (с блока 18331000 по блок 18931000, с разрешением 250 блоков для набора данных). Это создает набор данных, содержащий 2401 точек данных для всех активов.
Основным активом, находящимся под рассмотрением, является stETH, поскольку он является типом залога, в настоящее время принимаемым Prisma, с возможностью использования как данных Chainlink feed, так и пула Curve StableSwap-ng (см. Приложение B для анализа rETH и cbETH, которые используют более старую реализацию пула CryptoSwap). Вся информация была получена путем запроса цен для указанного диапазона блоков.
Цены Oracle анализируются из следующих источников:
Пул ликвидности Curve
Обратная связь о цене Chainlink
Адрес пула майнинга Uniswap в качестве агента ссылки на текущую цену следующий:
Цена Uniswap на месте
Для стандартизации LSD к его базовому ETH мы используем внутренний обменный курс LSD/ETH:
Внутренний курс обмена LSD/ETH
В этом разделе мы сравним точность потока цен Chainlink stETH с Curve.
Chainlink stETHv1 Feed vs. Curve
Chainlink: stETH/ETH feed
Кривая: пул stETH/ETH
Ниже приведено прямое сравнение цен на stETH от Chainlink и Curve. Из-за 24-часового цикла сердечного ритма Chainlink stETH/ETH цена колеблется каждые несколько блоков. По сравнению, флуктуации более заметны в потоке Chainlink (лучше визуализируются в потоке Chainlink stETH/USD) по сравнению с Curve, поскольку Curve использует время 10-минутной EMA (ma_exp_time) для вычисления своей цены.
If we subtract the price from Curve from the price from Chainlink, we will obtain the residuals, as shown below:
Среднее отклонение составляет ~-0.000305.
Важным наблюдением здесь является то, что Curve Oracle немного завышает свои ценовые данные по сравнению с Chainlink.
Chainlink stETHv2 и Curve
Chainlink:stETH/USD feed / ETH/USD feed
Curve: пул stETH/ETH
Ниже приведено сравнение цен от альтернативных цепочек Chainlink, нормализованных к ETH (stETH/USD и ETH/USD), по сравнению со stETH Curve. Поскольку у Chainlink stETH/USD порог отклонения составляет 1% (по сравнению с 0.5% в потоке stETH/ETH), цена проявляет большее отклонение вокруг якорной цены.
Как было отмечено ранее, флуктуации цены stETH/USD Chainlink более выражены по сравнению с Curve.
Среднее отклонение составляет ~-0.000171.
В зависимости от масштаба этот поток имеет большие остатки, т.е. большую волатильность, чем stETH/ETH.
В этом разделе мы сравним историческую точность ценового канала Chainlink stETH с опорной ценой от Uniswap.
Предполагая, что данные о ценах пула UniswapV3 служат надежным прокси для рыночных цен, мы можем сравнить ранее полученные исходные данные с целью проверить близость данных от Chainlink Oracle к эталонным значениям.
Uniswap Spot vs. Chainlink stETHv1
Chainlink: stETH/ETH feed
Uniswap: бассейн wstETH/ETH / внутренний обменный курс wstETH/stETH
Здесь фактическое отклонение между рыночной ценой Uniswap и Chainlink stETH/ETH:
Среднее остаточное значение = 0.000415
Стандартное отклонение разницы цен = 0.000601
Uniswap Spot vs. Chainlink stETHv2
Chainlink: stETH/USD feed / ETH/USD feed
Uniswap: пул wstETH/ETH / внутренний обменный курс wstETH/stETH
Вот фактическое отклонение между Uniswap stETH и Chainlink stETH (stETH/USD):
Среднее значение разницы в цене = 0.000281
Стандартное отклонение разницы цен = 0.002747
Здесь мы сравниваем Chainlink stETHv1 (т. е. stETH/ETH) и stETHv2 (т. е. stETH/USD) с данными Uniswap, и результаты показывают, что отклонение stETHv2 значительно выше, чем у stETHv1.
Тот же самый наблюдение было сделано также в предложении по управлению Prisma (PIP-004), когда оракул переключился с stETH/USD на stETH/ETH + ETH/USD для уменьшения отклонений в ценовой подаче.
В этом разделе мы сравним историческую точность оракула stETH Curve с референтной ценой на Uniswap.
Предполагая, что данные о ценах в пуле UniswapV3 служат надежным прокси для рыночных цен, мы можем сравнить ранее полученные исходные данные для проверки близости потока Curve Oracle к опорным значениям.
Uniswap Spot vs. Curve
Curve: пул stETH/ETH
Uniswap: пул wstETH/ETH / внутренний обмен wstETH/stETH
Исходя из аналогичного анализа остатков, как указано выше, мы получаем следующие метрики для сравнения с ранее установленным эталоном:
Среднее различие в цене = 0.000110.
Стандартное отклонение разницы цен = 0.000141.
Как видно, средняя цена, сообщаемая Curve, немного ниже, чем у Uniswap, с значительно меньшим стандартным отклонением по сравнению с любым источником из Chainlink.
При сравнении этих показателей мы обнаруживаем, что отклонение данных Chainlink значительно превышает отклонение Curve при ссылке на данные Uniswap в качестве прокси для текущих цен.
Поскольку вышеуказанные наблюдения основаны на отклонениях от каждого источника цен, возможно, что кормовая система Curve Oracle покажет положительные отклонения, в то время как кормовая система Chainlink покажет отрицательные отклонения, и наоборот. Этот сценарий полностью устраняется, поскольку диапазоны отклонений кормовых систем Chainlink и Curve Oracle меньше по сравнению с диапазонами отклонений Uniswap & Chainlink и Uniswap & Curve.
Ниже приведена остаточный анализ, проведенный по собранным данным. Среднее значение остатка, умноженное на 100, дает средний процент отклонения целевого актива от ссылочного (в долларовом выражении по сравнению с ценами на ETH, выраженными в долларах).
Таблица напрямую сравнивает относительную производительность Chainlink и Curve с ссылкой на Uniswap в терминах среднего и стандартного отклонения для каждого актива. Во всех случаях Curve проявляет более низкие значения среднего и стандартного отклонения. Множитель точности показывает относительную точность каждого наблюдаемого значения.
Основные моменты здесь следующие:
Анализ направлен на сравнение цен на реализацию событий погашения в wstETH TroveManager с гипотетическими ценами, указанными с использованием исторических данных альтернативными цепными оракулами. Результаты исследования предоставят первоначальное представление о поведении внебиржевых и цепных оракулов, обеспечивая более детальную оценку в последующих исследованиях.
Цель этого анализа - определить, обеспечивает ли текущий оракул лучшее решение производительности в конкретных сценариях погашения или можно ли улучшить его путем внедрения ончейн или гибридных решений с использованием оракулов пула Curve EMA.
Этот анализ будет специально сосредоточен на stETH, поскольку это наиболее часто используемый LSD и имеет зрелые ценовые каналы Chainlink и глубокую ликвидность в пуле Curve. В рамках исследования будут агрегированы все случаи погашения, сравнивая реализованные цены оракула stETH с несколькими альтернативными ценами оракула, выраженными в USD, и используя цену оракула stETH/ETH на Curve.
Для этого анализа цена реализованного stETH рассчитывается путем деления искупленной суммы mkUSD на количество потерянного stETH для Управляющего Trove в виде wstETH. Чтобы определить количество stETH, нам нужно учитывать полученные wstETH от искупления плюс потраченные wstETH на комиссии и преобразовывать их в stETH. Если какой-либо альтернативный источник постоянно предлагает более низкие прибыли для искупителей, мы можем сказать, что их производительность MEV лучше, чем фактическая цена.
TroveManager wstETH используется для извлечения всех хэшей транзакций при получении mkUSD в обмен на него. Транзакции, в которых адрес, погашающий mkUSD, получает и сжигает mkUSD, считаются транзакциями BOT. Подробные запросы для событий погашения можно найти здесь: Dune query_3352919. Этот запрос необходим для извлечения всех данных из транзакций BOT.
Запрос Dune используется для идентификации транзакций BOT, которые получают все значения хэшей транзакций, реализованную обменную ставку wstETH для искупления mkUSD и номер блока событий искупления. Номера блоков, полученные из запроса, используются в качестве входных данных для запроса следующих данных, которые используются для сравнения текущей реализации с изменениями в цене корма Curve stETH:
Исходя из вышеуказанных данных, мы можем построить три ценовых ленты, используя цену Curve Oracle stETH/ETH, и объединить их с ETH/USD, чтобы получить stETH/USD. После этой операции у нас есть следующие данные для визуализации:
Вышеуказанные данные предоставляют цену stETH в USD, которая может быть проанализирована на основе реализованных цен stETH от всех транзакций BOT. Реализованный stETH (в USD) просто используется для расчета цены stETH для каждого mkUSD, предоставленного во время погашения.
Ниже приведены 4 источника цен на stETH для блока торговли BOT (1 ссылочный и 3 альтернативных, о которых упоминалось выше). Реализованные цены - это цены от реализованных ценовых оракулов (т. Е. Chainlink). Это сравнивается с 3 источниками, использующими Curve stETH/ETH в качестве основы. Здесь более высокая цитата приведет к уменьшению стоимости stETH, обмениваемого на mkUSD, и наоборот.
Исходя из вышеизложенной информации, мы можем моделировать относительное количество stETH, полученное при погашении mkUSD, и нормализовать его на основе фактического количества, полученного от существующего оракула. На следующем графике отображается количество stETH, полученное из mkUSD до взимания комиссий, и обрабатываются данные для удаления выбросов для улучшения визуализации:
Анализ показывает явный тренд: при комбинировании Curve stETH/ETH с Uniswap ETH/USDC и Chainlink ETH/USD количество доступного stETH для погашения mkUSD уменьшается. Следовательно, уменьшение количества единиц stETH на один mkUSD приводит к уменьшению прибыли BOT. Предоставленная визуализация иллюстрирует сравнение прибыли BOT при различных предполагаемых ценах фида и фактической цены фида, исключая комиссии:
Очевидно, что комбинация Curve stETH/ETH, Uniswap ETH/USDC и Chainlink ETH/USD снижает прибыльность погашений по сравнению с реализованной ценой корма.
Признавая врожденные риски, связанные исключительно с оракулом Curve, особенно в периоды низкой ликвидности или ликвидностных флуктуаций, предлагаемое решение стратегически интегрирует оракул Chainlink в качестве меры безопасности (т. е. запасного плана) в случае отклонений. Учитывая ничтожную возможность предоставления неверных данных Chainlink, он может служить надежным вариантом резервного копирования.
Это решение действует как фильтр, учитывая как цены Curve, так и Chainlink. Условия устанавливаются в рамках функции, служащей переключателем. Для разработки этого условия вводится концепция допустимого диапазона. Этот диапазон представляет собой допустимую разницу между ценами оракулов Chainlink и Curve. Когда наблюдаемая разница превышает этот диапазон, это указывает на потенциальный перекос или манипуляцию в данных оракула Curve. В таких случаях функция смягчает потенциальные риски, отдавая предпочтение более безопасным ценам Chainlink. Напротив, когда разница находится в пределах допустимого диапазона, функция оперирует на точности и точности оракула Curve.
Стратегия с двойным подходом минимизирует зависимость от одного источника данных, тем самым повышая общую устойчивость и надежность механизма ценообразования.
Решение вводит статический метод, acceptable_range, чтобы решить потенциальные уязвимости, когда полностью полагаются на Curve Oracle. В то время как цены, генерируемые Curve Oracle, могут быть более точными, чем у Chainlink, они могут быть подвержены манипуляциям. С другой стороны, Chainlink надежен и проверен, считается более безопасным выбором в индустрии. Когда разница между Curve Oracle и Chainlink превышает фиксированное значение, acceptable_range служит порогом для переключения на Chainlink feed.
Стратегически, диапазон допустимых значений принимает котировки, находящиеся в пределах ±1% от котировок Chainlink. Это почти три стандартных отклонения от средней разницы между Curve и Chainlink, учитывая улучшенные ленты stETH/ETH и ETH/USD по сравнению с предыдущей лентой stETH/USD.
Derived_price - это функция или механизм, предназначенный для определения окончательной котировки для определенного актива, особенно в сценариях, связанных с оракулом Curve и оракулом Chainlink.
В описанном решении эта функция оценивает котировки как от Curve Oracle, так и от Chainlink Oracle. Исходя из наблюдаемой разницы между этими двумя ценами и того, попадает ли она в заранее определенный диапазон accepted_range или превышает его, функция выводит разные производные цены.
Здесь приведено сравнение derived_price с другими ранее отображенными источниками цен:
Прибыль от BOT можно визуализировать по этой производной цене (поскольку нет отклонения, эта цена будет точно равна Curve stETH/ETH и CL stETH/ETH), как показано ниже:
Анализ общей прибыли может раскрывать большую картину. Было выявлено шесть выбросов, и общая прибыль по каждому случаю была рассчитана до и после фильтрации выбросов.
Curve stETH/ETH и Uniswap ETH/USDC лучше всего снижают доступную прибыль для Ботов. Предлагаемая ими derived_price имеет тот же потенциал прибыли, что и текущая реализация оракула stETH, но ограничивает прибыль, предполагая, что это позволяет пользователям сэкономить примерно 35,4 ETH на анализируемых 189 транзакциях.
Из-за тяжелой зависимости от котировок наиболее ликвидных децентрализованных бирж для ончейн-деятельности и того факта, что боты MEV также следуют за теми же котировками при обмене mkUSD на LSD, точность котировок (используемых для ценообразования выкупов Оракулом) имеет первостепенное значение.
Исторические данные показывают, что цены Oracle пула Curve ближе к референсу (данные цен UniswapV3) по сравнению с ценами Chainlink. Данные указывают на то, что внедрение Oracle Curve снизит MEV для ботов и обеспечит лучшие обменные курсы для пользователей, выкупающих свои сокровища.
Хотя использование Curve Oracle в качестве самостоятельного оракула может быть заманчивым, эффективность обратной связи по ценам Curve зависит от глубины ликвидности конкретных активов и взаимодействия с пулом. Гибридное решение Oracle с использованием Curve Oracle и Chainlink Oracle может использоваться для сопоставления цен on-chain при сохранении надежности и широкого рыночного охвата, унаследованных от Chainlink Oracle.
Гибридное решение Oracle, которое мы предлагаем, оценивает стандартное отклонение (SD) для генерации derived_price. Если SD приближается к 0, это указывает на соблюдение значений ссылочной derived_price, что делает его достойным внимания. Это гарантирует, что при отклонении Curve Oracle от предопределенных порогов решение динамически переключается на более надежный источник Chainlink. Поскольку это решение почти всегда выводит котировку Curve stETH, предполагается, что активность MEV такая же, как при использовании Curve stETH/ETH, без резервного варианта.
Приложение A: Сценарии обработки данных
Сценарии, используемые для генерации анализа в этом отчете, следующие:
Приложение B: анализ остаточных значений rETH/cbETH
Другие графики rETH
Chainlink и Curve
Uniswap и Curve
Uniswap и Chainlink
Проверьте пиковый rETH
Во время наблюдения цена оракула кривой rETH несколько раз достигала пика. Это привело к резкому увеличению разрыва между ценой оракула и ценой наличного рынка. Ниже приведена более подробная диаграмма, показывающая поведение цены оракула во время нескольких всплесков цен, а также долю/литературность пула и цены оракула.
start_block = 18824000
end_block = 18827000
interval_blocks = 100
Соотношение майнинг-пула:
Цена Oracle:
start_block = 18850000
end_block = 18858000
interval_blocks = 100
Соотношение майнинг-пула:
Цена Oracle:
start_block = 18880000
end_block = 18885000
interval_blocks = 100
Соотношение пула майнинга:
Цена Oracle:
Другие графики cbETH
Chainlink и Curve
Uniswap и Curve
Uniswap и Chainlink
Проверьте пик cbETH
В течение периода наблюдения цены оракула cbETH Curve испытали несколько пиков. На несколько случаев это привело к значительным всплескам отклонения цены между ценой оракула и опорной ценой. Ниже приведена более подробная диаграмма, показывающая поведение соотношений ликвидности пула/ликвидности токенов во время этих периодов всплесков цен и поведение цен оракула.
start_block = 18693500
end_block = 18696000
интервал_блоков = 10
Соотношение майнингового пула:
Цена Oracle:
start_block = 18814000
end_block = 18816500
interval_blocks = 10
Соотношение майнингового пула:
Цена Oracle:
start_block = 18800000
end_block = 18805000
interval_blocks = 10
Соотношение пула майнинга:
Цена Oracle:
Эта статья воспроизведена с [Gatemarsbit], оригинальное название «Сравнительный анализ опциональных оракулов Prisma», авторские права принадлежат оригинальному автору [PrismaRisk], если у вас есть возражения против перепечатки, пожалуйста, свяжитесьКоманда Gate Learn, команда обработает это как можно скорее в соответствии с соответствующими процедурами.
Отказ от ответственности: Взгляды и мнения, высказанные в этой статье, представляют только личные взгляды автора и не являются инвестиционными советами.
Другие языковые версии статьи переведены командой Gate Learn, не упомянутой вGate.io, переведенная статья не может быть воспроизведена, распространена или использована в качестве плагиата.
Это исследование возникло из вызова получения достоверной информации о ценах on-chain, максимизирующей безопасность и отражающей текущие рыночные цены целевых активов. Мы специально сосредоточены на залоговых активах Prisma Finance (wstETH, rETH, cbETH и sfrxETH), а также деривативах ликвидного стейкинга на основе Ethereum (LSD). Некоторые из этих активов не имеют источников данных Chainlink (часто считающихся золотым стандартом для надежных данных о ценах), что отразилось на их интеграции с платформой Prisma.
Последняя реализация стабильного пула Curve Finance включает внутренний пул Oracle, который вычисляет экспоненциальное скользящее среднее (EMA) для получения устойчивых к вмешательству ценовых данных. В то время как интеграторы уже начали изучать использование Oracle в других приложениях DeFi, Oracle в основном используется для обеспечения безопасности залоговых средств на собственном рынке crvUSD Curve.
Основная цель этого отчета - определить, может ли оракул Curve Finance служить надежной альтернативой Chainlink для токенов ETH LSD. В этом исследовании проводится статистический анализ эффективности оракула цены Curve, сравнивая его волатильность, точность и общую производительность с ценами Uniswap (предполагается, что это точные цены на цепи).
Анализ разделен на два связанных исследования:
Анализ остаточных данных оракулов stETH: Сравнительное исследование между Chainlink и Curve с использованием исторических данных для определения отклонения Оракула относительно среднего значения и стандартного отклонения базовой цены.
Анализ погашения stETH MEV: Сравнительное исследование между Chainlink и оракулом на цепочке, используя исторические данные для изучения событий погашения на Prisma и оценки прибыльности роботов и ожидаемого поведения с использованием альтернативных Оракулов.
После анализа мы предоставляем предварительные спецификации для Оракула, ожидая улучшения отклонения цены Оракула, обеспечивая надежность Оракула. Предложенное решение может служить начальным чертежом для других исследований, нацеленных на оптимизацию Оракула.
Эффективность оракулов оценивается в конкретной среде использования Prisma: ликвидация и погашение. (Кроме того, следует отметить, что те же оракулы также используются для сбора комиссии за выпуск токенов и продажи приобретенных токенов в «токенизированный стабильный пул», чье значение увеличится после запуска.)
Производительность Oracle критически важна для пользователей Prisma, поскольку арбитражеры могут иметь возможности для извлечения прибыли из различий между ценами Oracle и рыночными ценами. Гарантируя использование наиболее точной обратной связи по ценам во время ликвидации и погашения, не жертвуя безопасностью источников ценообразования, соответствует наилучшим интересам протокола Prisma и его депозитариев.
Две функции Oracle в Prisma описаны следующим образом:
Чтобы защитить Prisma от банкротства, где позиции по долгам превышают стоимость их залога, контракт LiquidationManager выполняет логику ликвидации для всех активных TroveManagers (казначейств Prisma). Ликвидация может быть запущена одним из трех способов, в зависимости от коэффициента залога целевого счета и системного коэффициента залога.
Индивидуальное отношение залога (ICR) <= 100%: Учетная запись (казначейство) имеет недостаточный залог. Вся задолженность и залог перераспределяются между оставшимися активными казначействами, фактически социализируя убытки.
100% < ICR < Минимальное Коэффициент Залога (MCR): Казна падает ниже порога ликвидации, но может быть безопасно ликвидирована. Стабильный пул используется в качестве резерва для обработки ликвидаций (стимулирование пула ликвидации). Залог выделяется депозиторам стабильного пула. Если баланс стабильного пула недостаточен для полного погашения казны, оставшийся долг и залог перераспределяются среди оставшихся активных казен.
MCR <= ICR < Глобальное общее коэффициент обеспечения (GTCR) && GTCR < 150%: Система находится в режиме восстановления, что означает, что казначейства могут быть ликвидированы, когда CR ниже GTCR, а не MCR. Депозиты в стабильный пул используются в первую очередь для ликвидации казначейства. Обеспечение, эквивалентное стоимости долга при MCR, распределяется среди вкладчиков в стабильный пул. Оставшееся обеспечение может быть запросено владельцем казначейства.
Возможность ликвидации Prisma возрастает, когда ETH или ETH LSD испытывают значительные ценовые колебания, особенно падения, в условиях высокой волатильности рынка. В то время как сбои или манипуляции Oracle могут влиять на протокол в любое время, риск сбоя Oracle может возрасти в самые критические моменты. Обеспечивающие активы могут не обновлять цены вовремя из-за всплесков комиссий за газ, или методология ценообразования Oracle может недостаточно отслеживать увеличившуюся волатильность, что приводит к неправильной ценообразованию. Банкротства могут возрасти, потребуется перераспределение среди активных казначейств, или заёмщики могут быть несправедливо ликвидированы (в случаях, когда Oracle ошибочно сообщает цены ниже честной рыночной цены).
Арбитражники всегда могут инициировать погашение, выбрав погашение 1 мкUSD стоимостью залога за 1 доллар США (+ динамические комиссии за выкуп), начиная с казны с наименьшим коэффициентом залога в системе. Это помогает укрепить его привязку, когда цена мкUSD падает ниже 1 доллара США. Процесс погашения снижает залоговый риск целевой казны и увеличивает ее коэффициент залога. Сторона, осуществляющая погашение, платит комиссию, называемую комиссией за погашение. Диапазон комиссий за погашение находится в TroveManager и представляет собой сумму нижнего предела комиссии за погашение + базовая ставка. Переменные, хранящиеся в TroveManager, увеличиваются пропорционально выкупленному общему предложению мкUSD и линейно уменьшаются со временем. Эта динамическая комиссия, базовая ставка, регулирует прибыльную ставку погашения.
В то время как ликвидации на Prisma исторически были редкими, погашения являются обычными и требуют особого внимания со стороны Оракулов. Боты MEV активно ищут такие возможности для быстрой прибыли через флеш-кредиты.
Кроме неудобств, связанных с принудительным выкупом своих казначейств, пользователи могут столкнуться с извлечением некоторой стоимости из-за расхождений между оракулом и рыночными ценами. Неправильная ценообразование может привести к потере пользователями большего количества активов, чем необходимо, особенно когда оракул сообщает о ценах ниже справедливой рыночной стоимости. С другой стороны, цены, сообщаемые оракулом, выше справедливых рыночных цен, могут затруднить выкупы, отменяя цель механизма выкупа, обеспечивающего мкUSD фиксацию курса.
Взглянем на ведущих кандидатов на Oracle ценовые ленты на Prisma.
Chainlink - это децентрализованная сеть оракулов, которая агрегирует данные из широкого спектра рыночных источников и соединяет эти данные с смарт-контрактами. Ее архитектура основана на независимых узлах, которые извлекают и передают данные из различных бирж и API агрегаторов рыночных данных, минимизируя единичные точки отказа и повышая безопасность. Целостность данных обеспечивается криптографическими методами и механизмами консенсуса, которые проверяют точность данных перед передачей. Ее подход включает объемно-взвешенное ценообразование активов (VWAP) для агрегации справедливых рыночных значений, которые лучше всего представляют цены активов на месте.
Сети узлов регулярно (по пульсу) или на основе порогов отклонения цен выталкивают цены на цепь. Это ограничение, вызванное высокими комиссиями за газ на основной сети, может сделать обновление цен дорогостоящим и привести к увеличению задержки, тем самым ухудшая производительность Оракула. Стоимость поддержки таких Оракулов может быть высокой, особенно в периоды высокой волатильности, что делает своевременные обновления Оракула критически важными.
Недавние реализации пулов Curve (пулы StableSwap и CryptoSwap) включают расчеты цен EMA, предоставленные функциями-геттерами, такими как price_oracle()
. Эти пулы не полагаются на внешних оракулов, а вместо этого рассчитывают цены активов относительно токена в индексе 0 пула на основе их собственной внутренней торговой деятельности. EMA увеличивает затраты на манипулирование за счет сглаженных корректировок цен, находя баланс между устойчивостью к манипуляциям и отклонением цены от текущей. У каждого пула есть ma_exp_time
которую можно настроить через голосование Curve DAO.
Как указано в документации Curve Oracle, EMA Oracle активно находится в процессе разработки:
“Если вы хотите использовать функциональность ‘оракула цен’ Curve или любого оракула цен для предоставления ценовых данных on-chain в вашем децентрализованном приложении, которое вы строите, мы рекомендуем вам проявить особую осторожность.”
Различные реализации пулов модифицируют версии кода EMA Oracle, поэтому интеграторы должны понимать реализацию Oracle целевого пула.
В ноябре 2023 года была обнаружена ошибка, затрагивающая пул Oracle, во время развертывания реализации пула stableswap-ng. Эта ошибка была обнаружена вскоре после развертывания реализации пула yAudit во время вторичной проверки. Это стало поводом для предложения обновления реализации и устаревания нескольких затронутых пулов. Средства не находились под угрозой, но этот случай подчеркнул активное развитие оракулов Curve pool и потенциал несоответствий между пулами, несмотря на обширные проверки, и возможность продолжения существования ошибок, которые могут сделать оракулы уязвимыми к манипуляциям или неточностям.
Третья часть этого отчета - анализ выкупа wstETH TroveManager. Учитывая значительное влияние выкупа на пользователей Prisma, в этом разделе представлены наблюдения за историческими выкупами, которые будут оценены в сравнении с альтернативным Curve EMA Oracle в сравнительном анализе.
По запросу событий выкупа в TroveManager wstETH обнаружено более 200 сделок по выкупу, из них 190 идентифицированы как сделки BOT (метод идентификации сделок, выполненных ботами, будет объяснен позже в этом же разделе). Ниже приведена визуализация, показывающая частоту этих сделок со временем.
Источник: Dune query_3402461
Есть всего 3 бота, которые часто обменивают mkUSD:
Источник: Dune query_3402461
Каждый БОТ следует похожему общему процессу приобретения mkUSD и их погашения. Ниже приведена одна из транзакций БОТ, раскрывающая некоторые полезные идеи:
Источник: Phalcon Tx Explorer
Шаблон транзакции BOT можно дополнительно разделить следующим образом:
Получите мгновенные кредиты от Uniswap V3: USDC.
Конвертируйте USDC в mkUSD, используя Кривая.fi Factory USD Metapool: Prisma mkUSD.
Обменять mkUSD на wstETH на TroveManager wstETH.
Распакуйте wstETH в stETH на wstETH.
Обменять stETH на ETH в пуле Curve stETH/ETH.
Wrap ETH, погасить кредит и распределить прибыль и комиссии.
Прибыльность MEV зависит от разницы в ценах на шагах 2, 3 и 5:
2: По мере снижения цены mkUSD увеличивается доходность выкупа.
3: Поскольку динамические комиссии за погашение уменьшаются как функция недавних количеств погашения и времени с момента погашения, увеличивается прибыльность погашения.
-5: По мере увеличения проскальзывания на биржах активов (например, stETH), уменьшается прибыльность восстановления. Такие активы, как stETH, могут быть непосредственно обменены на базовый ETH, но для этого процесса требуется период ожидания, что делает ликвидность на вторичном рынке критически важной.
Prisma использует механизм для ограничения возможностей получения прибыли от погашения mkUSD на wstETH через динамические комиссии. Шаг 3 включает в себя динамические комиссии для предотвращения частых и чрезмерных погашений. Несмотря на этот механизм, погашения все равно могут происходить из-за неправильной ценообразования Oracle для извлечения MEV. Котировки Oracle для погашения mkUSD могут предложить владельцам казначейства неоптимальные обеспечительные ставки, что приведет к отрицательному пользовательскому опыту.
Предложение о изменении ценообразования Oracle Prisma для stETH было утверждено. Изначально Prisma использовала оракул Chainlink stETH/USD с порогом отклонения 1% для TroveManager wstETH. Было выяснено, что использование комбинации оракулов Chainlink stETH/ETH и ETH/USD может привести к улучшению, с порогом отклонения 0,5% для каждого оракула.
Пожалуйста, обратитесь к различию между новым Оракулом и старым Оракулом с разрешением 15 блоков:
Источник: Диаграмма от @wavey
Было замечено, что, когда торговая цена mkUSD падает ниже закрепленной ставки, происходят чрезмерные погашения из-за отклонения Oracle, превышающего 1%. В этих случаях мы обнаружили, что динамические комиссии были недостаточны, чтобы предотвратить излишние погашения, вызванные отклонениями в ценообразовании. Пожалуйста, обратитесь к корректировке комиссий за погашение для событий погашения ниже.
Источник: диаграмма от @wavey
Эти погашения могут повлечь косвенные издержки для пользователей Prisma, поскольку они могут получать невыгодные курсы при погашении своих кладов. Анализ Wavey показывает, что оракул stETH/USD более подвержен отклонениям по сравнению с комбинациями оракулов, подтвержденными в вышеуказанных данных. Временные отклонения, превышающие 1,2%, создали возможности для MEV ботов для эксплуатации.
Предложение об изменении Оракула (PIP-004) было выполнено 17 ноября 2023 года в 735 PM +UTC, наряду с этой транзакцией. Исходя из диаграммы цен mkUSD ниже и даты исполнения предложения, можно заметить, что после исполнения предложения реальная цена mkUSD в USDC уменьшилась. Уменьшение прибыльности погашений из-за улучшений оракулов может привести к снижению уровня привязки.
Источник: Dune query_5685458
Также следует учитывать другие влияющие факторы, включая ограничения модели процентной ставки протокола, варианты использования mkUSD и несогласованные меры стимулирования. Еще одно значительное предложение, ограничивающее погашение, - PIP-019, реализованное 31 января. Это предложение увеличило базовую комиссию за погашение для всех TroveManagers до 1%-1.5%, уменьшая упругость привязки mkUSD, но за счет снижения риска погашения для владельцев хранилищ Prisma.
Анализ направлен на оценку производительности реализованных оракулов Prisma и оценку гипотетической производительности альтернативных он-чейн оракулов Curve EMA с использованием исторических данных. Результаты исследования предоставят первоначальное представление о поведении оффчейн и он-чейн оракулов, обеспечивая более детальную оценку в последующих исследованиях.
Цель данного анализа - определить, обеспечивает ли текущий оракул наиболее оптимальное решение производительности, или улучшения могут быть внесены путем реализации ончейн или гибридных решений с использованием оракула пула EMA Curve.
Анализ будет специально сосредоточен на stETH, поскольку это самый часто используемый LSD, с зрелой ценой Chainlink и глубокой ликвидностью в пуле Curve. Был проведен анализ других залогов, перечисленных на Prisma, и результаты предоставлены в Приложении B к отчету для справки.
Сравнительный анализ включает оценку степени соответствия между исходными данными испытания и эталонным набором данных. В данном случае рассматриваются два набора данных: исходные данные испытания и эталонный набор данных. Ожидается, что данные испытания должны тесно соответствовать эталонным данным, однако могут возникать отклонения.
Для количественной оценки согласованности мы рассматриваем остатки, которые в основном представляют собой разницу между исследовательскими данными и опорными данными. Анализ остатков направлен на выявление закономерностей или тенденций в этих различиях.
При анализе остатков (отклонений от эталонных значений) наблюдения производятся на основе стандартного отклонения остатков. Стандартное отклонение (SD) - это статистическая мера, используемая для количественной оценки изменчивости или разброса набора значений. Оно указывает на распределение значений вокруг среднего (среднего значения). Маленькое стандартное отклонение подразумевает, что точки данных имеют тенденцию находиться близко к среднему значению, в то время как большое стандартное отклонение указывает на то, что точки данных распределены на более широком диапазоне.
В нашем случае среднее значение, близкое к 0, желательно, поскольку это указывает на то, что предоставленные цены не завышают или не занижают опорные цены. Однако среднее значение, близкое или равное 0 с относительно высоким стандартным отклонением, указывает на значительные колебания, которые нежелательны, поскольку они соответствуют серьезным ошибкам в ценообразовании. Оракул средним значением ноль и минимальным стандартным отклонением является идеальным результатом, указывающим на то, что информация точно отслеживает текущие цены.
Для мониторинга и оценки точности активности цен оракула на цепочке котировки, полученные с наиболее ликвидных торговых площадок (исключая Curve) служат в качестве ссылки для резидуального анализа. Конкретно, котировки валютной пары LSD/ETH на Uniswap являются основными опорными точками в данном сценарии.
Наш анализ включает в себя две стратегии вычисления цен stETH Chainlink. Это делается потому, что было обнаружено, что отклонение оригинальной цены Chainlink stETH/USD выше, чем отклонение при использовании stETH/ETH + ETH/USD. Оракулы были обновлены в соответствии с предложениями управления. Впоследствии анализ, включающий улучшенную цену stETH/ETH Chainlink в ETH, называется stETHv1, в то время как комбинированная цена stETH/USD + ETH/USD (воспроизведение первоначальной производительности оракула stETH, стандартизированная до ETH) называется stETHv2.
Для аналитических целей данные за последний квартал 2023 года были получены из всех соответствующих активов (с блока 18331000 по блок 18931000, с разрешением 250 блоков для набора данных). Это создает набор данных, содержащий 2401 точек данных для всех активов.
Основным активом, находящимся под рассмотрением, является stETH, поскольку он является типом залога, в настоящее время принимаемым Prisma, с возможностью использования как данных Chainlink feed, так и пула Curve StableSwap-ng (см. Приложение B для анализа rETH и cbETH, которые используют более старую реализацию пула CryptoSwap). Вся информация была получена путем запроса цен для указанного диапазона блоков.
Цены Oracle анализируются из следующих источников:
Пул ликвидности Curve
Обратная связь о цене Chainlink
Адрес пула майнинга Uniswap в качестве агента ссылки на текущую цену следующий:
Цена Uniswap на месте
Для стандартизации LSD к его базовому ETH мы используем внутренний обменный курс LSD/ETH:
Внутренний курс обмена LSD/ETH
В этом разделе мы сравним точность потока цен Chainlink stETH с Curve.
Chainlink stETHv1 Feed vs. Curve
Chainlink: stETH/ETH feed
Кривая: пул stETH/ETH
Ниже приведено прямое сравнение цен на stETH от Chainlink и Curve. Из-за 24-часового цикла сердечного ритма Chainlink stETH/ETH цена колеблется каждые несколько блоков. По сравнению, флуктуации более заметны в потоке Chainlink (лучше визуализируются в потоке Chainlink stETH/USD) по сравнению с Curve, поскольку Curve использует время 10-минутной EMA (ma_exp_time) для вычисления своей цены.
If we subtract the price from Curve from the price from Chainlink, we will obtain the residuals, as shown below:
Среднее отклонение составляет ~-0.000305.
Важным наблюдением здесь является то, что Curve Oracle немного завышает свои ценовые данные по сравнению с Chainlink.
Chainlink stETHv2 и Curve
Chainlink:stETH/USD feed / ETH/USD feed
Curve: пул stETH/ETH
Ниже приведено сравнение цен от альтернативных цепочек Chainlink, нормализованных к ETH (stETH/USD и ETH/USD), по сравнению со stETH Curve. Поскольку у Chainlink stETH/USD порог отклонения составляет 1% (по сравнению с 0.5% в потоке stETH/ETH), цена проявляет большее отклонение вокруг якорной цены.
Как было отмечено ранее, флуктуации цены stETH/USD Chainlink более выражены по сравнению с Curve.
Среднее отклонение составляет ~-0.000171.
В зависимости от масштаба этот поток имеет большие остатки, т.е. большую волатильность, чем stETH/ETH.
В этом разделе мы сравним историческую точность ценового канала Chainlink stETH с опорной ценой от Uniswap.
Предполагая, что данные о ценах пула UniswapV3 служат надежным прокси для рыночных цен, мы можем сравнить ранее полученные исходные данные с целью проверить близость данных от Chainlink Oracle к эталонным значениям.
Uniswap Spot vs. Chainlink stETHv1
Chainlink: stETH/ETH feed
Uniswap: бассейн wstETH/ETH / внутренний обменный курс wstETH/stETH
Здесь фактическое отклонение между рыночной ценой Uniswap и Chainlink stETH/ETH:
Среднее остаточное значение = 0.000415
Стандартное отклонение разницы цен = 0.000601
Uniswap Spot vs. Chainlink stETHv2
Chainlink: stETH/USD feed / ETH/USD feed
Uniswap: пул wstETH/ETH / внутренний обменный курс wstETH/stETH
Вот фактическое отклонение между Uniswap stETH и Chainlink stETH (stETH/USD):
Среднее значение разницы в цене = 0.000281
Стандартное отклонение разницы цен = 0.002747
Здесь мы сравниваем Chainlink stETHv1 (т. е. stETH/ETH) и stETHv2 (т. е. stETH/USD) с данными Uniswap, и результаты показывают, что отклонение stETHv2 значительно выше, чем у stETHv1.
Тот же самый наблюдение было сделано также в предложении по управлению Prisma (PIP-004), когда оракул переключился с stETH/USD на stETH/ETH + ETH/USD для уменьшения отклонений в ценовой подаче.
В этом разделе мы сравним историческую точность оракула stETH Curve с референтной ценой на Uniswap.
Предполагая, что данные о ценах в пуле UniswapV3 служат надежным прокси для рыночных цен, мы можем сравнить ранее полученные исходные данные для проверки близости потока Curve Oracle к опорным значениям.
Uniswap Spot vs. Curve
Curve: пул stETH/ETH
Uniswap: пул wstETH/ETH / внутренний обмен wstETH/stETH
Исходя из аналогичного анализа остатков, как указано выше, мы получаем следующие метрики для сравнения с ранее установленным эталоном:
Среднее различие в цене = 0.000110.
Стандартное отклонение разницы цен = 0.000141.
Как видно, средняя цена, сообщаемая Curve, немного ниже, чем у Uniswap, с значительно меньшим стандартным отклонением по сравнению с любым источником из Chainlink.
При сравнении этих показателей мы обнаруживаем, что отклонение данных Chainlink значительно превышает отклонение Curve при ссылке на данные Uniswap в качестве прокси для текущих цен.
Поскольку вышеуказанные наблюдения основаны на отклонениях от каждого источника цен, возможно, что кормовая система Curve Oracle покажет положительные отклонения, в то время как кормовая система Chainlink покажет отрицательные отклонения, и наоборот. Этот сценарий полностью устраняется, поскольку диапазоны отклонений кормовых систем Chainlink и Curve Oracle меньше по сравнению с диапазонами отклонений Uniswap & Chainlink и Uniswap & Curve.
Ниже приведена остаточный анализ, проведенный по собранным данным. Среднее значение остатка, умноженное на 100, дает средний процент отклонения целевого актива от ссылочного (в долларовом выражении по сравнению с ценами на ETH, выраженными в долларах).
Таблица напрямую сравнивает относительную производительность Chainlink и Curve с ссылкой на Uniswap в терминах среднего и стандартного отклонения для каждого актива. Во всех случаях Curve проявляет более низкие значения среднего и стандартного отклонения. Множитель точности показывает относительную точность каждого наблюдаемого значения.
Основные моменты здесь следующие:
Анализ направлен на сравнение цен на реализацию событий погашения в wstETH TroveManager с гипотетическими ценами, указанными с использованием исторических данных альтернативными цепными оракулами. Результаты исследования предоставят первоначальное представление о поведении внебиржевых и цепных оракулов, обеспечивая более детальную оценку в последующих исследованиях.
Цель этого анализа - определить, обеспечивает ли текущий оракул лучшее решение производительности в конкретных сценариях погашения или можно ли улучшить его путем внедрения ончейн или гибридных решений с использованием оракулов пула Curve EMA.
Этот анализ будет специально сосредоточен на stETH, поскольку это наиболее часто используемый LSD и имеет зрелые ценовые каналы Chainlink и глубокую ликвидность в пуле Curve. В рамках исследования будут агрегированы все случаи погашения, сравнивая реализованные цены оракула stETH с несколькими альтернативными ценами оракула, выраженными в USD, и используя цену оракула stETH/ETH на Curve.
Для этого анализа цена реализованного stETH рассчитывается путем деления искупленной суммы mkUSD на количество потерянного stETH для Управляющего Trove в виде wstETH. Чтобы определить количество stETH, нам нужно учитывать полученные wstETH от искупления плюс потраченные wstETH на комиссии и преобразовывать их в stETH. Если какой-либо альтернативный источник постоянно предлагает более низкие прибыли для искупителей, мы можем сказать, что их производительность MEV лучше, чем фактическая цена.
TroveManager wstETH используется для извлечения всех хэшей транзакций при получении mkUSD в обмен на него. Транзакции, в которых адрес, погашающий mkUSD, получает и сжигает mkUSD, считаются транзакциями BOT. Подробные запросы для событий погашения можно найти здесь: Dune query_3352919. Этот запрос необходим для извлечения всех данных из транзакций BOT.
Запрос Dune используется для идентификации транзакций BOT, которые получают все значения хэшей транзакций, реализованную обменную ставку wstETH для искупления mkUSD и номер блока событий искупления. Номера блоков, полученные из запроса, используются в качестве входных данных для запроса следующих данных, которые используются для сравнения текущей реализации с изменениями в цене корма Curve stETH:
Исходя из вышеуказанных данных, мы можем построить три ценовых ленты, используя цену Curve Oracle stETH/ETH, и объединить их с ETH/USD, чтобы получить stETH/USD. После этой операции у нас есть следующие данные для визуализации:
Вышеуказанные данные предоставляют цену stETH в USD, которая может быть проанализирована на основе реализованных цен stETH от всех транзакций BOT. Реализованный stETH (в USD) просто используется для расчета цены stETH для каждого mkUSD, предоставленного во время погашения.
Ниже приведены 4 источника цен на stETH для блока торговли BOT (1 ссылочный и 3 альтернативных, о которых упоминалось выше). Реализованные цены - это цены от реализованных ценовых оракулов (т. Е. Chainlink). Это сравнивается с 3 источниками, использующими Curve stETH/ETH в качестве основы. Здесь более высокая цитата приведет к уменьшению стоимости stETH, обмениваемого на mkUSD, и наоборот.
Исходя из вышеизложенной информации, мы можем моделировать относительное количество stETH, полученное при погашении mkUSD, и нормализовать его на основе фактического количества, полученного от существующего оракула. На следующем графике отображается количество stETH, полученное из mkUSD до взимания комиссий, и обрабатываются данные для удаления выбросов для улучшения визуализации:
Анализ показывает явный тренд: при комбинировании Curve stETH/ETH с Uniswap ETH/USDC и Chainlink ETH/USD количество доступного stETH для погашения mkUSD уменьшается. Следовательно, уменьшение количества единиц stETH на один mkUSD приводит к уменьшению прибыли BOT. Предоставленная визуализация иллюстрирует сравнение прибыли BOT при различных предполагаемых ценах фида и фактической цены фида, исключая комиссии:
Очевидно, что комбинация Curve stETH/ETH, Uniswap ETH/USDC и Chainlink ETH/USD снижает прибыльность погашений по сравнению с реализованной ценой корма.
Признавая врожденные риски, связанные исключительно с оракулом Curve, особенно в периоды низкой ликвидности или ликвидностных флуктуаций, предлагаемое решение стратегически интегрирует оракул Chainlink в качестве меры безопасности (т. е. запасного плана) в случае отклонений. Учитывая ничтожную возможность предоставления неверных данных Chainlink, он может служить надежным вариантом резервного копирования.
Это решение действует как фильтр, учитывая как цены Curve, так и Chainlink. Условия устанавливаются в рамках функции, служащей переключателем. Для разработки этого условия вводится концепция допустимого диапазона. Этот диапазон представляет собой допустимую разницу между ценами оракулов Chainlink и Curve. Когда наблюдаемая разница превышает этот диапазон, это указывает на потенциальный перекос или манипуляцию в данных оракула Curve. В таких случаях функция смягчает потенциальные риски, отдавая предпочтение более безопасным ценам Chainlink. Напротив, когда разница находится в пределах допустимого диапазона, функция оперирует на точности и точности оракула Curve.
Стратегия с двойным подходом минимизирует зависимость от одного источника данных, тем самым повышая общую устойчивость и надежность механизма ценообразования.
Решение вводит статический метод, acceptable_range, чтобы решить потенциальные уязвимости, когда полностью полагаются на Curve Oracle. В то время как цены, генерируемые Curve Oracle, могут быть более точными, чем у Chainlink, они могут быть подвержены манипуляциям. С другой стороны, Chainlink надежен и проверен, считается более безопасным выбором в индустрии. Когда разница между Curve Oracle и Chainlink превышает фиксированное значение, acceptable_range служит порогом для переключения на Chainlink feed.
Стратегически, диапазон допустимых значений принимает котировки, находящиеся в пределах ±1% от котировок Chainlink. Это почти три стандартных отклонения от средней разницы между Curve и Chainlink, учитывая улучшенные ленты stETH/ETH и ETH/USD по сравнению с предыдущей лентой stETH/USD.
Derived_price - это функция или механизм, предназначенный для определения окончательной котировки для определенного актива, особенно в сценариях, связанных с оракулом Curve и оракулом Chainlink.
В описанном решении эта функция оценивает котировки как от Curve Oracle, так и от Chainlink Oracle. Исходя из наблюдаемой разницы между этими двумя ценами и того, попадает ли она в заранее определенный диапазон accepted_range или превышает его, функция выводит разные производные цены.
Здесь приведено сравнение derived_price с другими ранее отображенными источниками цен:
Прибыль от BOT можно визуализировать по этой производной цене (поскольку нет отклонения, эта цена будет точно равна Curve stETH/ETH и CL stETH/ETH), как показано ниже:
Анализ общей прибыли может раскрывать большую картину. Было выявлено шесть выбросов, и общая прибыль по каждому случаю была рассчитана до и после фильтрации выбросов.
Curve stETH/ETH и Uniswap ETH/USDC лучше всего снижают доступную прибыль для Ботов. Предлагаемая ими derived_price имеет тот же потенциал прибыли, что и текущая реализация оракула stETH, но ограничивает прибыль, предполагая, что это позволяет пользователям сэкономить примерно 35,4 ETH на анализируемых 189 транзакциях.
Из-за тяжелой зависимости от котировок наиболее ликвидных децентрализованных бирж для ончейн-деятельности и того факта, что боты MEV также следуют за теми же котировками при обмене mkUSD на LSD, точность котировок (используемых для ценообразования выкупов Оракулом) имеет первостепенное значение.
Исторические данные показывают, что цены Oracle пула Curve ближе к референсу (данные цен UniswapV3) по сравнению с ценами Chainlink. Данные указывают на то, что внедрение Oracle Curve снизит MEV для ботов и обеспечит лучшие обменные курсы для пользователей, выкупающих свои сокровища.
Хотя использование Curve Oracle в качестве самостоятельного оракула может быть заманчивым, эффективность обратной связи по ценам Curve зависит от глубины ликвидности конкретных активов и взаимодействия с пулом. Гибридное решение Oracle с использованием Curve Oracle и Chainlink Oracle может использоваться для сопоставления цен on-chain при сохранении надежности и широкого рыночного охвата, унаследованных от Chainlink Oracle.
Гибридное решение Oracle, которое мы предлагаем, оценивает стандартное отклонение (SD) для генерации derived_price. Если SD приближается к 0, это указывает на соблюдение значений ссылочной derived_price, что делает его достойным внимания. Это гарантирует, что при отклонении Curve Oracle от предопределенных порогов решение динамически переключается на более надежный источник Chainlink. Поскольку это решение почти всегда выводит котировку Curve stETH, предполагается, что активность MEV такая же, как при использовании Curve stETH/ETH, без резервного варианта.
Приложение A: Сценарии обработки данных
Сценарии, используемые для генерации анализа в этом отчете, следующие:
Приложение B: анализ остаточных значений rETH/cbETH
Другие графики rETH
Chainlink и Curve
Uniswap и Curve
Uniswap и Chainlink
Проверьте пиковый rETH
Во время наблюдения цена оракула кривой rETH несколько раз достигала пика. Это привело к резкому увеличению разрыва между ценой оракула и ценой наличного рынка. Ниже приведена более подробная диаграмма, показывающая поведение цены оракула во время нескольких всплесков цен, а также долю/литературность пула и цены оракула.
start_block = 18824000
end_block = 18827000
interval_blocks = 100
Соотношение майнинг-пула:
Цена Oracle:
start_block = 18850000
end_block = 18858000
interval_blocks = 100
Соотношение майнинг-пула:
Цена Oracle:
start_block = 18880000
end_block = 18885000
interval_blocks = 100
Соотношение пула майнинга:
Цена Oracle:
Другие графики cbETH
Chainlink и Curve
Uniswap и Curve
Uniswap и Chainlink
Проверьте пик cbETH
В течение периода наблюдения цены оракула cbETH Curve испытали несколько пиков. На несколько случаев это привело к значительным всплескам отклонения цены между ценой оракула и опорной ценой. Ниже приведена более подробная диаграмма, показывающая поведение соотношений ликвидности пула/ликвидности токенов во время этих периодов всплесков цен и поведение цен оракула.
start_block = 18693500
end_block = 18696000
интервал_блоков = 10
Соотношение майнингового пула:
Цена Oracle:
start_block = 18814000
end_block = 18816500
interval_blocks = 10
Соотношение майнингового пула:
Цена Oracle:
start_block = 18800000
end_block = 18805000
interval_blocks = 10
Соотношение пула майнинга:
Цена Oracle:
Эта статья воспроизведена с [Gatemarsbit], оригинальное название «Сравнительный анализ опциональных оракулов Prisma», авторские права принадлежат оригинальному автору [PrismaRisk], если у вас есть возражения против перепечатки, пожалуйста, свяжитесьКоманда Gate Learn, команда обработает это как можно скорее в соответствии с соответствующими процедурами.
Отказ от ответственности: Взгляды и мнения, высказанные в этой статье, представляют только личные взгляды автора и не являются инвестиционными советами.
Другие языковые версии статьи переведены командой Gate Learn, не упомянутой вGate.io, переведенная статья не может быть воспроизведена, распространена или использована в качестве плагиата.