DeFi
Today

DeFi. Morpho - идеальный лендинг, а AAVE плох? За-против. Часть I.

Morpho

Дисклеймер

Не собираюсь дискредитировать Morpho, AAVE или др. протоколы: сам использую каждый из них и фактически с момента основания этих протоколов и приложений, вокруг них построенных.

Моя задача показать, что изолированные пулы имеют свои недостатки как для кредиторов (тех, кто даёт деньги), так и для заёмщиков (тех, кто берёт деньги). И не более. И риски эти разные, потому что архитектура у протоколов - тоже разная.

Методология

За основу взял 3 простых способа приведения доказательств (пруфов) к тезисам:

  1. Уже случившиеся взломы;
  2. Не применявшиеся, но кем-то найденные уязвимости;
  3. Теоретические “пробои”, обозначенные в документах прямо или косвенно.

Собственно, поэтому в статье, как всегда, много ссылок.

Аллегория

Поскольку нужно простое объяснение ряда сложных вещей, буду использовать следующие аналогии:

  1. AAVE - это, как правило, огромный торговый центр, где можно купить всё: от хлеба до духов Dior;
  2. Morpho - это тоже здание рынка, но где, например, продают только фрукты (правильней сказать даже - только яблоки, но это совсем уж футуристичный сценарий, т.к. потом добавим, что они ещё и одного сорта и т.п., поэтому остановимся на фруктовом рынке).

Собственно, входы в эти рынки-здания могут быть разные:

  1. Платные - через вольты с кураторами;
  2. Бесплатные - чистые p2p.

Опять же - условно. Но суть том, что чем больше платных входов будет у Morpho - тем более не защищённым будет бесплатный вход, где будет всё больше очередей и давки. Это не очевидно сейчас по простой причине: пока ТЦ и крытые специализированные рынки есть вместе и ТЦ превалируют. В обратной ситуации крипторынок попросту не был.

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

TL;DR

Списком - тезисы:

  1. Данная статья появилась из довольно простого вопроса: "Подскажите, какие дыры вы видите в Morpho, для заёмщиков?". Оказалось, что свои ответы мне нужно развернуть, чтобы они обрели нужные детали;
  2. Для меня выбор “1 протокола, что правит всеми”, - нарушение децентрализации само по себе;
  3. AAVE v. 3 со всеми риск-менеджерами и разработчиками был хорош, но не AAVE v.4 и не то, что происходит сейчас внутри проекта: проект не стал плох, но стал куда опаснее;
  4. При этом Morpho не превратился после взлома rsETH в идеальный протокол: он просто менее ликвиден, чем AAVE: $26B против $6B до взлома, но главное - это ликвидность по обёртке;
  5. Атаки на AAVE сдерживаются 3-мя слоями: 1) протокол; 2) ДАО; 3) команда; на Morpho по сути слои независимы и поэтому модель швейцарского сыра не применима: всегда 1 слой защищает нас, тогда как дыры могут быть общими (это парадокс, но факт);
  6. Морфо, наконец, уже подвергался атакам/взломам и о них - речь ниже.
  7. Главное понять, в чём Морфо хорош (и лучше ААВЕ), а в чём - нет.

Теперь в деталях.

Базовый ответ на все вопросы - 42

Трилемма безопасности

Любой проект строится на 3х столпах:

  1. Техническая безопасность;
  2. Социальная (она же - организационная);
  3. Экономическая.

Мой тезис базовый таков: чем больше развиты 2 аспекта - тем больше же страдает и 3-й. Скажем, у AAVE технология отстала от современных лендинговых протоколов, зато социальный аспект (ДАО + команды) ушёл далеко вперёд, как и экономический (не только пресловутый TVL, но и он тоже же).

Поэтому там, где атаки раньше шли только на 1 вектор - технический, сейчас всё больше раскрываются другие: скажем, взломы Drift, Bybit, rsETH, Ronin, Orbit Chain и подобные - это всё взломы больше социальные, чем технические, но часто и экономические тоже.

Поэтому лендинги навроде Morpho, кот. выводят на уровень технологии ряд экономических защит поступают также, как это делали в The DAO: превращают баг в фичу, но никто не сказал, что инверсия в этом случае невозможно.

Отсюда простой вывод: AAVE сейчас сидит с заморозкой из-за "пуловой" архитекутуры лендинга, а Morpho щеголяет тем, что лишь 2 вольта из 500 с rsETH оказались не удел.

Но на деле, как мне кажется, всё куда глубже: технологическая защита - лишь усиливает атаки экономического типа (социальные мы рассматривать не будем, т.к. они во всех протоколах примерно равные).

Общие риски

Перечислю ниже то, на что обращает внимание сам Морфо, а также на ряд очевидных аспектов в целом по DeFi: без них начать было бы не правильно.

Риск ликвидации

Сразу скажу, что ошибочно думать, что этого риска здесь нет. Есть. Ликвидации устроены иначе, чем в классическом AAVE-подходе, но они есть.

В частности, если коэффициент кредитования (LTV - Loan-to-Value) превышает установленный лимит рынка (LLTV - Liquidation Loan-to-Value), залог заёмщика может быть принудительно продан для погашения долга. Поэтому утверждение, с которого началась эта статья, о том, что у заёмщиков на Morpho рисков нет, не верно. Есть. Просто они выставлены иначе, чем на AAVE.

Рыночная волатильность

В связи с тем, что Morpho работает с крипто-активами, резкое снижение стоимости залоговых активов может привести к тому, что LTV станет выше критического уровня, что вызовет ликвидацию.

Можно это отнести к первому риску, но проблема в том, что помимо волатильности свою роль, как будет показано ниже, могут сыграть оракулы. И другие факторы тоже.

Уязвимости смарт-контрактов

Хотя Morpho проходил (и не раз) аудит безопасности, существует риск ошибок/взломов, что может привести к потере средств. Очевидно? Но этот риск далеко не нулевой. Опять же ниже - примеры.

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

Риск изоляции рынков (Morpho Blue)

В отличие от протоколов, где “рынки” - это фактически “пулы”, Morpho Blue создаёт изолированные рынки, что увеличивает прозрачность, но требует от заёмщика самостоятельной оценки рисков конкретной пары активов.

Поэтому с одной стороны, если вы внесли wBTC и взяли USDc - то никуда больше эта ликвидность не уйдёт, с другой стороны, как именно устроена ликвидность этого рынка, - большой вопрос.

Процентные ставки

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

Но это всё - очевидно.

Permissionless

М. Егоров: “Permissionless-инфраструктура требует экстраординарных усилий, чтобы быть безопасной, - и мы эти усилия прилагаем!”.

Когда за основу взята подобная механика - она всегда выглядит интересной и правильной (по крайне мере, я - её ярый сторонник: при верном использовании).

Проблема заключается в том, что вы даёте супер-узлам за возможности: скажем, в ETH была почти ⅓ нод, которые не проводили транзакции по каким-то соображениям, хотя это противоречит логике самого Эфира и его консенсуса.

Так вот в отличие от лендингов предыдущих поколений, навроде как раз ААВЕ, где ДАО протокола голосует за каждый актив (или LTV, etc.) Morpho Blue работает без разрешений.

Казалось бы: круто! Да, но есть нюансы…

Во-первых, нужно понимать, что Morpho поддерживает резервный механизм: если прямое P2P-сопоставление невозможно или участник выходит из сделки, ликвидность автоматически возвращается в базовые хранилища Morpho Blue или сторонние протоколы. Это гарантирует доступность ликвидности даже при отсутствии P2P-сделок. Но это же в итоге служит бутылочным (узким) горлышком для рынков, т.к. роль кураторов и их вольтов возрастает с каждым годом, а не понижается.

Поэтому в случаях как с rsETH, когда каждая последующая продажа приводит к снижению стоимости в итоге мы можем получить такой рынок, который покинули все vault-строители, оставив все риски на ритейле. Звучит неправдоподобно? Да, пока речь не идёт о сотнях миллионов.

Для минимизации рисков "... пользователям рекомендуется внимательно следить за коэффициентом обеспечения и выбирать активы с меньшей волатильностью". Вот только многие ли это делают на самом деле? Судя по анализу чатов после USR-депега - нет. (Об этом - ниже).

Снижение же ликвидности для хранилищ - норма на Морфо и сейчас: пример.

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

Vaults

Чтобы не сбиться с пути - надо всегда следовать официальному документу. Так и поступим: understanding-morpho-vaults-aggregating-amplifying-liquidity-for-lenders - взято прямо с офсайта.

Первое, что нужно знать (и поймёте это из раздела “Кураторы” ниже), что “со временем (мы считаем), что Morpho Vaults станут стандартным решением для кредитования”. Т.е. нет секрета в том, что Morpho нацелены на глобальный рынок и выход на него именно с изолированными рынками. Отсюда важный вывод следующий: в перспективе количество пользователей, вольтов, активов и т.д. будет прирастать.

Далее - самое интересное…

Что такое для лендинговых протоколов ликвидность? По сути - это объём активов, доступных пользователям для немедленного вывода или заимствования. Она рассчитывается как:

Liquidity = totalSupply × (1 − utilizationRate)

Например, рынок с депозитами на $1000 и уровнем утилизации 90% имеет ликвидность $100.

Данные из Морфо-документов. 01

Кредитование в изолированные рынки через Morpho Vault решает проблему фрагментации ликвидности.

Диаграмма ниже показывает, как ликвидность из каждого рынка агрегируется, в результате чего пользователи получают такой же профиль ликвидности, как в мульти-ассетном лендинговом пуле - несмотря на то, что базовые рынки остаются изолированными. (Это и есть главная фича Морфо).

Данные из Морфо-документов. 02

И дальше - ещё одна ключевая идея: “с Morpho Vaults профиль ликвидности для кредиторов становится даже лучше, чем в классическом лендинговом пуле. Это происходит потому, что ликвидность из каждого vault’а агрегируется в Morpho и, следовательно, становится общей для всех, кто кредитует в одни и те же рынки”.

Диаграмма ниже показывает, как ликвидность увеличивается при появлении второго Morpho Vault:

Данные из Морфо-документов. 03

Разберём по шагам, что нарисовано выше:

  • Vault #2 дополнительно вносит $500 в рынок #5.
  • Общий объём средств в рынке #5 увеличивается с $200 до $700 ($630 занято + $70 ликвидно).
  • Ликвидность в рынке #5 возрастает с $20 до $70.

Теперь ключевой момент:

  • Доступная ликвидность в Vault #1 увеличивается на 50% - с $100 до $150, потому что Vault #2 добавил средства в рынок #5.
  • Доступная ликвидность в Vault #2 составляет $80, а не $60 - то есть на 33% выше, чем было бы, если бы только Vault #1 поставлял ликвидность в рынок #5.

Что это значит? Этот эффект называется усиление ликвидности (liquidity amplification) - он возникает, когда несколько вольтов делят (между собой) ликвидность одних и тех же рынков. Преимущества усиливаются с ростом числа вольтов:

  • больше ликвидности;
  • выше эффективность;
  • лучше масштабируемость.

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

И теперь - процитирую то, что для меня есть фактор Х: “скоро будет представлена новая функция, которая позволит делить ликвидность между изолированными рынками уже для заёмщиков”. На самом деле эта фраза означает одно: пока заёмщики думают, что изолированные рынки безопасны для них, Морфо понимает, что безопасны изолированные рынки в первую очередь, как ни странно, для кредиторов, а для заёмщиков они… удобны.

Для каждого вольта при этом есть 4 базовые роли:

  1. Владелец (Owner);
  2. Куратор (Curator);
  3. Аллокатор (Allocator);
  4. Хранитель (Guardian).

Мы изучим с вами кураторов в целом.

Кураторы

Поскольку многие вещи, рассмотренные в статье, ещё не случились или случились лишь как “белый хак”, то приходится много отсылок делать на документацию, чтобы это были не голословные заявления, но вполне состоятельные векторы атак.

Итак, возьмём вот этот кусок: morpho.org/blog/curators-explained: "кураторы НЕ контролируют средства пользователей”. Очевидно? Да. Но есть и “но”: в случае Morpho Vaults это по сути портфели из переобеспеченных кредитных позиций. Это позволяет пользователям:

  • депонировать средства в одном месте;
  • получать доход в один клик;
  • делегировать управление рисками и построение портфеля куратору.

Важно, чтобы быть объективным, в Morpho Vaults кураторы работают НЕ кастодиально:

  • никогда не получают контроль над средствами пользователей;
  • но настраивают стратегию вольта программно;

Пользователи:

  • могут в любой момент внести или вывести средства;
  • не зависят от третьих лиц;
  • сохраняют полный контроль над активами.

Проблема в том, что уже в этом утверждении есть скрытая формальная ложь и я продемонстрирую её на примере ниже: куратору достаточно просто записать параметр “заполненности” vult и вы уже не сможете внести средства через это “вместилище”: если представить рынок как здание, то на рынок вы всё ещё попадёте (сможете попасть), но дверь конкретная будет закрыта.

Оценить кураторов сами Морфо предлагают по 4-м критериям, каждый из которых содержит множество тезисов:

  1. История (трекинг);
  2. Прозрачность и методология;
  3. Коммуникация;
  4. Конфликты интересов.

Если 2 первых ещё могут быть более-менее объективны, то 2 последних - нет: сегодня вам отвечают за 5 секунд в твиттере, а завтра все соц. сети удалены. Или вы таких историй в Web3 не знаете? Я лично вспомню сотню-другую. Аналогично про конфликт интересов: Alameda умудрялась ворочить десятками миллиардов, но полная связка с FTX обнаружилась лишь в суде.

Поэтому de jure - технически - (это ОЧЕНЬ ВАЖНО) всё круто: открытый код, простые условия и огромный выбор, но de facto: множество кураторов со сложной схемой активов под управлением, влияние их ликвидности на все пересекающиеся рынки и манипуляциями параметрами, кот. должны быть всего лишь техническими аспектами, а на деле играют роль точек входа/выхода.

Сохраняя точность - процитирую ещё один отчёт:

“Чтобы понять, как потери были усилены, необходимо разобраться, как работает Morpho. Протокол построен по логике изолированных рынков:

  • каждый рынок - уникальная пара:
    • один актив как залог (collateral);
    • один актив для заимствования.

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

  • они распределяют капитал между рынками;
  • оптимизируют доходность депозиторов.

В нормальных условиях - это устойчивая архитектура. В кризисных - она скрывает малоизвестную уязвимость, которую атакующий идеально понял и использовал”.

Но самое забавное (и страшное) не в этом. “Около 02:20 UTC, как только кураторы узнали об эксплойте Resolv: почти все сделали одно и то же:

  • установили supply caps = 0 для рынков USR;
  • тем самым заблокировали приток нового капитала”.

Что здесь забавного? В официальной документации Morpho (Vaults V1): в версиях 1.0 и 1.1 описана подобная уязвимость. И, если используется оракул с ценой значительно выше рыночной (как с USR), то можно и нужно:

  • увеличить количество долей (shares) вольта через механизм “donation”;
  • тем самым переложить убытки на вольт (депозиторов).

Вольты не захотели пойти этим путём. Но если вольт не несёт убытки, то кто их несёт? Давайте глянем на схему:

Примитивная схема

Да, всего 2 на самом деле истории на этих рынках (в силу опять же - их примитивности в архитектуре). Поэтому гипотеза здесь простая:

  1. Чем более популярными будут рынки Морфо;
  2. Тем более автоматизированными буду вольты;
  3. И тем более ручным - остальной рынок;
  4. В итоге те средства защиты, кот. есть у пользователя в ДАО-протоколах навроде AAVE, будут наследоваться VAULTs, но не кредиторами/заёмщиками рынка вне Vaults;
  5. Т.е. общие рынки без вольтов станут "тонкими".

Ещё раз: в документах прямо сказано: “Supply caps на нуле не предотвращают убытки”, - но на деле это никого не остановило. И это был не 1-2 куратора, а целых 15! И под управлением у них помимо Морфо ещё были активы.

Получается, что у кураторов очень большие полномочия (они же - функции):

  • анализ рынков;
  • выбор экспозиции;
  • настройка риск-параметров;
  • отслеживание аномалий;
  • защита капитала при отклонении условий от ожидаемых.

Всё это может быть сделано на уровне ДАО и, как видите, ошибки возможны и там, и там. Так в чём же разница? Скажу в конце, а пока - давайте пройдём дальше. В отчёте выше хорошо систематизирована ответственность кураторов. Давайте коротко опишу и её.

1. Ответственность за выбор (Selection)

Аллокация капитала - форма неявной валидации. Это требует анализа:

  • не только экономической модели;
  • но и операционных зависимостей:
    • архитектуры ролей;
    • управления ключами;
    • ончейн-лимитов (caps);
    • механизмов паузы;
    • дизайна оракулов;
    • сценариев компрометации админ-ролей.

На сегодняшний день, как видно из начальной заморозки 2-х вольтов по srETH, этого никто в полной мере не делает.

2. Ответственность за мониторинг (Monitoring)

Рынки должны:

  • не просто считаться приемлемыми в момент времени t;
  • а постоянно отслеживаться;

Сигналы риска:

  • депег стейблкоина;
  • аномальный рост активности;
  • расхождение между ценой оракула и рынком;
  • прочее.

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

3. Ответственность за вмешательство (Intervention)

Куратор должен уметь:

  • быстро сокращать экспозицию;
  • или хотя бы блокировать приток нового капитала.

Иначе он:

  • не управляет риском;
  • а пассивно его усиливает.

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

4. Ответственность за консистентность (Consistency)

Становится всё сложнее:

  • публично говорить о риск-менеджменте;
  • и при этом использовать системы, которые не адаптируются при возникновении риска.

Как было написано в отчёте: "По мере взросления DeFi такая несогласованность станет неприемлемой".

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

Итоги по USR-рискам

Не могу обойти стороной это дело, т.к. оно коснулось именно Morpho, поэтому просто буду называть депег-взлом USR - USR-рисками.

Анализ по USR

Чтобы не писать много, т.к. разбор потребует большого объёма текста, адресую вас вот к этой компоновке, кот. изучал на досуге: rekt.news/resolv-labs-rekt. Теперь - пойдём дальше.

Конкретика по USR

Зайдём, скажем, сюда: 0x00dfDb8C7295a03DCf1ADfF4D21eB5D9D19FB330/re7-resolv-usr - и сможем отследить ситуацию. Она ровно такая, как описана выше: возможности у кураторов были широкие, но использовали они очень узкий их диапазон.

Выводы по USR-рискам

Для меня крайне важно то, на что обратили внимание лишь несколько отчётов: поскольку USR и его деривативы широко использовались как залог, депег вызвал каскадные эффекты.

Т.е. изолированные рынки таковы с технической, но не экономической точки зрения.

Ещё раз: ключевое слово - каскадные. Рынки изолированы, но их экономика - нет. И это для меня - главный вывод, который, как понял, недоступен пока широкой публике: экономические эксплоиты также страшны и важны для заёмщиков, как и кредиторов.

Просто пока не дошло дело до сколько-нибудь ликвидного актива навроде rsETH, связанного с Morpho. Но это уже не фантазийная ситуация, а сугубо гипотетическая, т.е. принципиально и потенциально возможная.

Чтобы прояснить это - попробую коротко разделить риски и изучить их отдельно.

Риски кредитора

Списком:

  1. Риски кураторов и вольтов - очевидны и они есть в документации Морфо и сопутствующих аудитах;
  2. Риски прямых взломов - защита в виде ДАО-заморозки есть на ААВЕ, но в Морфо её по определению быть не может: частично она реализуется через кураторов как раз;
  3. Риски оракулов - есть и там, и там, как показано выше, поэтому в этом Морфо схож с ААВЕ;
  4. Риски плохого долга - в целом присутствуют на любых рынках.

Но на данном этапе нас с вами интересуют риски заёмщика больше, поэтому рассмотрю их детальней.

Риски заёмщика

Сначала - списком:

  1. Блокировка на уровне интерфейса: была и на AAVE, и на Morpho у меня, но на AAVE это заняло день (было бы быстрее, возможно, если бы сразу нашёл верный email), а вот на Morpho - месяцы: пример может быть не релевантным для вас, но он есть, т.к. используют оба протокола 3-ю сторону для подобных операций;
  2. Риск ликвидации: есть и там, и там, но устроен сам процесс по-разному: AAVE последнее время пробует его усовершенствовать, но Морфо здесь точно не отстаёт;
  3. Риск депега актива в залоге: есть и там, и там: весь вопрос в том, кто проводит оценку - ДАО или создатели рынка (вольта);
  4. Риск многостороннего займа (экспозиция займа): есть только на ААВЕ - и это тот самый риск, из-за которого случился весь сыр-бор с rsETH. Экспозиция займа - по сути совокупный риск, а значит и воздействие позиции, когда берём или даём займ в протоколах. И здесь важно какой актив занимаем (borrow), под какой залог (collateral), как меняется их цена (price), какие есть системные риски (oracle и др.).
  5. Риск переноса ответственности по ликвидности: есть в чистом виде на Морфо, т.к. в ААВЕ он вынесен на уровень выше - в ДАО.

Означает ли это, что, как написал мне подписчик: "По факту дыр для заёмщиков на Morpho никаких нет, их капитал не может быть аллоцирован"? На мой взгляд нет. Хотя это уберегает их от ряда ситуаций.

Итак, рассмотрим всё по шагам.

Блокировка интерфейса

Самый "безобидный" вид риска для заёмщика, но и самый обидный: фактически нужно идти и использовать безразрешительные интерфейсы и/или же напрямую взаимодействовать со смарт-контрактами (а это не всегда просто). И в Morpho, поверьте, этот риск - далеко не теоретический:

Блокировка кошелька

Риск ликвидаций

Далее стоит рассмотреть следующий вопрос: "Как на изолированный займ в маркете например в залог wETH в займ стейбл повлияют ликвидации других маркетов?".

Если внимательно изучали врезки по документации выше и описание по не техническим атакам, то сразу можете проанализировать вот этот рынок и вольты в нём: app.morpho.org/ethereum/market/0xba761af4134efb0855adfba638945f454f0a704af11fc93439e20c7c5ebab942/rseth-weth

rsETH на Morpho

Далее при обсуждении этой темы появился следующий тезис: “Collateral rsETH здесь в безопасности. В рамках одной транзакции я могу выплатить долг и забрать своё обеспечение. Мой залог в безопасности. В отличие от AAVE”. И далее: "Заняли wETH тех кто в Vault закинул свои wETH под определённый Collateral и приняли на себя соответствующие риски. Занять залоговый wETH из markets под залог rsETH невозможно”.

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

Когда вы вносите (w)ETH в AAVE - у вас происходит вот это:

Экспозиция по ETH (Base)

И, кажется, что такого не должно происходить на Morpho - рынки-то изолированы! Но как раз за счёт Vault-архитектуры это вполне возможно:

Данные по вольтам. 01

Или ещё:

Данные по вольтам. 02

Проще говоря:

  1. Если мы рассматриваем случай, когда на AAVE вы внесли wETH и он попал сразу в соотношение к разным активам, то, это, скорее, норма (подробней см. по E-mode и др. аспектам);
  2. Если мы рассматриваем случай, когда вы внесли wETH и получили под него USDc с рынка на Морфо, то здесь соотношение будет 1 к 1, но проблема в том, что это даже сегодня не всегда так (см. скриншоты выше). Это можно реализовать технически и организационно, но экономически вольты и рынки выстроены на разных, противоположных в общем-то, основаниях.

Вот что на этот счёт сообщает интферфейс Морфо: “Заимствование ликвидности. Занимайте ликвидность в пределах суммы, определяемой стоимостью предоставленного залога и доступной ликвидностью. На заёмную сумму начисляется процентная ставка, которая определяется моделью процентных ставок конкретного рынка”.

Данные интерфейса

И дальше: “Отслеживайте LTV ваших позиций, чтобы избежать риска ликвидации. Если коэффициент loan-to-value (LTV) вашей позиции превышает порог ликвидации (liquidation LTV) для конкретного рынка, внешние ликвидаторы могут ликвидировать ваш залог для погашения вашего долга”.

Но давайте пройдём ещё дальше: docs.morpho.org/learn/resources/risks. Тут всё расписано по субъектам: как видите, даже в этом, предельно общем документе, есть риски и кредиторов, и заёмщиков.

Цитирую: "Каждый рынок в Morpho привязан к неизменяемому параметру Liquidation Loan-to-Value (LLTV). Если показатель Loan-to-Value (LTV) вашей позиции превышает этот LLTV, ваша позиция может быть ликвидирована. При заимствовании в Morpho важно внимательно выбирать рынок и тщательно следить за состоянием (здоровьем) своей позиции".

Т.е. как именно буде ликвидирована позиция: из-за депега (разнобоя) активов, вашей блокировки на уровне интерфейса и т.д. - это вопрос, но ответ на него уже верифицирован самими Morpho.

Поэтому ниже попробую рассмотреть и другие (сопутствующие - в том числе) риски. Итак...

Риск депега актива в залоге

Опять же, как верно указал мой подписчик, с которым у нас и завязался разговор про Morpho: “При депеге USDC, у кредитора, при депеге cbETH у обоих, потому что заёмщик взял на себя риски этой обёртки” (речь шла о соответствующей о том, что вы пришли и положили 1 cbETH: app.morpho.org/base/market/0x1c21c59df9db44bf6f645d854ee710a8ca17b479451447e9f56758aee10a2fad/cbeth-usdc и был задан вопрос: "При депеге USDc (cbETH) - риски возникают только у Кредитора, но не Заёмщика?").

Таким образом, мы с вами выдели уже 2-й общий риск всех лендинговых протоколов:

  • Первый - это ликвидация по общим основаниям;
  • Вторая - при возможном депеге любого актива.

Но и это пока не всё.

Риск кастодиана актива

Для изолированных рисков роль кастодианов активов, как ни странно, возрастает, а не уменьшается (хотя, признаться, изначально я думал иначе): почему? Потому что есть то самое соотношение 1 к 1 и значит, что в итоге мы получим с вами определённые рынки, на которых "простым смертным" участвовать не получится вовсе, хотя сами рынки будут по-прежнему открыты. Это обратная сторона медали: кто рынок создал - тот "его и танцует". Повлиять на это (без изменения архитектуры) Morpho не могут. Особенно актуально это для RWA-сегмента.

И этот риск обратный: он есть на Morpho и т.д., но не на "пуловых" лендингах, где в силу экспозиции один ко многим по умолчанию делать подобное часто бесмысленно (хотя тоже пробуют - на AAVE см. Нorizon).

Риск переноса ответственности по ликвидности

Опять же - рассмотрим вопрос, из которого родился тезис: "Markets (рынки) у них же permissionless (безразрешительные), то-есть уже задеплоенные (созданные) не могут (быть) изменены. Например оставить в залог wETH и взять стейблы. Кураторы здесь при чём".

Если внимательно пробежать по тезисам выше, то мы получим вот такую, пусть и сильно упрощённую, схему:

Примивитизируем схему cash-flow в рынки

Получается, что чем больше у вас поток от Vaults и меньше от других участников, тем больше зависят др. участники от Vaults. Это не очевидно, пока потоки равны или хотя бы отличаются не существенно, но уже сейчас видно, что перекос в сторону B2B (кураторов и их вольтов) существует:

О вольтах

Поэтому чем больше будет рынков, где будет больше крупных кураторов, которые (см. выше) пересекаются и имеют большой вес в запасе общей ликвидности выше (см. на рынок wstETH) - тем больше буде риск заёмщика (лица, который берёт займ) в игре в большего дурака: обратный этому процесс - "размазывание" ответственности на всех в AAVE.

Что лучше? Кажется, что Morpho-подход: ... пока вы не останетесь на свободном рынке в очереди последних. Но для этого нужен кризис ликвидности, который возник у тех же AAVE за счёт напечатанных rsETH "из воздуха" (об этой атаке - в отдельной статье и видео расскажу).

Риск повышенного спроса на ликвидность

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

Здесь уже очередь образуется не из-за игры в большего дурака (выход в одну дверь), а выход во все двери с очередями.

Риск оракула

Давайте теперь вернёмся к проблеме через этот рынок - https://app.morpho.org/ethereum/market/0x94b823e6bd8ea533b4e33fbc307faea0b307301bc48763acc4d4aa4def7636cd/weth-usdc. Но тогда возьём ситуацию другую. Был депег USDc на 13%-15%. Что произошло бы здесь в такой позиции?

Прямой и правильный ответ: "Ничего, оракул отслеживает ETH/USD, а не ETH/USDC".

Проблема возникает в том, что опыт USR-рисков нам говорит об обратном: да, оракул-то на уровне протокола работает правильно и всё ведёт к единице, но единицы на других рынках уже нет. И возникает арбитражное окно: неизбежно. На любых не эффективных рынках оно возникает и это - экономический снова, а не технический аспект.

Поэтому, вроде бы, для заёмщика как раз всё ок: купил подешевле заёмных активов и отдал, ещё и заработал. Но, во-первых, в обратную сторону это тоже работает, а, во-вторых, как покажу ниже, это приводит к отдельной архитектурной атаке. Именно на заёмщиков (через ликвидацию, как уже указал выше).

Но для начала - ещё один важный момент обозначу.

Риск полизалога: AAVE проигрыш

Вот что пишет Морфо при внесении залога (и это очевидно вытекает из его архитектуры): “Внесите актив, под который вы хотите взять заём. Имейте в виду, что вы можете занимать средства только в том рынке, в который вы внесли залог. Если вы планируете брать заём в нескольких рынках, вам необходимо внести залог в каждый из них”.

Данные по займу

И тут как раз вспоминаем скрин выше:

Данные по AAVE

Подписчик это обозначил так: "Вносишь wETH никак collateral. Твой депозит теперь имеет экспозицию к 10+ разных активов, в т.ч. wstETH, по которому одному доходность больше при меньших рисках".

Получается, что, если я - продвинутый юзер и беру рынок сам по себе на Морфо, скажем, wETH-USDc, то мне не угрожает опасность, кот. образовалась в AAVE, когда wETH вдруг стал залогом для других активов.

Но здесь нужно понимать, чем я жертвую: капиталоэффективностью. Ведь изолированные рынки означают (в чистом виде), что один и тот же залог на разные займы мне придётся распределять каждый раз - итеративно: это можно изменить на уровне интерфейса, но не логики.

Про rsETH на AAVE, повторюсь, ещё будет полный разбор отдельно, поэтому здесь пока и остановимся.

Риск приёмки средств

Собственно, из тех же посылок получаем и ещё один понятный риск: добросовестные кураторы в критической ситуации закроют приём "опасных" активов, а вот недобросовестные - нет…

И тогда возникнет вопрос отбора, но не на уровне ассетов, а субъектов и возникнет та же дилемма, что на AAVE: кто должен определять блокировку по времени и средствам?

Очевидно, что это могут сделать сами Morpho на уровне интферфейса, но тогда возникает резонный вопрос: бэкенд всё ещё будет децентрализован, а фронт - уже нет? Тогда в чём преимущество именно?

Опять же - это прямое следствие архитектуры, а не моя придумка и USR-риск доказал, что прямого ответа у Morpho пока попросту нет.

Риск узких рынков

Санкции - вы, возможно, с ними ещё не сталкивались, но выведенная ликвидность - это одно, другое - когда на общем, пусть очень специализированном даже, рынке у вас возникает ситуации, когда ликвидность есть, но процесс её ликвидации/оборачиваемости/etc. осложнён экономическими и юридическими аспектами. (Да, обратную ситуацию и её последствия уже описывал выше).

Для "пуловых" лендингов это как раз не опасно, потому что ответственность ложится на всё ДАО сразу, а вот в аспекте кураторы-вольты + свободный рынок такая уязвимость есть. И она хорошо ощущается сейчас на RWA-сегменте.

Но посмотрим, как её обойдёт (или не встретит?) Морфо.

Риск бандлеров

Риск сугубо технический. Обычно то, что считается фичей в нормальных условиях, превращается в баг в критических.

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

  • депозит;
  • заём;
  • свап.

Всё можно выполнить одновременно! Круто? Да. Но зачем это нужно? Допустим, вы хотите:

  • конвертировать ETH в weTH;
  • использовать wETH как залог;
  • занять USDC под wETH.

Всё это за один шаг можно выполнить. Преимущества тоже очевидны:

  • экономия газа;
  • меньше риск фейла транзакции;
  • более эффективное взаимодействие с протоколом.

Проблема в том, что, если вы когда-нибудь пользовались SAFE на уровня проводки хотя бы 3-5 транзакций, знаете, что описанная схема работает в идеальном мире, а в реальном может давать сбои по самым разным аспектам: от банальной “плохой связи” RPC - до перегрузки чейна. Не говоря про "глюки" самого ПО (и да, dAPPs - это ПО именно).

И это кажется не существенным аспектом, пока не вспоминаем, что находимся внутри финансовых операций. И вы можете мне возразить: “Но ничего подобного не было!”. Верно, никаких атак подобного рода пока не наблюдалось, но кто сказал, что это невозможно? Тем более что они не наблюдались просто на лендинги с изолированными рынками, а не вообще.

Собственно, в AAVE не так давно человек поменял $50M на $36k, хотя казалось бы: раньше такого не было! А всё потому, что протоколы не могут не внедрять всё новый и новый функционал, конкурируя друг с другом, поэтому то, что раньше казалось теоретической атакой, становится реальным фейлом. И вам будет не важно, поверьте, что вы будете первым и единственным в своём роде: ваши деньги - это ваши потери именно.

Поэтому чем сложнее действия в 1 транзакции - тем больше вероятность атаки: самый банальный пример - это eip7702 и делегация: вектор совсем свежий и точно контролируемый на уровне интерфейса пользователя.

Но это уже смешанный риск, поэтому о нём говорю больше для полноты материала, чем для определения разности AAVE & Morpho.

Технический разбор

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

Разбор rsETH

https://app.morpho.org/ethereum/market/0xba761af4134efb0855adfba638945f454f0a704af11fc93439e20c7c5ebab942/rseth-weth - здесь видим, в частности, что вектор атаки был закрыт не через рынки (это ведь невозможно технически), а через вольты, поэтому любые итеративные атаки на схожие вольты/кураторов - это не теоретическая (гипотетическая), а реальная возможность и вероятность.

На мой взгляд не верно на сегодня вот что: "Morpho получил необеспеченный rsETH в качестве залога после эксплойта моста KelpDAO, однако текущие отчёты указывают на ограниченную и локализованную экспозицию по сравнению с другими лендинг-протоколами. Атакующие подделали кроссчейн-сообщения, чтобы заминтить фейковый rsETH, а затем использовали его как залог в Aave, Compound, Euler и Morpho. Отмечается, что прямая экспозиция Morpho составляет примерно несколько миллионов долларов, что стало возможным благодаря дизайну изолированных рынков".

Т.е. изолированные рынки защитили Морфо от атаки? Но это не так. Во-первых, вектор атаки на них был сильно ограничен. Во-вторых, основные риски даже сейчас заметны:

  • как будет обрабатываться rsETH в дальнейшем?
  • каким образом потенциальный bad debt будет распределён (socialized)?
  • и ужесточатся ли стандарты обеспечения (collateral) и мостов (bridge)?

И ответы на эти вопросы в Морфо не просты, потому что рынки как раз изолированы, а подключение их - безразрешительное.

Но давайте для начала разберёмся с куда более примитивной вещью - с обычной транзакцией.

Разбор транзакции Morpho

Пример транзакции

Когда мы проведём подобную транзакцию, то окажемся здесь: https://arbiscan.io/token/0x82af49447d8a07e3bd95bd0d56f35241523fbab1?a=0x9954afb60bb5a222714c478ac86990f221788b88#readProxyContract:

И можно сделать запрос о баласе, например:

Смарт-контракт

Поэтому фактически вся "изоляция" (рынков) через "бандлирование" (объединение транзакций) сводится к тому, что пользователь принимает на себя риски стандартного проксированного смарт-контракта. Точнее - их набора.

Мои выводы и доводы

Если посмотрите на источники ниже - их более детальный разбор будет в следующей статье, то увидите, что Morpho подвергался атакам уже несколько раз и в этом смысле - это обычный DeFi-протокол со своими родимыми пятнами:

Исходя из подробного анализа документации Morpho, я пришёл к тому же выводу, который был для меня изначально значим как гипотеза: риски заёмщиков в Morpho не ликвидированы за счёт изолированных маркетов (рынков), а всего лишь представлены в иной форме (и формате): от более технических аспектов мы переходим к более экономическим. Рынки изолированы на уровне смартов, но не на уровне:

  1. Связанности активов (единый залог, например);
  2. Взаимодействий с вольтами;
  3. Экспозиции по разным активам;
  4. И подобным параметрам.

В чём-то такой подход лучше, а в чём-то хуже. Если обобщить, то хуже он в том, что конструкция для конечного пользователя представлена как примитивная, но на деле это не так, поскольку вместо стандартной иерархии: протокол - ДАО, в Морфо вы найдёте: рынки - вольты - кураторов - отдельные политики по активам и т.д. Само по себе количество звеньев уже говорит о многом: зато у вас появляется гибкость, как именно заходить в рынок - и это 100%-й плюс.

Для проф. участников, скорее всего, это благо, для новичков - не уверен.

Но главное, что это не панацея от аномальных атак, какой и была атака на USR или rsETH. Векторы подобных обозначил выше: согласны вы со мной или нет - не знаю, но знаю, что подобное в своей работе учитываю и поэтому никогда и никакой протокол не приоретизирую до абсолюта: скажем, AAVE был 8 из 10, а стал 6 из 10, зато Морфо был 5 из 10, а стал 7 из 10. Но 10 из 10 - это не идеал, это вопросы, которые нужно задать. Себе.

Главное же, что риски заёмщиков в Morpho есть и не только стандартные для всех протоколов (пересекающиеся), т.к. их оценивать приходится везде, но и уникальные, которые как раз и вытекают из архитектуры изолированных рынков.

Экономические атаки - куда реальней, чем вы думаете

Опишу теперь базовый подход самого примитивного вектора. Есть 2 рычага воздействия и один основной аспект риска (есть и др. но остановимся в заключении на этом):

  1. Уронить цену collateral;
  2. Поднять цену borrow asset.

Если делаем оба сразу → эффект усиливается.

Вы скажите, что такое работает и на”пуловых” лендингах? И да, и нет: весь вопрос в том, что такое изолированный рынок: это рынок, у которого ликвидность всё равно де-фрагментируется (но иначе, см. выше) и она базово разделена на 2 актива: залоговый - заёмный.

Поэтому атаки такого типа проводить на изолированные рынки проще, а не сложнее, хотя изначально кажется, что всё ровно наоборот. И нет: печать “воздушных” rsETH не об этом - это смежная, схожая, но всё же во многом иная атака именно. Если уж искать аналог - то это атаки через flash-займы, которые были так популярны 3-4 года назад: весь теперь вопрос сводится к тому, что из коллатеризированных активов станет популярным, но будет содержать в себе опасность формата rsETH.

Ещё раз: изолированность здесь играет во вред: ведь каждый рынок не зависим? Да! А значит? Применив схему к одному - вы сможете применить к другому, к следующему и т.д., пока не "закроются" (правильней сказать - накроются) все рынки. И в этом отличие от глобальной защиты на уровне ДАО-протоколов: там она “включается” сразу для всех. И это тоже хорошо - и плохо.

Почему теоретически это возможно?

  1. Изолированные рынки сами создаются в формате: Актив “А” - Актив “Б” и по сути это объединяет людей на экономическом слое;
  2. Уровни ликвидации всё равно будут коррелировать друг с другом - сколько бы кураторов ни было: такова реальная конкуренция на открытом рынке;
  3. И главное - ликвидность, как её не дроби, всё равно и всегда будет конечна.

Плюс это или минус? Не мне решать. Но это фича, которая становится багом. Нужно лишь выполнить экстремальные условия, но мы их и обсуждаем, когда говорим про rsETH-риски или USR-риски.

И уверен, что ближайшие годы атаки подобного типа будут куда чаще встречаться. Почему? Потому что технически много уже создано паттернов само-защиты, а вот экономических шаблонов - по пальцам пересчитать: чего стоит изменение токеномик у ведущих проектов за последние годы (Aptos, Ethereum, Sui, OpenSea и др.).

Один несомненный плюс Morpho!

Он очевиден: если используете пары навроде wBTC - USDc, то никуда деньги не денутся ваши, кроме этого рынка.

Беда в том, что:

  1. Депег wBTC уже происходил и будь это на Морфо - это привело бы к ликвидации (при прочих равных и расхождении с оракулом): и это всегда риск заёмщика. Если нет? Это USR-риск для платформы.
  2. USDc депег тоже был: даже если оракул измеряет всё к USD, то в итоге заёмщику ту плюс, но вот кредитору - большой минус. И опять же - это риск для платформы.

И возникает вопрос: насколько сильно платформа готова жертвовать главными поставщиками ликвидности - кредиторами - ради заёмщиков? И ответа здесь однозначного точно нет.

При том, что пока кастодиальные обёртки ещё не накладывались на кастодиальные вольты: а скоро и этого стоит ожидать (благо законы уже приняли). И вот здесь буде ещё узкое горлышко.

То есть логика апологетов Морфо понятна: общие риски - у всех одинаковы, зато на Морфо есть изолированные рынки, кот. уберегут нас от rsETH-инцидентов. Да, но не уберегут от USR-инцидентов, а также от прочих атак экономического типа, где рынок важен не как технический аспект, а как именно финансовый.

И дальше весь вопрос, насколько быстро получат развитие подобные векторы. Судя по последним атакам - весьма скоро.

Я же к Morpho отношусь нейтрально: как и к AAVE, Euler, etc., потому что для меня важна децентрализация не только внутренняя (в протоколе), но и внешняя (между протоколами).

Атаки на заёмщиков Morpho

Получаем вот такой итоговый список:

  1. Атаки, направленные на ликвидацию: реальные/гипотетические. Можно разделить на несколько подвидов: через манипуляцию залогом, посредством оракула (косвенно) и т.д.
  2. Атаки через интерфейс: реальные. Усложняется всё из-за наличия свободных рынков.
  3. Атаки через депег активов: гипотетические. Но метод (подход) усложнения тот же - permissionless-подход.
  4. Атаки через смарты: реальные. Доказаны на ряде “белых” взломов. О них ещё поговорим.
  5. Атаки через оракулы (прямые): реальные, состоявшиеся. Пока экономический ущерб ограниченный.
  6. Атаки через MEV-ботов: реальные. Из-за избыточного доверия рынкам, вольтам, кураторам и т.д. Защита на уровне протокола, но противоречие на уровне доверия к бездоверительным активам и изолированным рынкам.

Дополнительные ссылки

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

  1. О USR: gate.com/tr/post/status/19782598 - др. описание;
  2. Отчёт за 2022: cdn.morpho.org/documents/TrailOfBits_210722.pdf
  3. Обзор за 2022: cdn.morpho.org/documents/MorphoAaveV2_Audit_Spearbit.pdf
  4. Обзор за 2023: cdn.morpho.org/documents/Spearbit_19062023.pdf
  5. Обзор за 2023: cdn.morpho.org/documents/Runtime_02052023.pdf
  6. Доп.: coinmarketcap.com/top-stories/69c494af5735b764258a5a6f/

Продолжение следует

Во второй части попробую наложить всё это на практику последних дней...

До!