DeFi
Yesterday

Вводный курс DeFi для всех. Занятие №02. Ценовые оракулы

Курс для всех

Дисклеймер

Данный раздел составлен моим коллегой TW4Ys.

Что такое оракул?

Оракул - это источник данных о цене.

Эти данные используются DeFi-протоколами, особенно протоколами заимствования и кредитования, которые полагаются на внешние ценовые данные для ликвидации.Общие оракулы берут данные из таких источников, как chainlink, redstone_defi и PythNetwork, etc.

Наравне с термином Price Oracle встречается термин Price Feed.

Типы оракулов

Существует два основных типа оракулов:

  1. Оракулы с рыночным курсом используют индекс цен из различных источников, обычно смешанных между децентрализованными биржами (DEXs) и централизованными биржами (CEXs).
  2. Оракулы с обменным курсом используют внутреннюю стоимость актива, обычно определяемую тем, чем этот актив обеспечен.

Оракулы с рыночным курсом (market price oracle)

Например оракул Redstone для $ETH использует в данный момент ШЕСТНАДЦАТЬ источников ценовой информации для создания единой составной индикативной цены, которую протоколы могут использовать по мере необходимости.

Данные

Оракулы с рыночным курсом чувствительны к давлению продавцов и покупателей на цену.

Пример: Если цена wstETH отклонится на 5%, а у вас кредитное плечо 10x в паре wstETH/ETH, ВАС ЛИКВИДИРУЮТ, если этот протокол и рынок используют оракул с рыночным курсом.

Оракулы с обменным курсом (redemption price oracle)

У этого типа оракулов есть три популярных названия:

  1. Оракул чистой стоимости активов (NAV Oracle);
  2. Фундаментальный оракул (fundamental oracle);
  3. Оракул обменного курса (exchange rate oracle).

Все они означают одно и то же: цена определяется НЕ рыночным курсом, а СТОИМОСТЬЮ актива, обычно основанной на том, чем этот актив обеспечен.

Они чаще всего ассоциируются с LST (токены с ликвидным стейкингом - Liquid Staked Tokens) и LRT (токены с ликвидным рестейкингом - Liquid Restaked Tokens), потому что оба эти производных инструмента полностью обеспечены застейканными или рестейканными формами $ETH.

Вот пример оракула wstETH/stETH от Chainlink, который использует внутреннее обеспечение ETH стейкинга stETH для определения стоимости wstETH.

Пример 0

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

Как определить тип оракула?

Самое простое - внимательно посмотреть в приложении. Например рынок sUSDe/DAI на Morpho Labs:

Пример 1

Здесь можете ясно видеть, что на рынке sUSDe/DAI используется оракул обменного курса, что означает, что вас не ликвидируют из-за отклонений. Однако это не значит, что каждый оракул Morpho - оракул обменного курса.

Вот другой рынок Morpho sUSDe, где заимствуется USDT, и мы видим оракул Redstone вместо "Exchange Rate".

Пример 2

Когда вы нажимаете на Base Feed1 (sUSDe), вы перенаправляетесь на контракт в Etherscan. Перейдите на вкладку “Contract” и потом “Read as Proxy”:

Пример 3

Первый явный признак того, что это оракул с рыночным курсом - отсутствие функций в разделе "Read as Proxy" и наличие упоминания Redstone Price Feed в поле description. Оракул обменного курса будет иметь некоторые функции, которые выводят определённую информацию.

Silo Finance делает это очень просто. Здесь вы можете увидеть, что оракул $ezETH указан внизу информации о залоге и долге для каждого рынка.

Пример 4

Если мы нажмём на оракул Chainlink и перейдём в "Contract", вы увидите, что на этот раз у нас есть множество функций для чтения.

Контракт 0

Это отличный признак того, что используется оракул обменного курса, но лучше убедиться. Нажать на "description".

Контракт 1

Проверить функцию "latestAnswer"

Контракт 2

Нажимаем на число и определяем значение в ETH:

Контракт 3

Cверяем 1.0408539017392788 с фактическим обменным курсом (например с Coinmarketcap).

Данные

Aave также позволяет легко просматривать оракулы. Нажав на детали залога, мы можем увидеть ценовой оракул вверху.

Данные

Нажмите на "Read Contract", чтобы посмотреть, есть ли какие-либо функции, которые расскажут нам об оракуле.

Контракт

"weETH / eETH (ETH) /USD" говорит о том, что используется соотношение weETH к ETH и используют оракул ETH к USD для долларовой цены. В этом же контракте смотрим функцию "RATIO PROVIDER".

Данные контракта

Если мы нажмём на этот адрес и перейдём в "Read Contract", мы найдём описание "Description" с указанием типа оракула

Данные

и "latestAnswer", подтверждающие, что это обменный курс между weETH и eETH.

Данные

НО, если оракул weETH использует оракул eETH<>USD, то вы всё ещё можете быть ликвидированы, если eETH отклонится, поэтому нам нужно знать, что они используют для оценки актива в USD. Возвращаемся в контракт AAVE в котором смотрели функцию "RATIO PROVIDER" и проверяем функцию "BASE_TO_USD_AGGREGATOR", чтобы проверить контракт, который оценивает базовый (eETH) в USD.

Данные

Переходим к указанному контракту и проверяем описание:

Данные

Это фид ETH<>USD: это означает, что этот оракул weETH использует обменный курс weETH<>eETH, а затем оценивает eETH так, как если бы это был ETH.

Выводы

Если в "Read Contract" или "Read as proxy" есть функции получения курса типа

  • get_rate(),
  • latestAnswer
  • или подобные, которые выдают значения, похожие на курс,

это, вероятно, оракул обменного курса.

Найти описание функций получения обменного курса часто можно в документации проекта. Если в "Read Contract" или "Read as proxy" нет таких функций, это, вероятно, оракул с рыночным курсом.

Всегда проверяйте функцию "description" для дополнительной проверки. Существуют протоколы, которые не делают оракулы легко доступными для просмотра.

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