Займы - это краеугольный камень блокчейн-приложений на базе Ethereum. Учитывая миллиарды активов, предоставленных во временное пользование, понимание того, как работает заимствование, крайне важно для разработчиков, архитекторов или исследователей.
Подобно эволюции парадигм программирования, эти приложения DeFi имеют разнообразные архитектурные решения, отражающие меняющиеся приоритеты, начиная от безопасности и заканчивая эффективностью и удобством использования.
В этом анализе рассматривается архитектура таких приложений, как MakerDAO, Compound, Aave, Euler и Yield. Мы выделим ключевые инновации и шаблоны дизайна, которые станут важными уроками для разработки будущих кредитных приложений.
Если Вы разработчик, архитектор или исследователь безопасности, эта статья для Вас. К концу курса Вы будете легко понимать новые приложения для заимствования на Ethereum, быстро и полно разбираясь в их архитектуре. Погрузитесь внутрь, чтобы увидеть, как эти гиганты DeFi создаются с нуля.
Большинство займов DeFi имеют избыточное обеспечение. Пользователь может взять в долг определенный актив, если он предоставит залог стоимостью больше, чем сумма займа. В отличие от обычных кредитов, многие из них не предусматривают регулярных выплат или фиксированной даты окончания. По сути, Вы можете взять в долг и никогда не возвращать.
Однако есть одна загвоздка.
Стоимость залога всегда должна превышать стоимость кредита на заранее определенную величину.
Если стоимость залога падает ниже этой суммы, кредит ликвидируется.
Во время ликвидации кто-то другой выплачивает часть или весь Ваш кредит, а взамен получает часть или весь Ваш залог.
Все заявки на займы, следующие этой финансовой структуре, нуждаются в одних и тех же элементах, которые затем могут быть оформлены по-разному:
Процесс заимствования в MakerDAO. Все приложения имеют одинаковые шаги и функции.
Заимствование и кредитование можно рассматривать как отдельные функции. В DeFi мы находим обе функции в большинстве приложений для займов, но они не всегда хорошо интегрированы.
В Compound, Aave и Euler они такие. Процентные ставки для заемщиков и кредиторов внутренне коррелируют; собственно, именно это и позволяет этим приложениям работать с минимальным вмешательством.
С другой стороны, MakerDAO и Yield являются оригинаторами активов, которые они предоставляют заемщикам.
Они не требуют от пользователей предоставлять активы, чтобы другие пользователи могли их занять.
В этой статье мы сосредоточимся на заимствованиях в сети и практически проигнорируем кредитование. Заимствование гораздо сложнее из-за требования залога, и понимание модели заимствования обычно позволяет лучше понять весь протокол.
Логотип 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 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. Просто, но эффективно.
Compound v2 был запущен в мае 2019 года, открыв эру урожайного земледелия и вдохновив бесчисленное количество вилок. Он также функционировал как денежный рынок, позволяя пользователям как кредитовать, так и заимствовать активы.
Исходя из ее технического описания и структуры, очевидно, что основной целью создания Compound v2 было использование стандарта ERC20 для представления кредитных позиций. Это обеспечило композитность, позволив пользователям предоставлять займы в Compound, а затем использовать эти процентные позиции в других блокчейн-приложениях.
Интересно, что в техническом обзоре не упоминается о том, что Compound v2 включает вознаграждения в свои смарт-контракты. Учитывая это упущение, огромное влияние этой функции можно было и не предвидеть.
Процесс заимствования в Compound v2. Первый выход на позиции токенизированного кредитования.
Выпущенный в 2022 году Compound v3 использует более консервативную стратегию управления рисками, разделяя ликвидность на пулы для каждого заемного актива. В дизайне также прослеживается озабоченность удобством использования и стоимостью газа.
Процесс заимствования в Compound v3 (Comet). Вернитесь к основам, вернитесь к безопасности. Но с лучшим UX.
Система стала более интуитивной как для разработчиков, так и для пользователей благодаря сокращению количества необходимых вызовов. Кроме того, единый контракт снижает затраты на газ за счет минимизации переходов между контрактами. Отдельные денежные рынки - это защита от атак на основе оракулов, которые сегодня являются одной из главных проблем безопасности.
Другие важные функции, упомянутые в примечаниях к выпуску, включают:
Интересно, что Compound v3 повторяет архитектуру Compound v1, поскольку все функции для каждого заемного актива выполняет один контракт. Другие примечательные особенности включают:
Запрет на заимствование залога повышает безопасность для тех, кто вносит залог. Это снижает вероятность того, что ошибки в управлении или преднамеренные атаки поставят под угрозу обеспечение.
Устранение доходности по предоставленному залогу может быть результатом того, что Compound удалось накопить много ликвидности в v2. У меня есть интуиция, что в Compound v2 лимиты заимствований были либо ниже, либо не намного выше, чем активы, одолженные приложению пользователями.
Предполагая, что они будут управлять аналогичными уровнями ликвидности для v3, запрет на выдачу залога в долг делает приложение безопасным, что является одной из основных целей v3.
С точки зрения архитектуры:
Aave v1 была запущена в октябре 2019 года, сменив ETHLend. Вместо однорангового подхода ETHLend компания Aave v1 представила общий пул ликвидности.
Процесс получения займа в Aave v1. Объединенная ликвидность означает финансовую и вычислительную эффективность.
Как и в Yield v2, контракт маршрутизатора также содержит бизнес-логику. В LendingPoolCore реализованы функции бухгалтерского учета, управления рисками и казначейства. Объединение казначейства в один контракт стало отличительной чертой Compound v2.
Решение оставить проверки обеспечения в собственном контракте, вызываемом из маршрутизатора, а не из бухгалтерского контракта, кажется слабым, но, вероятно, оно было вполне уместным, поскольку Aave v2 был выпущен всего через два года после выпуска v1.
Aave v2 был выпущен в декабре 2021 года. Хотя в нем сохранились функции, схожие с Aave v1, в нем появилась улучшенная и более простая архитектура по сравнению с Aave v1 и Compound v2. В этом выпуске Aave также представила aTokens (сродни cTokens в Compound) и vTokens, которые представляют собой токенизированные долги.
Aave v2 имеет очень чистую архитектуру, полностью токенизированную.
Некоторые функции из Aave v1, которые имели ограниченное применение, были опущены для простоты. Проблемы Aave v1, такие как сложное представление начисленных процентов, были решены в Aave v2.
Aave v3 был выпущен в январе 2023 года с поддержкой многоцепочечного обмена и другими функциями. Эти дополнения не изменяют основную архитектуру. Обновление также может похвастаться улучшенным управлением рисками и эффективностью использования газа.
Несмотря на многочисленные усовершенствования, для целей данного исследования Aave v3 не имеет существенных отличий от Aave v2. На самом деле, это может говорить о том, что архитектура Aave v2 останется надежной и в 2023 году.
Компания Euler была запущена в декабре 2022 года с целью предложить денежные рынки с не требующими разрешения функциями и минимальным управлением.
Отличительной чертой его дизайна является ромбовидный узор. Один контракт содержит все хранилища приложения. Доступ к этому хранилищу может осуществляться через различные прокси-серверы, каждый из которых управляет отдельным концептуальным элементом системы.
Несмотря на то, что в одном контракте хранятся все активы, бухгалтерские данные и данные по управлению рисками, по-прежнему существуют eTokens для залога и кредитования и dTokens для долга, как в Aave v2. Однако эти контракты с токенами - всего лишь разновидности центрального контракта на хранение.
Анализ кода показывает, что приоритетом была минимальная стоимость газа, что привело к монолитному дизайну, устраняющему необходимость в межконтрактных звонках. Безопасность была обеспечена путем тщательного тестирования и аудита. Только логика была распределена между различными модулями, служащими для реализации контракта на хранение, который действовал в основном как прокси-контракт.
Этот унифицированный дизайн также поддерживает легкую модернизацию. Модули можно быстро заменить для внесения изменений или расширения возможностей, если не требуется изменение системы хранения.
Euler был взломан через пятнадцать месяцев после его выпуска и через шесть месяцев после того, как в обновлении появилась эксплуатируемая уязвимость.
Я не думаю, что монолитная архитектура сыграла роль в истощении активов; скорее, это был недостаточный надзор за обновлениями кода.
Тяжелая работа сделана, давайте рассмотрим, чему мы научились
Ранние приложения Ethereum, такие как MakerDAO, Compound и Aave, продемонстрировали потенциал заимствований с избыточным обеспечением на Ethereum. После того, как эти пробные версии оказались успешными, фокус сместился на внедрение целого ряда новых функций для захвата доли рынка. В более поздних версиях Compound и Aave появились доходность, композитность и объединенная ликвидность, которые особенно процветали в условиях "бычьего" рынка.
Значительным событием стало появление в Compound v2 токенизированных кредитных позиций, что позволило признать эти позиции в качестве стандартных активов другими приложениями. Компании Aave v2 и Euler сделали еще один шаг вперед, внедрив токенизированные долговые позиции, более широкая полезность которых остается предметом споров.
Высокая стоимость газа стала одной из главных проблем во время "бычьего" рынка, что привело к изменению пользовательского опыта, как это было в Yield v2, Aave v2 и Euler. Контракты Router и монолитные реализации помогли снизить затраты пользователей на транзакции. Однако это произошло за счет более сложного и, следовательно, более рискованного кода.
Compound v3, похоже, создает прецедент, отдавая предпочтение безопасности перед финансовой эффективностью. Он отклоняется от традиционной модели пула ликвидности, чтобы лучше защититься от возможных взломов. Развитие сетей L2, в которых затраты на газ становятся все более незначительными, вероятно, определит дизайн будущих приложений для залогового кредитования.
В этой статье я представил исчерпывающий обзор основных приложений для залогового кредитования в Ethereum. Подход, который я использовал для анализа каждой заявки, может быть также применен для быстрого понимания тонкостей других заявок на залоговые займы.
Разрабатывая приложение для заимствований на основе блокчейна, всегда учитывайте особенности хранения активов, размещения бухгалтерских записей, а также методы оценки рисков и залогов. По мере того, как Вы будете работать над этими соображениями, опирайтесь на историю предыдущих применений и на выводы из этого обзора, чтобы обосновать свои решения.
Спасибо, что прочитали, и желаю удачи.
Спасибо компании Calnix за рецензирование и редактирование этой статьи.
Займы - это краеугольный камень блокчейн-приложений на базе Ethereum. Учитывая миллиарды активов, предоставленных во временное пользование, понимание того, как работает заимствование, крайне важно для разработчиков, архитекторов или исследователей.
Подобно эволюции парадигм программирования, эти приложения DeFi имеют разнообразные архитектурные решения, отражающие меняющиеся приоритеты, начиная от безопасности и заканчивая эффективностью и удобством использования.
В этом анализе рассматривается архитектура таких приложений, как MakerDAO, Compound, Aave, Euler и Yield. Мы выделим ключевые инновации и шаблоны дизайна, которые станут важными уроками для разработки будущих кредитных приложений.
Если Вы разработчик, архитектор или исследователь безопасности, эта статья для Вас. К концу курса Вы будете легко понимать новые приложения для заимствования на Ethereum, быстро и полно разбираясь в их архитектуре. Погрузитесь внутрь, чтобы увидеть, как эти гиганты DeFi создаются с нуля.
Большинство займов DeFi имеют избыточное обеспечение. Пользователь может взять в долг определенный актив, если он предоставит залог стоимостью больше, чем сумма займа. В отличие от обычных кредитов, многие из них не предусматривают регулярных выплат или фиксированной даты окончания. По сути, Вы можете взять в долг и никогда не возвращать.
Однако есть одна загвоздка.
Стоимость залога всегда должна превышать стоимость кредита на заранее определенную величину.
Если стоимость залога падает ниже этой суммы, кредит ликвидируется.
Во время ликвидации кто-то другой выплачивает часть или весь Ваш кредит, а взамен получает часть или весь Ваш залог.
Все заявки на займы, следующие этой финансовой структуре, нуждаются в одних и тех же элементах, которые затем могут быть оформлены по-разному:
Процесс заимствования в MakerDAO. Все приложения имеют одинаковые шаги и функции.
Заимствование и кредитование можно рассматривать как отдельные функции. В DeFi мы находим обе функции в большинстве приложений для займов, но они не всегда хорошо интегрированы.
В Compound, Aave и Euler они такие. Процентные ставки для заемщиков и кредиторов внутренне коррелируют; собственно, именно это и позволяет этим приложениям работать с минимальным вмешательством.
С другой стороны, MakerDAO и Yield являются оригинаторами активов, которые они предоставляют заемщикам.
Они не требуют от пользователей предоставлять активы, чтобы другие пользователи могли их занять.
В этой статье мы сосредоточимся на заимствованиях в сети и практически проигнорируем кредитование. Заимствование гораздо сложнее из-за требования залога, и понимание модели заимствования обычно позволяет лучше понять весь протокол.
Логотип 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 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. Просто, но эффективно.
Compound v2 был запущен в мае 2019 года, открыв эру урожайного земледелия и вдохновив бесчисленное количество вилок. Он также функционировал как денежный рынок, позволяя пользователям как кредитовать, так и заимствовать активы.
Исходя из ее технического описания и структуры, очевидно, что основной целью создания Compound v2 было использование стандарта ERC20 для представления кредитных позиций. Это обеспечило композитность, позволив пользователям предоставлять займы в Compound, а затем использовать эти процентные позиции в других блокчейн-приложениях.
Интересно, что в техническом обзоре не упоминается о том, что Compound v2 включает вознаграждения в свои смарт-контракты. Учитывая это упущение, огромное влияние этой функции можно было и не предвидеть.
Процесс заимствования в Compound v2. Первый выход на позиции токенизированного кредитования.
Выпущенный в 2022 году Compound v3 использует более консервативную стратегию управления рисками, разделяя ликвидность на пулы для каждого заемного актива. В дизайне также прослеживается озабоченность удобством использования и стоимостью газа.
Процесс заимствования в Compound v3 (Comet). Вернитесь к основам, вернитесь к безопасности. Но с лучшим UX.
Система стала более интуитивной как для разработчиков, так и для пользователей благодаря сокращению количества необходимых вызовов. Кроме того, единый контракт снижает затраты на газ за счет минимизации переходов между контрактами. Отдельные денежные рынки - это защита от атак на основе оракулов, которые сегодня являются одной из главных проблем безопасности.
Другие важные функции, упомянутые в примечаниях к выпуску, включают:
Интересно, что Compound v3 повторяет архитектуру Compound v1, поскольку все функции для каждого заемного актива выполняет один контракт. Другие примечательные особенности включают:
Запрет на заимствование залога повышает безопасность для тех, кто вносит залог. Это снижает вероятность того, что ошибки в управлении или преднамеренные атаки поставят под угрозу обеспечение.
Устранение доходности по предоставленному залогу может быть результатом того, что Compound удалось накопить много ликвидности в v2. У меня есть интуиция, что в Compound v2 лимиты заимствований были либо ниже, либо не намного выше, чем активы, одолженные приложению пользователями.
Предполагая, что они будут управлять аналогичными уровнями ликвидности для v3, запрет на выдачу залога в долг делает приложение безопасным, что является одной из основных целей v3.
С точки зрения архитектуры:
Aave v1 была запущена в октябре 2019 года, сменив ETHLend. Вместо однорангового подхода ETHLend компания Aave v1 представила общий пул ликвидности.
Процесс получения займа в Aave v1. Объединенная ликвидность означает финансовую и вычислительную эффективность.
Как и в Yield v2, контракт маршрутизатора также содержит бизнес-логику. В LendingPoolCore реализованы функции бухгалтерского учета, управления рисками и казначейства. Объединение казначейства в один контракт стало отличительной чертой Compound v2.
Решение оставить проверки обеспечения в собственном контракте, вызываемом из маршрутизатора, а не из бухгалтерского контракта, кажется слабым, но, вероятно, оно было вполне уместным, поскольку Aave v2 был выпущен всего через два года после выпуска v1.
Aave v2 был выпущен в декабре 2021 года. Хотя в нем сохранились функции, схожие с Aave v1, в нем появилась улучшенная и более простая архитектура по сравнению с Aave v1 и Compound v2. В этом выпуске Aave также представила aTokens (сродни cTokens в Compound) и vTokens, которые представляют собой токенизированные долги.
Aave v2 имеет очень чистую архитектуру, полностью токенизированную.
Некоторые функции из Aave v1, которые имели ограниченное применение, были опущены для простоты. Проблемы Aave v1, такие как сложное представление начисленных процентов, были решены в Aave v2.
Aave v3 был выпущен в январе 2023 года с поддержкой многоцепочечного обмена и другими функциями. Эти дополнения не изменяют основную архитектуру. Обновление также может похвастаться улучшенным управлением рисками и эффективностью использования газа.
Несмотря на многочисленные усовершенствования, для целей данного исследования Aave v3 не имеет существенных отличий от Aave v2. На самом деле, это может говорить о том, что архитектура Aave v2 останется надежной и в 2023 году.
Компания Euler была запущена в декабре 2022 года с целью предложить денежные рынки с не требующими разрешения функциями и минимальным управлением.
Отличительной чертой его дизайна является ромбовидный узор. Один контракт содержит все хранилища приложения. Доступ к этому хранилищу может осуществляться через различные прокси-серверы, каждый из которых управляет отдельным концептуальным элементом системы.
Несмотря на то, что в одном контракте хранятся все активы, бухгалтерские данные и данные по управлению рисками, по-прежнему существуют eTokens для залога и кредитования и dTokens для долга, как в Aave v2. Однако эти контракты с токенами - всего лишь разновидности центрального контракта на хранение.
Анализ кода показывает, что приоритетом была минимальная стоимость газа, что привело к монолитному дизайну, устраняющему необходимость в межконтрактных звонках. Безопасность была обеспечена путем тщательного тестирования и аудита. Только логика была распределена между различными модулями, служащими для реализации контракта на хранение, который действовал в основном как прокси-контракт.
Этот унифицированный дизайн также поддерживает легкую модернизацию. Модули можно быстро заменить для внесения изменений или расширения возможностей, если не требуется изменение системы хранения.
Euler был взломан через пятнадцать месяцев после его выпуска и через шесть месяцев после того, как в обновлении появилась эксплуатируемая уязвимость.
Я не думаю, что монолитная архитектура сыграла роль в истощении активов; скорее, это был недостаточный надзор за обновлениями кода.
Тяжелая работа сделана, давайте рассмотрим, чему мы научились
Ранние приложения Ethereum, такие как MakerDAO, Compound и Aave, продемонстрировали потенциал заимствований с избыточным обеспечением на Ethereum. После того, как эти пробные версии оказались успешными, фокус сместился на внедрение целого ряда новых функций для захвата доли рынка. В более поздних версиях Compound и Aave появились доходность, композитность и объединенная ликвидность, которые особенно процветали в условиях "бычьего" рынка.
Значительным событием стало появление в Compound v2 токенизированных кредитных позиций, что позволило признать эти позиции в качестве стандартных активов другими приложениями. Компании Aave v2 и Euler сделали еще один шаг вперед, внедрив токенизированные долговые позиции, более широкая полезность которых остается предметом споров.
Высокая стоимость газа стала одной из главных проблем во время "бычьего" рынка, что привело к изменению пользовательского опыта, как это было в Yield v2, Aave v2 и Euler. Контракты Router и монолитные реализации помогли снизить затраты пользователей на транзакции. Однако это произошло за счет более сложного и, следовательно, более рискованного кода.
Compound v3, похоже, создает прецедент, отдавая предпочтение безопасности перед финансовой эффективностью. Он отклоняется от традиционной модели пула ликвидности, чтобы лучше защититься от возможных взломов. Развитие сетей L2, в которых затраты на газ становятся все более незначительными, вероятно, определит дизайн будущих приложений для залогового кредитования.
В этой статье я представил исчерпывающий обзор основных приложений для залогового кредитования в Ethereum. Подход, который я использовал для анализа каждой заявки, может быть также применен для быстрого понимания тонкостей других заявок на залоговые займы.
Разрабатывая приложение для заимствований на основе блокчейна, всегда учитывайте особенности хранения активов, размещения бухгалтерских записей, а также методы оценки рисков и залогов. По мере того, как Вы будете работать над этими соображениями, опирайтесь на историю предыдущих применений и на выводы из этого обзора, чтобы обосновать свои решения.
Спасибо, что прочитали, и желаю удачи.
Спасибо компании Calnix за рецензирование и редактирование этой статьи.