Займы на Ethereum: Сравнение эволюции архитектуры MakerDAO, Yield, Aave, Compound, & Euler

СреднийDec 31, 2023
В этой статье анализируются механизмы кредитования и архитектурные решения различных протоколов, рассматриваются сильные и слабые стороны различных подходов, а также проблемы, с которыми сталкивается индустрия.
Займы на Ethereum: Сравнение эволюции архитектуры MakerDAO, Yield, Aave, Compound, & Euler

Займы - это краеугольный камень блокчейн-приложений на базе Ethereum. Учитывая миллиарды активов, предоставленных во временное пользование, понимание того, как работает заимствование, крайне важно для разработчиков, архитекторов или исследователей.

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

В этом анализе рассматривается архитектура таких приложений, как MakerDAO, Compound, Aave, Euler и Yield. Мы выделим ключевые инновации и шаблоны дизайна, которые станут важными уроками для разработки будущих кредитных приложений.

Если Вы разработчик, архитектор или исследователь безопасности, эта статья для Вас. К концу курса Вы будете легко понимать новые приложения для заимствования на Ethereum, быстро и полно разбираясь в их архитектуре. Погрузитесь внутрь, чтобы увидеть, как эти гиганты DeFi создаются с нуля.

Займы в DeFi

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

Однако есть одна загвоздка.

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

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

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

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

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

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

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

В Compound, Aave и Euler они такие. Процентные ставки для заемщиков и кредиторов внутренне коррелируют; собственно, именно это и позволяет этим приложениям работать с минимальным вмешательством.

С другой стороны, MakerDAO и Yield являются оригинаторами активов, которые они предоставляют заемщикам.

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

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

Архитектурная эволюция MakerDAO

Логотип MakerDAO

MakerDAO, древний в терминах Ethereum, был запущен в своей нынешней форме в ноябре 2019 года, и в нем хранится $4,95 млрд. залога. Несмотря на модульную архитектуру с отдельными контрактами для каждой функции и уникальную терминологию, она остается простой для понимания и проверки.

Казначейская функция в MakerDAO управляется договорами Join.

Для каждого токена, утвержденного в качестве залогового актива, существует отдельный контракт.

В отличие от этого, MakerDAO не обладает никаким DAI, активом для заимствования.

Вместо этого он просто добывает и сжигает DAI по мере необходимости.

Бухгалтерский учет ведется в рамках контракта vat.sol. Присоединения обновляют этот контракт, когда обеспечение входит в систему или выходит из нее. Если пользователь берет в долг, он взаимодействует с контрактом vat.sol напрямую.

Это действие обновляет баланс долга пользователя и позволяет ему чеканить DAI в DAI Join.

Чтобы погасить долг, пользователи сжигают DAI в DAI Join. Затем этот процесс обновляет Vat, позволяя пользователю оплатить свой кредит.

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

Когда вносятся изменения в долговой или залоговый баланс пользователя, контракт vat.sol оценивает как курс, так и спот.

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

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

Следовательно, он может показаться странным, дорогим в использовании и сложным в навигации.

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

Основные моменты:

  • Каждый актив имеет свой собственный контракт в функции казначейства с максимальным распространением
  • Функция учета централизована в рамках единого контракта, который также документирует и обеспечивает соблюдение параметров риска, включая проверку обеспечения.
  • В отличие от других приложений, оракулы обновляют контракт, следя за обеспечением
  • Оракулы цен и процентных ставок используют разные интерфейсы
  • Процентная ставка возникает извне
  • Чтобы взять займ, пользователи должны взаимодействовать с несколькими контрактами

Архитектурная эволюция протокола Yield

Yield v1 послужил доказательством концепции фиксированных ставок с помощью YieldSpace. Эта версия построена на базе MakerDAO. Однако Yield v1 был и дорог в использовании, и сложен в дополнении новыми функциями.

Осознав потенциал YieldSpace, мы быстро перешли к разработке Yield v2. По-прежнему черпая вдохновение в MakerDAO, но теперь полностью независимый, Yield v2 был запущен в октябре 2021 года; приоритетом Yield v2 стало снижение затрат на газ и улучшение пользовательского опыта.

Процесс заимствования в Yield v2, на который сильно повлиял MakerDAO

Все бухгалтерские проверки, управление рисками и обеспечение были сведены в один контракт - " Котел". По аналогии с подходом MakerDAO мы распределили казначейские функции по контрактам Join, каждый из которых занимается определенным активом.

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

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

В общем, заимствование в Yield v2 работает следующим образом:

  • Каждый актив имеет свой отдельный казначейский контракт, что обеспечивает максимальное распределение казначейской функции.
  • Единый контракт централизует функцию бухгалтерского учета. Этот контракт также контролирует меры по управлению рисками и осуществляет проверку обеспечения.
  • Функция обеспечения обращается к оракулам, чтобы определить цены и процентные ставки.
  • Оракулы цен и процентных ставок имеют единый интерфейс.
  • Процентные ставки формируются извне.
  • Пользователи могут брать займы, делая единый запрос только на один контракт.

Архитектурная эволюция сложных финансов

Первая версия Compound была Proof-of-Concept, демонстрирующей, что на Ethereum можно создать денежный рынок. По этой причине простота была приоритетом при разработке. Контракт MoneyMarket.sol включает в себя все функции, в том числе и кредитование.

Процесс заимствования в Compound v1. Просто, но эффективно.

  • Задачи казначейства, бухгалтерии и управления рисками, такие как проверка обеспечения, объединены в один контракт.
  • Этот контракт извлекает цены из оракулов, но определяет процентные ставки на основе использования активов.
  • Пользователи взаимодействуют исключительно с этим контрактом, хотя им приходится делать отдельные звонки, чтобы предоставить залог и взять активы в долг.

Соединение v2

Compound v2 был запущен в мае 2019 года, открыв эру урожайного земледелия и вдохновив бесчисленное количество вилок. Он также функционировал как денежный рынок, позволяя пользователям как кредитовать, так и заимствовать активы.

Исходя из ее технического описания и структуры, очевидно, что основной целью создания Compound v2 было использование стандарта ERC20 для представления кредитных позиций. Это обеспечило композитность, позволив пользователям предоставлять займы в Compound, а затем использовать эти процентные позиции в других блокчейн-приложениях.

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

Процесс заимствования в Compound v2. Первый выход на позиции токенизированного кредитования.

  • Каждый актив имеет свой собственный казначейский контракт, что позволяет максимально распределить казначейскую функцию.
  • Функция учета также распределена: каждый cToken отмечает залог и долг пользователя.
  • Единый контракт, Контролер, регистрирует и обеспечивает соблюдение параметров управления рисками, включая проверку обеспечения.
  • Контракт, отвечающий за проверку обеспечения, ссылается на оракулы для цен и на cToken для процентных ставок.
  • Оракулы цены и процентной ставки работают с разными интерфейсами.
  • Процентная ставка зависит от использования активов.
  • Чтобы взять заем, пользователям приходится взаимодействовать с несколькими контрактами.

Соединение v3

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

Процесс заимствования в Compound v3 (Comet). Вернитесь к основам, вернитесь к безопасности. Но с лучшим UX.

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

Другие важные функции, упомянутые в примечаниях к выпуску, включают:

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

Интересно, что Compound v3 повторяет архитектуру Compound v1, поскольку все функции для каждого заемного актива выполняет один контракт. Другие примечательные особенности включают:

  • Заимствовать можно только кредитуемые активы; залоговые активы - нет.
  • Залог не приносит дохода в Compound v3.

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

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

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

С точки зрения архитектуры:

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

Архитектурная эволюция Aave

Aave v1 была запущена в октябре 2019 года, сменив ETHLend. Вместо однорангового подхода ETHLend компания Aave v1 представила общий пул ликвидности.

Процесс получения займа в Aave v1. Объединенная ликвидность означает финансовую и вычислительную эффективность.

Как и в Yield v2, контракт маршрутизатора также содержит бизнес-логику. В LendingPoolCore реализованы функции бухгалтерского учета, управления рисками и казначейства. Объединение казначейства в один контракт стало отличительной чертой Compound v2.

Решение оставить проверки обеспечения в собственном контракте, вызываемом из маршрутизатора, а не из бухгалтерского контракта, кажется слабым, но, вероятно, оно было вполне уместным, поскольку Aave v2 был выпущен всего через два года после выпуска v1.

  • Контракт LendingPoolCore управляет казначейством и бухгалтерией
  • LendingPoolDataProvider управляет проверками обеспечения и взаимодействует с оракулом
  • LendingPool служит точкой входа пользователя и реализует бизнес-логику
  • Процентные ставки по займам и кредитам определяются внутри компании, основываясь исключительно на ценовых показателях.

Aave v2

Aave v2 был выпущен в декабре 2021 года. Хотя в нем сохранились функции, схожие с Aave v1, в нем появилась улучшенная и более простая архитектура по сравнению с Aave v1 и Compound v2. В этом выпуске Aave также представила aTokens (сродни cTokens в Compound) и vTokens, которые представляют собой токенизированные долги.

Aave v2 имеет очень чистую архитектуру, полностью токенизированную.

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

  • Контракт LendingPool консолидирует глобальные функции бухгалтерского учета и управления рисками, такие как проверка обеспечения. Он служит основной точкой доступа для пользователей
  • aТокены означают залог и сродни кредитным позициям. Залоговое обеспечение пользователей отражается в их аТокенах, а казначейская функция распределяется между всеми аТокенами.
  • vТокены используются для представления долговых позиций. Долг пользователя представлен vTokens, которыми он владеет.

Aave v3

Aave v3 был выпущен в январе 2023 года с поддержкой многоцепочечного обмена и другими функциями. Эти дополнения не изменяют основную архитектуру. Обновление также может похвастаться улучшенным управлением рисками и эффективностью использования газа.

Несмотря на многочисленные усовершенствования, для целей данного исследования Aave v3 не имеет существенных отличий от Aave v2. На самом деле, это может говорить о том, что архитектура Aave v2 останется надежной и в 2023 году.

Архитектурная эволюция Эйлера

Компания Euler была запущена в декабре 2022 года с целью предложить денежные рынки с не требующими разрешения функциями и минимальным управлением.

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

Несмотря на то, что в одном контракте хранятся все активы, бухгалтерские данные и данные по управлению рисками, по-прежнему существуют eTokens для залога и кредитования и dTokens для долга, как в Aave v2. Однако эти контракты с токенами - всего лишь разновидности центрального контракта на хранение.

  • Контракт Storage управляет переменными учета.
  • Контракт BaseLogic выполняет функции казначейства.
  • Контракт RiskManager контролирует переменные и функции управления рисками, включая проверку обеспечения.

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

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

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

Я не думаю, что монолитная архитектура сыграла роль в истощении активов; скорее, это был недостаточный надзор за обновлениями кода.

Заключение

Тяжелая работа сделана, давайте рассмотрим, чему мы научились

Ранние приложения Ethereum, такие как MakerDAO, Compound и Aave, продемонстрировали потенциал заимствований с избыточным обеспечением на Ethereum. После того, как эти пробные версии оказались успешными, фокус сместился на внедрение целого ряда новых функций для захвата доли рынка. В более поздних версиях Compound и Aave появились доходность, композитность и объединенная ликвидность, которые особенно процветали в условиях "бычьего" рынка.

Значительным событием стало появление в Compound v2 токенизированных кредитных позиций, что позволило признать эти позиции в качестве стандартных активов другими приложениями. Компании Aave v2 и Euler сделали еще один шаг вперед, внедрив токенизированные долговые позиции, более широкая полезность которых остается предметом споров.

Высокая стоимость газа стала одной из главных проблем во время "бычьего" рынка, что привело к изменению пользовательского опыта, как это было в Yield v2, Aave v2 и Euler. Контракты Router и монолитные реализации помогли снизить затраты пользователей на транзакции. Однако это произошло за счет более сложного и, следовательно, более рискованного кода.

Compound v3, похоже, создает прецедент, отдавая предпочтение безопасности перед финансовой эффективностью. Он отклоняется от традиционной модели пула ликвидности, чтобы лучше защититься от возможных взломов. Развитие сетей L2, в которых затраты на газ становятся все более незначительными, вероятно, определит дизайн будущих приложений для залогового кредитования.

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

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

Спасибо, что прочитали, и желаю удачи.

Спасибо компании Calnix за рецензирование и редактирование этой статьи.

Отказ от ответственности:

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

Займы на Ethereum: Сравнение эволюции архитектуры MakerDAO, Yield, Aave, Compound, & Euler

СреднийDec 31, 2023
В этой статье анализируются механизмы кредитования и архитектурные решения различных протоколов, рассматриваются сильные и слабые стороны различных подходов, а также проблемы, с которыми сталкивается индустрия.
Займы на Ethereum: Сравнение эволюции архитектуры MakerDAO, Yield, Aave, Compound, & Euler

Займы - это краеугольный камень блокчейн-приложений на базе Ethereum. Учитывая миллиарды активов, предоставленных во временное пользование, понимание того, как работает заимствование, крайне важно для разработчиков, архитекторов или исследователей.

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

В этом анализе рассматривается архитектура таких приложений, как MakerDAO, Compound, Aave, Euler и Yield. Мы выделим ключевые инновации и шаблоны дизайна, которые станут важными уроками для разработки будущих кредитных приложений.

Если Вы разработчик, архитектор или исследователь безопасности, эта статья для Вас. К концу курса Вы будете легко понимать новые приложения для заимствования на Ethereum, быстро и полно разбираясь в их архитектуре. Погрузитесь внутрь, чтобы увидеть, как эти гиганты DeFi создаются с нуля.

Займы в DeFi

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

Однако есть одна загвоздка.

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

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

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

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

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

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

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

В Compound, Aave и Euler они такие. Процентные ставки для заемщиков и кредиторов внутренне коррелируют; собственно, именно это и позволяет этим приложениям работать с минимальным вмешательством.

С другой стороны, MakerDAO и Yield являются оригинаторами активов, которые они предоставляют заемщикам.

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

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

Архитектурная эволюция MakerDAO

Логотип MakerDAO

MakerDAO, древний в терминах Ethereum, был запущен в своей нынешней форме в ноябре 2019 года, и в нем хранится $4,95 млрд. залога. Несмотря на модульную архитектуру с отдельными контрактами для каждой функции и уникальную терминологию, она остается простой для понимания и проверки.

Казначейская функция в MakerDAO управляется договорами Join.

Для каждого токена, утвержденного в качестве залогового актива, существует отдельный контракт.

В отличие от этого, MakerDAO не обладает никаким DAI, активом для заимствования.

Вместо этого он просто добывает и сжигает DAI по мере необходимости.

Бухгалтерский учет ведется в рамках контракта vat.sol. Присоединения обновляют этот контракт, когда обеспечение входит в систему или выходит из нее. Если пользователь берет в долг, он взаимодействует с контрактом vat.sol напрямую.

Это действие обновляет баланс долга пользователя и позволяет ему чеканить DAI в DAI Join.

Чтобы погасить долг, пользователи сжигают DAI в DAI Join. Затем этот процесс обновляет Vat, позволяя пользователю оплатить свой кредит.

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

Когда вносятся изменения в долговой или залоговый баланс пользователя, контракт vat.sol оценивает как курс, так и спот.

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

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

Следовательно, он может показаться странным, дорогим в использовании и сложным в навигации.

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

Основные моменты:

  • Каждый актив имеет свой собственный контракт в функции казначейства с максимальным распространением
  • Функция учета централизована в рамках единого контракта, который также документирует и обеспечивает соблюдение параметров риска, включая проверку обеспечения.
  • В отличие от других приложений, оракулы обновляют контракт, следя за обеспечением
  • Оракулы цен и процентных ставок используют разные интерфейсы
  • Процентная ставка возникает извне
  • Чтобы взять займ, пользователи должны взаимодействовать с несколькими контрактами

Архитектурная эволюция протокола Yield

Yield v1 послужил доказательством концепции фиксированных ставок с помощью YieldSpace. Эта версия построена на базе MakerDAO. Однако Yield v1 был и дорог в использовании, и сложен в дополнении новыми функциями.

Осознав потенциал YieldSpace, мы быстро перешли к разработке Yield v2. По-прежнему черпая вдохновение в MakerDAO, но теперь полностью независимый, Yield v2 был запущен в октябре 2021 года; приоритетом Yield v2 стало снижение затрат на газ и улучшение пользовательского опыта.

Процесс заимствования в Yield v2, на который сильно повлиял MakerDAO

Все бухгалтерские проверки, управление рисками и обеспечение были сведены в один контракт - " Котел". По аналогии с подходом MakerDAO мы распределили казначейские функции по контрактам Join, каждый из которых занимается определенным активом.

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

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

В общем, заимствование в Yield v2 работает следующим образом:

  • Каждый актив имеет свой отдельный казначейский контракт, что обеспечивает максимальное распределение казначейской функции.
  • Единый контракт централизует функцию бухгалтерского учета. Этот контракт также контролирует меры по управлению рисками и осуществляет проверку обеспечения.
  • Функция обеспечения обращается к оракулам, чтобы определить цены и процентные ставки.
  • Оракулы цен и процентных ставок имеют единый интерфейс.
  • Процентные ставки формируются извне.
  • Пользователи могут брать займы, делая единый запрос только на один контракт.

Архитектурная эволюция сложных финансов

Первая версия Compound была Proof-of-Concept, демонстрирующей, что на Ethereum можно создать денежный рынок. По этой причине простота была приоритетом при разработке. Контракт MoneyMarket.sol включает в себя все функции, в том числе и кредитование.

Процесс заимствования в Compound v1. Просто, но эффективно.

  • Задачи казначейства, бухгалтерии и управления рисками, такие как проверка обеспечения, объединены в один контракт.
  • Этот контракт извлекает цены из оракулов, но определяет процентные ставки на основе использования активов.
  • Пользователи взаимодействуют исключительно с этим контрактом, хотя им приходится делать отдельные звонки, чтобы предоставить залог и взять активы в долг.

Соединение v2

Compound v2 был запущен в мае 2019 года, открыв эру урожайного земледелия и вдохновив бесчисленное количество вилок. Он также функционировал как денежный рынок, позволяя пользователям как кредитовать, так и заимствовать активы.

Исходя из ее технического описания и структуры, очевидно, что основной целью создания Compound v2 было использование стандарта ERC20 для представления кредитных позиций. Это обеспечило композитность, позволив пользователям предоставлять займы в Compound, а затем использовать эти процентные позиции в других блокчейн-приложениях.

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

Процесс заимствования в Compound v2. Первый выход на позиции токенизированного кредитования.

  • Каждый актив имеет свой собственный казначейский контракт, что позволяет максимально распределить казначейскую функцию.
  • Функция учета также распределена: каждый cToken отмечает залог и долг пользователя.
  • Единый контракт, Контролер, регистрирует и обеспечивает соблюдение параметров управления рисками, включая проверку обеспечения.
  • Контракт, отвечающий за проверку обеспечения, ссылается на оракулы для цен и на cToken для процентных ставок.
  • Оракулы цены и процентной ставки работают с разными интерфейсами.
  • Процентная ставка зависит от использования активов.
  • Чтобы взять заем, пользователям приходится взаимодействовать с несколькими контрактами.

Соединение v3

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

Процесс заимствования в Compound v3 (Comet). Вернитесь к основам, вернитесь к безопасности. Но с лучшим UX.

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

Другие важные функции, упомянутые в примечаниях к выпуску, включают:

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

Интересно, что Compound v3 повторяет архитектуру Compound v1, поскольку все функции для каждого заемного актива выполняет один контракт. Другие примечательные особенности включают:

  • Заимствовать можно только кредитуемые активы; залоговые активы - нет.
  • Залог не приносит дохода в Compound v3.

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

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

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

С точки зрения архитектуры:

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

Архитектурная эволюция Aave

Aave v1 была запущена в октябре 2019 года, сменив ETHLend. Вместо однорангового подхода ETHLend компания Aave v1 представила общий пул ликвидности.

Процесс получения займа в Aave v1. Объединенная ликвидность означает финансовую и вычислительную эффективность.

Как и в Yield v2, контракт маршрутизатора также содержит бизнес-логику. В LendingPoolCore реализованы функции бухгалтерского учета, управления рисками и казначейства. Объединение казначейства в один контракт стало отличительной чертой Compound v2.

Решение оставить проверки обеспечения в собственном контракте, вызываемом из маршрутизатора, а не из бухгалтерского контракта, кажется слабым, но, вероятно, оно было вполне уместным, поскольку Aave v2 был выпущен всего через два года после выпуска v1.

  • Контракт LendingPoolCore управляет казначейством и бухгалтерией
  • LendingPoolDataProvider управляет проверками обеспечения и взаимодействует с оракулом
  • LendingPool служит точкой входа пользователя и реализует бизнес-логику
  • Процентные ставки по займам и кредитам определяются внутри компании, основываясь исключительно на ценовых показателях.

Aave v2

Aave v2 был выпущен в декабре 2021 года. Хотя в нем сохранились функции, схожие с Aave v1, в нем появилась улучшенная и более простая архитектура по сравнению с Aave v1 и Compound v2. В этом выпуске Aave также представила aTokens (сродни cTokens в Compound) и vTokens, которые представляют собой токенизированные долги.

Aave v2 имеет очень чистую архитектуру, полностью токенизированную.

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

  • Контракт LendingPool консолидирует глобальные функции бухгалтерского учета и управления рисками, такие как проверка обеспечения. Он служит основной точкой доступа для пользователей
  • aТокены означают залог и сродни кредитным позициям. Залоговое обеспечение пользователей отражается в их аТокенах, а казначейская функция распределяется между всеми аТокенами.
  • vТокены используются для представления долговых позиций. Долг пользователя представлен vTokens, которыми он владеет.

Aave v3

Aave v3 был выпущен в январе 2023 года с поддержкой многоцепочечного обмена и другими функциями. Эти дополнения не изменяют основную архитектуру. Обновление также может похвастаться улучшенным управлением рисками и эффективностью использования газа.

Несмотря на многочисленные усовершенствования, для целей данного исследования Aave v3 не имеет существенных отличий от Aave v2. На самом деле, это может говорить о том, что архитектура Aave v2 останется надежной и в 2023 году.

Архитектурная эволюция Эйлера

Компания Euler была запущена в декабре 2022 года с целью предложить денежные рынки с не требующими разрешения функциями и минимальным управлением.

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

Несмотря на то, что в одном контракте хранятся все активы, бухгалтерские данные и данные по управлению рисками, по-прежнему существуют eTokens для залога и кредитования и dTokens для долга, как в Aave v2. Однако эти контракты с токенами - всего лишь разновидности центрального контракта на хранение.

  • Контракт Storage управляет переменными учета.
  • Контракт BaseLogic выполняет функции казначейства.
  • Контракт RiskManager контролирует переменные и функции управления рисками, включая проверку обеспечения.

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

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

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

Я не думаю, что монолитная архитектура сыграла роль в истощении активов; скорее, это был недостаточный надзор за обновлениями кода.

Заключение

Тяжелая работа сделана, давайте рассмотрим, чему мы научились

Ранние приложения Ethereum, такие как MakerDAO, Compound и Aave, продемонстрировали потенциал заимствований с избыточным обеспечением на Ethereum. После того, как эти пробные версии оказались успешными, фокус сместился на внедрение целого ряда новых функций для захвата доли рынка. В более поздних версиях Compound и Aave появились доходность, композитность и объединенная ликвидность, которые особенно процветали в условиях "бычьего" рынка.

Значительным событием стало появление в Compound v2 токенизированных кредитных позиций, что позволило признать эти позиции в качестве стандартных активов другими приложениями. Компании Aave v2 и Euler сделали еще один шаг вперед, внедрив токенизированные долговые позиции, более широкая полезность которых остается предметом споров.

Высокая стоимость газа стала одной из главных проблем во время "бычьего" рынка, что привело к изменению пользовательского опыта, как это было в Yield v2, Aave v2 и Euler. Контракты Router и монолитные реализации помогли снизить затраты пользователей на транзакции. Однако это произошло за счет более сложного и, следовательно, более рискованного кода.

Compound v3, похоже, создает прецедент, отдавая предпочтение безопасности перед финансовой эффективностью. Он отклоняется от традиционной модели пула ликвидности, чтобы лучше защититься от возможных взломов. Развитие сетей L2, в которых затраты на газ становятся все более незначительными, вероятно, определит дизайн будущих приложений для залогового кредитования.

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

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

Спасибо, что прочитали, и желаю удачи.

Спасибо компании Calnix за рецензирование и редактирование этой статьи.

Отказ от ответственности:

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