Развитие индустрии блокчейна и как защититься от атак на DeFi

В настоящее время рынок блокчейна в целом находится в зачаточном состоянии, а рынок децентрализованных финансов (DeFi) является его наиболее перспективной частью. Согласно данным DefiLlama, в 2021 году на рынке DeFi будет около $200 млрд ликвидности, заблокированной в смарт-контрактах. Если рассматривать этот капитал как первоначальные инвестиции, то рынок выглядит весьма перспективным предприятием. Не так много глобальных компаний могут похвастаться такой капитализацией. Но любой молодой рынок имеет свои проблемы с прорезыванием зубов. Для DeFi основной проблемой является нехватка квалифицированных разработчиков блокчейна.

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

Эта проблема неизбежно создает растущий риск появления лазеек безопасности в коде таких проектов. А затем нам приходится иметь дело с его последствиями в виде потерянного пользовательского капитала. Для краткого понимания того, насколько велика эта проблема, я могу сказать, что около 10% от общего объема ликвидных средств, заблокированных DeFi, было украдено хакерами. Никого не должно удивлять, что широкая общественность предпочитает держаться подальше от финансовой системы, представляющей такую опасность для их средств.

Как изменились эксплойты DeFi в последнее время?

Атаки на DeFi долгое время были сосредоточены вокруг атак на реентерабельность. Мы можем вспомнить знаменитый взлом The DAO в 2016 году, который привел к потере 150 миллионов долларов инвесторского капитала и привел к хард форку Ethereum. С тех пор эта уязвимость многократно эксплуатировалась в различных смарт-контрактах.

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

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

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

Именно это позволило хакерам украсть около 19 миллионов долларов у компании Cream Finance в августе 2021 года. Команда Cream Finance позаимствовала код из другого протокола DeFi и добавила токен обратного вызова в свой смарт-контракт. Несмотря на то, что атаки reentrancy можно предотвратить, реализуя паттерн «проверки, эффекты, взаимодействия», в котором приоритет отдается изменению баланса, а не выдаче средств, некоторые команды все равно не защищают свои платформы от этих эксплойтов.

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

При этом они используют несколько протоколов для заимствования и перетягивания ликвидности до финального акта, когда они повышают цену токена с помощью оракулов или пулов ликвидности и используют ее для мошеннического pump-and-dump и уходят с ликвидностью в ряде крупных криптовалют, таких как Ether (ETH), Wrapped Bitcoin (wBTC) и других. Некоторые известные атаки на флэш-кредиты включают атаку Pancake Bunny, в ходе которой протокол потерял 200 миллионов долларов, и другую атаку Cream Finance, в ходе которой было украдено более 100 миллионов долларов.

Как защититься от DeFi эксплойтов?

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

Тестирование — еще одна важная вещь, которую должны делать все серьезные DeFi проекты. Как генеральный директор компании, занимающейся аудитом смарт-контрактов, я всегда стараюсь охватить 100% кода наших клиентов и подчеркиваю важность децентрализованной защиты приватных ключей, используемых для вызова функций смарт-контрактов с ограниченным доступом. Лучше всего использовать децентрализацию открытого ключа с помощью мультиподписи, которая не позволяет одному субъекту получить полный контроль над контрактом.

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

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