Этот отчет о техническом исследовании был написан Polaris из исследовательской группы ScaleBit с особой благодарностью Норману и Генри из SnapFingers за их комментарии к исправлению.
ТЛ;ДР
В этой статье проводится углубленное исследование разнообразия и сценариев применения рычагов DeFi, подробно анализируются уязвимости на уровне кода и предлагаются ключевые точки безопасности протоколов рычагов.
Введение в кредитное плечо DeFi
Недавний запуск dYdX V4 привлек большое внимание и участие в биржах бессрочных контрактов. dYdX успешно применил случаи торговли с кредитным плечом, и нам следует не только рассчитывать на огромный потенциал dYdX V4, но и обращать внимание на безопасность протокола кредитного плеча. Далее мы будем использовать конкретный анализ кода и примеры, чтобы познакомить вас с различными стратегиями использования и соображениями безопасности.
что такое кредитное плечо
В финансах кредитное плечо — это стратегия, основанная на заимствовании средств для увеличения потенциальной прибыли от инвестиций. Проще говоря, инвестор или трейдер занимает средства, чтобы увеличить воздействие на определенный тип актива, проекта или инструмента, намного превосходя то, чего можно было бы достичь, полагаясь исключительно на свой собственный капитал. Обычно, используя кредитное плечо, инвесторы могут увеличить свою покупательную способность на рынке.

Кредитное плечо в DeFi-трейдинге
Использование кредитного плеча является одной из наиболее важных и распространенных особенностей торговли криптоактивами. Вскоре после основания децентрализованных бирж торговля с кредитным плечом становилась все более популярной, хотя рынок криптовалют уже демонстрировал высокий уровень волатильности.
Как и в случае с традиционными финансами, трейдеры используют кредитное плечо либо просто для того, чтобы занять средства для увеличения своей покупательной способности, либо для того, чтобы воспользоваться преимуществами различных производных финансовых инструментов, таких как фьючерсы и опционы.
Кредитное плечо также увеличилось с 3х, 5х до более чем 100х. Более высокое кредитное плечо означает более высокий риск, но, как видно на большинстве централизованных бирж, по мере роста объема торговли с кредитным плечом этот риск готовы принять агрессивные трейдеры, стремящиеся к более высокой прибыли.
Подробное объяснение классификации кредитного плеча
Что касается DeFi, продукты с кредитным плечом в основном делятся на четыре типа с различными механизмами создания кредитного плеча: кредитование с кредитным плечом, кредитное плечо для маржинальной торговли, кредитное плечо с бессрочным контрактом и токены с кредитным плечом.
Заемное кредитование
Заимствование и кредитование DeFi — одно из первых и крупнейших приложений DeFi, и на рынке уже работают такие гиганты, как MakerDao, Compound, AAVE, Venus и т. д. Логика получения кредитного плеча путем кредитования криптоактивов проста.
Например, если вы держите 10 000 долларов США в Ethereum (ETH) и настроены оптимистично, вы можете внести свой ETH в Compound в качестве залога, одолжить 5 000 долларов США в USDC, а затем обменять эти 5 000 долларов США в USDC на еще 5 000 долларов США в ETH. Это даст вам 1,5-кратное кредитное плечо на ETH, что даст вам возможность использовать ETH в размере 15 000 долларов США по сравнению с вашим первоначальным капиталом в 10 000 долларов США.
Аналогично, если вы настроены по-медвежьи, вы можете внести стейблкоины и одолжить ETH. Если цена ETH упадет, вы сможете купить ETH на рынке по более низкой цене и погасить долг.
Важно отметить, что, поскольку вы будете брать заем по децентрализованному протоколу, вас могут ликвидировать, если стоимость залога упадет или стоимость актива, который вы заимствуете, превысит определенный порог.
Кредитное плечо для маржинальной торговли
Благодаря кредитованию DeFi вы можете делать с этими цифровыми активами все, что захотите. Маржинальная торговля DeFi больше ориентирована на увеличение размера позиции (увеличение покупательной способности) и считается настоящей «позицией с кредитным плечом». Однако есть важное отличие – пока маржинальная позиция остается открытой, активы трейдера выступают залогом заемных средств.
dYdX — это известная децентрализованная маржинальная торговая платформа, которая допускает максимальное кредитное плечо 5x. При маржинальной торговле на dYdX трейдеры используют свои собственные средства в качестве залога, увеличивая свою первоначальную сумму в несколько раз и используя эти увеличенные средства для более крупных инвестиций.
Трейдеры обязаны платить проценты и сборы, связанные с торговлей. Позиция не строится виртуально, она предполагает фактическое заимствование и покупку/продажу.
Если рынок движется в неблагоприятном направлении, активы трейдера могут оказаться не в состоянии полностью погасить заемные деньги. Чтобы этого не произошло, протокол ликвидирует вашу позицию до достижения определенного коэффициента ликвидации.
Как меняется кредитное плечо при маржинальной торговле——
Допустим, у вас трехкратная маржинальная длинная позиция по ETH, но вы не желаете время от времени корректировать свою позицию.
Вы держите 100 долларов США в USDC, занимаете еще 200 долларов США в USDC и торгуете 300 долларов США в ETH, чтобы открыть желаемую длинную позицию в ETH. Уровень кредитного плеча составляет $300/$100 = 3x.
Если цена ETH увеличится на 20%, ваша прибыль составит 300 (1+20%) — 300 = 60 долларов США. Ваш риск, связанный с ликвидацией, ниже, а фактический уровень кредитного плеча снижается до 360/(360-200) = 2,25x. Другими словами, вы автоматически снижаете кредитное плечо, когда цена ETH растет.
Если цена ETH упадет на 20%, ваши потери составят 300 (1-20%) -300 = -60 долларов. Когда дело доходит до ликвидации, вы находитесь в более рискованной позиции, и фактический уровень кредитного плеча автоматически увеличивается до 240/(240-200) = 6x. Другими словами, вы перебалансируете свое кредитное плечо, когда цена ETH падает, что указывает на то, что вы находитесь в более рискованной позиции, чем раньше.
Таким образом, хотя вы можете подумать, что, торгуя с фиксированной маржой в 3 раза, вы поддерживаете постоянное кредитное плечо, в реальном времени кредитное плечо постоянно меняется. Посмотрите на диаграмму ниже, чтобы увидеть, как будет меняться кредитное плечо в зависимости от изменений цен[1].

Кредитное плечо бессрочного контракта
Бессрочные контракты аналогичны традиционным фьючерсным контрактам, но не имеют срока действия. Бессрочные контракты имитируют спотовый рынок, основанный на марже, и поэтому торгуются близко к цене базового эталонного индекса.
Существует множество проектов DeFi, которые предлагают трейдерам бессрочные контракты, например dYdX, MCDEX, Perpetual Protocol, Injective и т. д. Многим трейдерам может быть трудно отличить маржинальную торговлю от бессрочных контрактов – на самом деле, они оба предполагают использование кредитного плеча пользователя.
Однако существуют некоторые различия в механизмах кредитного плеча, комиссиях и уровнях кредитного плеча.
Бессрочные контракты — это деривативы, которые торгуют синтетическими активами и имеют характеристики маржинальной торговли. Цена базового актива отслеживается синтетическим способом без необходимости торговать фактическим базовым активом. Однако маржинальная торговля предполагает фактическое заимствование и торговлю реальными криптоактивами.
С появлением бессрочных контрактов возникла концепция ставок финансирования, цель которой состоит в том, чтобы поддерживать торговую цену бессрочных контрактов в соответствии с базовой справочной ценой. **Если цена контракта выше спотовой цены, длинные позиции будут платить за короткие позиции. **Другими словами, трейдерам необходимо постоянно платить комиссию за заимствование денег.
Кредитное плечо в бессрочных контрактах обычно выше, чем в маржинальной торговле, и может достигать 100x. Механизмы ликвидации и реального кредитного плеча такие же, как и для маржинальной торговли.
Токены с кредитным плечом
Токены с кредитным плечом — это деривативы, которые предоставляют держателям доступ к рынку криптовалют с использованием кредитного плеча, не беспокоясь об активном управлении позицией с кредитным плечом. Хотя они предоставляют держателям возможность использования заемных средств, они не требуют от них иметь дело с маржой, ликвидацией, залогом или ставками финансирования.
Самая большая разница между токенами с кредитным плечом и маржинальной торговлей/бессрочными контрактами заключается в том, что токены с кредитным плечом будут периодически ребалансироваться или при достижении определенного порога для поддержания определенного кредитного плеча.
Это явно отличается от маржинальной торговли и бессрочных контрактов — фактическое кредитное плечо этих продуктов постоянно меняется в зависимости от движения цен, даже если трейдер изначально указал уровень кредитного плеча.
Давайте посмотрим, как работает ребалансировка на примере 3x ETH выше:
У вас есть 100 долларов США в долларах США и вы покупаете токен ETHBULL (3x) с кредитным плечом. Протокол автоматически будет занимать 200 долларов США в долларах США и торговать 200 долларами США в ETH.
Допустим, цена ETH увеличивается на 20%, а цена токена ETHBULL (3x) возрастает до 300*(1+20%)-200 = 160 долларов США до ребалансировки. Теперь ваше фактическое кредитное плечо станет 2,25 (360/160), что ниже целевого кредитного плеча.
В рамках процесса ребалансировки протокол будет занимать больше долларов США из пула стейблкоинов и приобретать дополнительные токены ETH, чтобы вернуть кредитное плечо к 3x. В нашем примере протокол займет еще 120 долларов и обменяет их на ETH. Таким образом, общее кредитное плечо снова станет (360+120)/160 = 3 раза.
Допустим, цена ETH падает на 20%, а цена токена ETHBULL (3x) падает до 300*(1-20%)-200 = 40 долларов США до ребалансировки. Теперь ваше фактическое кредитное плечо станет 6 (240/40), что выше целевого кредитного плеча.
В этом случае протокол будет продавать токены ETH и погашать непогашенную задолженность, чтобы уменьшить кредитное плечо. В этом примере протокол продаст ETH на сумму 120 долларов США для оплаты пула. Долг станет 80 долларов, а общее кредитное плечо снова составит (240-120)/40 = 3x.
Другими словами, токены с кредитным плечом будут автоматически повторно использовать прибыль и уменьшать кредитное плечо убытков, чтобы восстановить целевой уровень кредитного плеча. Если этот механизм работает хорошо, даже при неблагоприятных рыночных тенденциях, держатели токенов с кредитным плечом не будут ликвидированы, поскольку механизм сокращения доли заемных средств будет постоянно снижать эффективный уровень кредитного плеча пользователя.
Таким образом, кредитные пулы в модели токенов с кредитным плечом будут свободны от риска ликвидации и более безопасны, чем кредитные пулы при маржинальной торговле.
Использование вариантов применения
Мы уже узнали о некоторых распространенных типах кредитного плеча протокола DeFi. Далее мы подробно объясним применение кредитного плеча на основе конкретных протоколов DeFi.
ГМХ
GMX [2] — это децентрализованная спотовая и бессрочная биржа, которая предоставляет трейдерам возможность торговать активами с кредитным плечом до 50x. В настоящее время протокол работает на Arbitrum и Avalanche. На GMX трейдеры имеют полное знание своих контрагентов, что полностью отличается от торговли на CEX. GMX отличается от других протоколов бессрочных контрактов, таких как dYdX, тем, что он работает полностью внутри цепочки и использует функциональность AMM для обеспечения торговли с кредитным плечом.

Что отличает GMX от других сервисов, так это то, что это децентрализованная биржа, предлагающая торговые услуги с использованием кредитного плеча. В этом отношении он сочетает в себе опыт, аналогичный другим биржам DeFi, таким как Uniswap, с торговыми услугами с использованием кредитного плеча, предлагаемыми такими компаниями, как Binance.
GMX имеет пул ликвидности GLP, который представляет собой пул с несколькими активами, обеспечивающий ликвидность для маржинальной торговли: пользователи могут открывать длинные/короткие позиции и совершать сделки путем чеканки и сжигания токенов GLP. Пул получает комиссионные LP от торговли и сделок с кредитным плечом, которые распределяются между держателями GMX и GLP.

Чтобы торговать с кредитным плечом, трейдеры вносят залог в протокол. Трейдеры могут выбрать кредитное плечо до 50. Чем выше кредитное плечо, тем выше цена ликвидации, которая будет постепенно увеличиваться по мере увеличения комиссий по займам.
Например, открывая длинную позицию по ETH, трейдер «арендует» потенциал роста ETH из пула GLP; при открытии короткой позиции ETH трейдер «арендует» потенциал роста стейблкоина по отношению к ETH из пула GLP. Однако активы пула GLP фактически не сдаются в аренду.
При закрытии позиции, если трейдер сделает правильную ставку, прибыль будет выплачена из пула GLP в виде длинных токенов; в противном случае убытки будут вычтены из обеспечения и переведены в пул. GLP получает прибыль от убытков трейдеров и прибыль от прибылей трейдеров.
При этом трейдеры платят торговые комиссии, комиссии за открытие/закрытие и комиссию за заимствование в обмен на потенциал роста при открытии длинной или короткой позиции по отношению к доллару США по указанным токенам (BTC, ETH, AVAX, UNI и LINK).

Меркл Трейд
Merkle Trade[3] — это децентрализованная торговая платформа, которая предлагает торговлю криптовалютой, иностранной валютой и сырьевыми товарами с кредитным плечом до 1000x и расширенными торговыми функциями, ориентированными на пользователя. Merkle Trade работает на блокчейне Aptos, предлагая лучшую в своем классе производительность и масштабируемость. По сравнению с Gains Network, он имеет меньшие задержки транзакций и комиссию за обработку, обеспечивая при этом такое же высокое кредитное плечо.

В отличие от большинства бирж, на Merkle Trade нет книги заказов. Вместо этого Merkle LP выступает контрагентом по каждой сделке, собирает залог, когда трейдеры теряют деньги, и выплачивает прибыль по закрытым сделкам с положительной доходностью.
Торгуйте криптовалютами, форексом и сырьевыми товарами с кредитным плечом до 1000x.
Merkle Trade стремится с первого дня предлагать широкий спектр торговых пар, включая криптовалюты, валюту и сырьевые товары, а также предлагает одно из самых высоких кредитных плеч на рынке: до 150x для криптовалют и 1000x для FX.
Выполнение ордеров по справедливой цене, задержка в миллисекунды, минимальное проскальзывание.
Работает на базе блокчейна Aptos с самой низкой задержкой на сегодняшний день и обеспечивает самую быструю из возможных транзакций в цепочке. Для трейдеров это означает более быструю торговлю с меньшим проскальзыванием цены из-за задержек исполнения.
Децентрализованная, некастодиальная торговля без риска контрагента
Трейдеры торгуют с помощью пула ликвидности (Merkle LP), который выступает в качестве контрагента по каждой сделке по протоколу. Все транзакции и расчеты выполняются с помощью смарт-контрактов, и средства пользователей не хранятся в любое время.
Минимальная комиссия за обработку
Merkle Trade утверждает, что на сегодняшний день у нее одна из самых низких комиссий на рынке. На момент запуска комиссия составляет всего 0,05% для торговых пар с криптовалютой и всего 0,0075% для торговых пар с валютой.
dYdX
dYdX[4] — это децентрализованная биржа (DEX), которая дает пользователям возможность эффективно торговать бессрочными контрактами, полностью контролируя свои активы. С момента своего запуска в 2021 году в dYdX V3 было использовано уникальное решение масштабирования уровня 2, не связанное с хранением, для реализации обмена, но его книга заказов и механизм сопоставления по-прежнему управляются централизованно.
И теперь, с dYdX V4, протокол развивается в отдельную цепочку и полностью реорганизует весь протокол для достижения полной децентрализации при одновременном увеличении пропускной способности. dYdX также включает три функции: кредитование, маржинальная торговля и бессрочные контракты. Маржинальная торговля имеет функцию заимствования.Средства, внесенные пользователями, автоматически образуют пул средств.Если во время транзакции недостаточно средств, они автоматически займут и выплатят проценты.

Используйте анализ безопасности
Мы представили общие типы и приложения кредитного плеча в DeFi. Аналогичным образом, при разработке кредитного плеча все еще существует много проблем безопасности, которые заслуживают нашего внимания. Мы проанализируем проблемы безопасности и точки аудита кредитного плеча DeFi на конкретных случаях аудита.
Различают лимитные и рыночные ордера.
В большинстве биржевых приложений с кредитным плечом существуют лимитные и рыночные ордера, и необходимо строго различать и проверять лимитные и рыночные ордера. Далее мы проведем подробный анализ проблем, которые мы обнаружили в ходе аудита Merkle Trade [5].
пусть сейчас = метка времени::now_секунды(); if (сейчас — order.created_timestamp > 30) { cancel_order_internal<PairType, ColternalType>(orderid, order, T_CANCEL_ORDER_EXPIRED); возвращаться };
Эта часть кода предназначена для выполнения проверки в функции заказа, в этой функции проверяется, прошло ли более 30 секунд с момента создания заказа. Если условия соблюдены, вызывается cancel_order_internal() для отмены ордера. Однако, если ордер является лимитным, это означает, что он имеет определенную цену, установленную трейдером, по которой он готов купить или продать актив. Это суждение не следует использовать при исполнении лимитных ордеров, поскольку это может привести к тому, что большинство лимитных ордеров не будет исполнено. Поэтому важно строго различать торговую логику лимитных ордеров и рыночных ордеров.
Ошибка расчета кредитного плеча
Ошибки в расчетах всегда были очень распространенной проблемой в DeFi, и особенно они распространены в кредитном плече.Мы будем использовать проблемы, обнаруженные в ходе сторонних аудитов протокола Unstoppable[6], чтобы провести углубленное исследование расчета кредитного плеча. .
Давайте посмотрим на код в Unstoppable, который рассчитывает кредитное плечо:
def Calculateleverage(positionvalue: uint256, Debtvalue: uint256, Marginvalue: uint256) -> uint256: if Positionvalue <= значение долга: # возврат безнадежного долга max_value(uint256) return ( PRECISION * (_debt_value + Marginvalue) / (_position_value - значение долга) / PRECISION ) Функция расчета кредитного плеча приводит к неправильному расчету кредитного плеча, используя значение долга + значение маржи в качестве числителя вместо значения позиции. Три входных параметра этой функции — Positionvalue, _debt_value и Marginvalue — все определяются ценовой информацией, предоставленной оракулом в цепочке Chainlink. где _debt_value представляет собой стоимость конвертации доли долга позиции в сумму долга в долларах США. _margin_value представляет собой текущую стоимость (в долларах США) суммы начальной маржи позиции. _position_value представляет собой текущую стоимость (в долларах США) начальной суммы позиции.
Проблема с приведенным выше расчетом заключается в том, что значение долга + значение маржи не представляет стоимость позиции. Кредитное плечо — это соотношение между текущим значением позиции и текущим значением маржи. _position_value — значение долга правильное, оно представляет собой текущее значение маржи, но значение долга + значение маржи не представляет текущую стоимость позиции, поскольку нет гарантии, что токен обязательства и токен позиции будут иметь соответствующие колебания цен.
например:
Токеном ответственности является ETH, а токеном позиции — BTC.
Используя 1 ETH в качестве маржи, Алиса занимает 14 ETH (2000 долларов США за ETH) и получает 1 BTC (30 000 долларов США за BTC) в позиционных токенах. Кредитное плечо 14.
На следующий день цена ETH все еще составляла 2000 долларов США за ETH, но цена BTC упала с 30 000 долларов США за BTC до 29 000 долларов США за BTC.
На этом этапе кредитное плечо должно составлять (_position_value == 29 000)/(_position_value == 29 000 - значение долга == 28 000) = 29.
Вместо значения, рассчитанного в контракте: (_debt_value == 28 000 + Marginvalue == 2 000) / (_position_value == 29 000 - Debtvalue == 28 000) = 30.
Поэтому, чтобы решить эту проблему, следует использовать правильную формулу, упомянутую выше, для расчета кредитного плеча в смарт-контрактах. Ошибки в расчете кредитного плеча могут привести к несправедливой ликвидации или чрезмерному кредитному плечу в случае волатильности цен.
В смарт-контрактах обеспечение правильных расчетов кредитного плеча имеет решающее значение для поддержания надежности системы и интересов пользователей. Правильный расчет кредитного плеча должен основываться на соотношении текущего значения позиции и текущего значения маржи. Если используется неверная формула расчета, это может привести к тому, что система будет неадекватно реагировать на изменения цен, ликвидировать позиции, которые не должны быть ликвидированы, или позволить позициям с чрезмерным кредитным плечом продолжать существовать, тем самым увеличивая риски для системы и пользователей.
логическая ошибка
Логические ошибки требуют особого внимания при аудите смарт-контрактов, особенно в сложной логике, такой как транзакции с использованием кредитного плеча DeFi.
Давайте воспользуемся проблемами, обнаруженными в ходе стороннего аудита Tigris[7] (Tigris — это децентрализованная торговая платформа с синтетическим кредитным плечом, основанная на Arbitrum и Polygon), чтобы обсудить логические проблемы, на которые необходимо обратить внимание при использовании кредитного плеча DeFi.
Давайте посмотрим на логику функции закрытия лимита в Tigris:
функция limitClose (uint id, bool tp, PriceData calldata PriceData, байты подписи данных вызова) external { checkDelay (id, false); (uint limitPrice, адрес tigAsset) = TradingExtension._limitClose(_id, tp, PriceData, подпись); closePosition(_id, DIVISION_CONSTANT, limitPrice, адрес (0), tigAsset, true); } Функция limitClose (uint id, bool tp, PriceData calldata PriceData, байты подписи данных вызова) внешнее представление возвращает (uint limitPrice, адрес tigAsset) { checkGas (); IPosition.Trade Memory trade = Position.trades(id); tigAsset = trade.tigAsset; getVerifiedPrice(_trade.asset, PriceData, подпись, 0); uint256 цена = ценаДанные.цена; if (_trade.orderType != 0) revert("4"); //IsLimit if (_tp) { if (_trade.tpPrice == 0) revert("7"); //LimitNotSet if (_trade.direction) { if (_trade.tpPrice > цена) revert("6"); //LimitNotMet } else { if (trade.tpPrice < цена) revert("6"); //LimitNotMet } limitPrice = trade.tpPrice; } else { if (trade.slPrice == 0) revert("7"); //LimitNotSet if (_trade.direction) { if (_trade.slPrice < цена) revert("6"); //LimitNotMet } else { if (trade.slPrice > цена) revert("6"); //LimitNotMet } //@audit стоп-лосс закрывается по указанной пользователем цене, а НЕ по рыночной цене limitPrice = _trade.slPrice; } }
При использовании стоп-лосса для закрытия позиции ценой закрытия пользователя является цена стоп-лосса, установленная пользователем, а не текущая цена актива. На направленных рынках и с высоким кредитным плечом пользователи могут злоупотреблять этим, чтобы добиться практически безрисковой торговли. Пользователи могут открыть длинную позицию и установить цену стоп-лосса на 0,01 доллара ниже текущей цены.
Если цена сразу упадет при следующем обновлении, они закроют позицию по цене входа и заплатят только комиссию за открытие и закрытие. Если цены вырастут, они значительно выиграют. В результате пользователи могут злоупотреблять методом установки цены стоп-лосса, чтобы открывать сделки с высоким кредитным плечом, высоким потенциалом роста и низким риском падения.
колебания цен
Влияние колебаний цен на кредитное плечо DeFi очень важно.Только всегда учитывая колебания цен, вы можете обеспечить безопасность соглашения о кредитном плече. В качестве примера для углубленного анализа возьмем проблемы, обнаруженные при стороннем аудите протокола DeFiner[8]:
Протокол DeFiner выполняет две проверки перед обработкой вывода средств.
Сначала метод проверяет, превышает ли сумма, запрошенная пользователем для вывода, баланс актива:
function capture(address accountAddr, Address Token, uint256 sum) external onlyAuthorized return(uint256) { // Проверяем, меньше ли сумма вывода, чем баланс пользователя require(amount <= getDepositBalanceCurrent(_token, accountAddr), "Недостаточный баланс."); uint256 братьLTV = globalConfig.tokenInfoRegistry().getBorrowLTV(токен);
Во-вторых, метод проверяет, не оставит ли пользователь при снятии средств слишком большое кредитное плечо. Снятая сумма вычитается из «силы заимствования» пользователя по текущей цене. Если общая стоимость заимствований пользователя превышает новую кредитную способность, метод терпит неудачу, поскольку у пользователя больше нет достаточного обеспечения для поддержки своей позиции по заимствованию. Однако это требование будет проверяться только в том случае, если пользователь еще не имеет избыточного кредитного плеча:
if (getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr)) require( getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr).sub( sum.mul(globalConfig.tokenInfoRegistry().priceFromAddress(token)) .mul(borrowLTV).div (Utils.getDivisor(address(globalConfig), _token)).div(100) ), "Недостаточно обеспечения при выводе.");
Если пользователь занял больше, чем позволяет его «возможность заимствовать», снятие средств может быть произведено в любом случае. Такая ситуация может возникнуть в различных ситуациях, наиболее распространенной из которых являются колебания цен. Протокол не учел влияние колебаний цен на протокол, что и вызвало данную проблему.
другой
Помимо вышеупомянутой неспособности провести различие между лимитными ордерами и рыночными ордерами, ошибками в расчетах, логическими ошибками и влиянием колебаний цен, существует множество моментов безопасности, связанных с соглашениями о кредитном плече, на которые нам необходимо обратить внимание. Это включает, помимо прочего, такие проблемы, как атаки на флэш-кредиты, манипулирование ценами, безопасность Oracle, контроль доступа, недостаточные или отсутствие строгих проверок кредитного плеча и другие проблемы. При разработке и реализации протокола рычага эти факторы должны быть тщательно и внимательно рассмотрены, чтобы обеспечить надежность протокола и безопасность пользовательских активов. Превентивные меры, мониторинг в режиме реального времени и планы реагирования на чрезвычайные ситуации также имеют ключевое значение для снижения потенциальных рисков и защиты интересов пользователей.
Подведем итог
Внедрение торговли с кредитным плечом в протоколах DeFi обеспечивает рынку большую работоспособность, но также приводит к более сложным торговым механизмам. Хотя торговля с использованием кредитного плеча предоставляет пользователям больше инвестиционных возможностей, ее потенциальные риски и проблемы для безопасности протоколов также стали более значительными.
По мере увеличения кредитного плеча работа протокола становится более гибкой, но он также становится более хрупким и восприимчивым к различным угрозам безопасности. Это включает в себя возможность не проводить строгого различия между лимитными и рыночными ордерами, ошибки в расчетах, логические ошибки и чрезвычайную чувствительность к таким факторам, как колебания цен. В этом случае мы должны уделять больше внимания безопасности протокола, чтобы обеспечить эффективную защиту активов пользователей.
ScaleBit — ведущая команда по безопасности блокчейнов в области Web3, расположенная в Кремниевой долине, Сингапуре, Гонконге, Тайване и других местах. Мы предоставили решения по безопасности блокчейна более чем 200 учреждениям и проектам в глобальной области Web3, проверили в общей сложности более 180 000 строк кода и защитили активы пользователей на сумму более 8 миллиардов долларов США. Сделайте безопасность доступной для всех! Если у вас есть какие-либо потребности в аудите безопасности, пожалуйста, свяжитесь с нами. Мы подготовим для вас подробные, комплексные и профессиональные решения по безопасности, которые защитят вас и сферу Web3!