Кейс Hegic: опечатка на $48 000 или почему DeFi-протоколам нужны стандарты безопасности

В конце апреля анонимная разработчица Молли Уинтермьют запустила DeFi-протокол Hegic. Она заказала аудит кода у известной фирмы Trail of Bits, но это не помогло избежать проблем. Уже через день после запуска банальная опечатка в одну букву в коде привела к потере почти $48 000 средств пользователей. Уинтермьют вернула средства, перезапустила протокол и считает, что пользователи DeFi должны быть готовы к рискам ради высокой прибыли. Инцидент с Hegic наглядно иллюстрирует проблемы стандартов безопасности DeFi-протоколов: спешка в разработке и в аудите и, как следствие, потеря средств. Как происходил запуск Hegic, с какими проблемами столкнулась Уинтермьют и каких результатов ей удалось добиться к июлю, разобрался DeCenter.

Поспешный запуск Hegic

Hegic — DeFi-протокол торговли опционами, самостоятельно разработанный и запущенный сразу в мейннете анонимной программисткой Молли Уинтермьют.

Основная идея проекта — максимально упростить работу с опционами как с финансовым инструментом. Опционные смарт-контракты дают право (но не обязательство) купить или продать конкретный актив до определенной даты или по согласованной цене. По сути, опционные контракты — это ставка с привлечением заемных средств на то, будет ли цена актива идти вверх (колл-опцион) или вниз (пут-опцион) в течение определенного периода времени. Hegic поддерживает ETH, что позволяет любому пользователю получить доступ к заемной ставке на цену активов в любом направлении.

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

Главное отличие Hegic от других подобных опцион-протоколов (например, Opyn) — коллективные риски при продаже контрактов. Обычно, когда трейдеры продают опционный контракт, они рискуют средствами только в этом конкретном контракте. Однако Hegic диверсифицирует этот риск по всем поставщикам ликвидности пула. Таким образом, продавцы разделяют риск и вознаграждение для всех контрактов, выпущенных из соответствующего пула.

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

1v3 b33n w0rk1ng 0n smthng th4t AI c4ll /Hegic/. AI h0p3 t0 r3v34l my cr34ture 4s4p. #Hegic pic.twitter.com/75xt3gut3j

Опечатка ценой в $48 000

В апреле Уинтермьют заказала аудит кода Hegic известной аудиторской компании Trail of Bits — протокол прошел проверку. Уверенная в его безопасности, 23 апреля разработчица запустила мейннет Hegic.

Но уже 24 апреля Уинтермьют была вынуждена перезапустить протокол. Причиной стала простая опечатка в его коде — вместо функции «OptionsIDs», отвечающей за разблокировку ликвидности в истекших контрактах, была написана несуществующая команда «OptionIDs» — без буквы «s». Ошибка привела к сбою, контракт оказался не исполненным и в результате средства пользователей на сумму $28 537 в ЕТН и DAI оказались заблокированы навсегда — в просроченных контрактах их разблокировать нельзя. Уинтермьют не могла исправить опечатку задним числом — протокол просто не предусматривал такой возможности.

Уинтермьют заметила ошибку самостоятельно, предупредила об этом пользователей в Twitter, Discord и Telegram и быстро исправила опечатку. Она попросила активных держателей опционов осуществить свои контракты, чтобы избежать блокировки своих средств на контрактах пулов навсегда. Тем, кто успел связаться с Уинтермьют, удалось вернуть средства, а остальным разработчица пообещала полностью компенсировать потерянные активы. Уже на следующий день Уинтермьют выпустила подробный отчет и рассказала о трех ошибках, которые совершила при запуске Hegic:

 Решила, что исправление замечаний аудиторов гарантирует безопасность кода;

 Не провела автоматизированное тестирование кода, которое могло бы выявить опечатку;

 Сделала скорость, а не безопасность приоритетом в развитии проекта.

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

‼️ ALERT A typo has been found in the code. Because of that, liquidity in expired options contracts can’t be unlocked for new options. ‼️ Please EXERCISE ALL OF YOUR ACTIVE OPTIONS CONTRACTS NOW. Everyone will be 100% REFUNDED with the amount of premium that you paid for options.

Позже выяснилось, что потери оказались в полтора раза выше. 9 мая Уинтермьют уточнила, что в смарт-контрактах оказались навсегда заблокированы $47 765 — разработчица уверяет, что уже возместила пользователям все потерянные средства.

Спор о компетенциях аудиторской проверки

После инцидента компания Trail of Bits, проверившая код Hegic, подверглась критике. В ответ глава компании Дэн Гвидо заявил, что проверка кода — это не проверка на безопасность, а скорее сводка рекомендаций для разработчиков, чтобы понять недостатки их кода и исправить их. Также он отметил, что у Trail of Bits не было достаточно времени для доскональной проверки кода Hegic. В комментариях изданию Decrypt он сказал, что инцидент — «это явная ошибка, которая была бы легко выявлена, если бы были проведены какие-либо юнит-тесты», то есть проверка на корректность отдельных модулей кода протокола в разных ситуациях использования. По его словам, команда Trail of Bits обнаружила 10 критических недостатков в коде Hegic и рекомендовала отложить запуск протокола в основной сети. Однако Уинтермьют проигнорировала предупреждения об ошибках и ряд критических недостатков, поспешно запустив непроверенный до конца протокол. Это дало пользователям ложное впечатление, что Hegic безопасен.

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

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

Работа над обновлением и еще одна ошибка

9 мая Уинтермьют запустила новую версию Hegic. Перед этим она провела автоматизированные тесты, заметив и исправив ряд новых проблем. На этот раз протокол был запущен вообще без аудита, о чем разработчица честно предупредила пользователей: «Вы можете потерять до 100% своих средств, предоставленных в пулы ликвидности контрактов. Существует технический риск, что контракты новой версии протокола могут быть взломаны. Никогда не вкладывайте средства, которые вы не можете позволить себе потерять».

Однако 21 мая в протоколе Hegic была обнаружена еще одна ошибка. На нее обратил внимание крипто-инвестор Эндрю Кан. В серии твитов он рассказал, что в коде протокола был дефект, позволявший более ранним поставщикам ликвидности получать прибыль без выполнения своих обязательств. Поставщики ликвидности, которые продают опционные контракты (короткие опционы), получают свою премию и могут выйти из пула после его сбора. Проблема заключалась в том, что более поздние поставщики ликвидности затем вынуждены нести все риски, поскольку более ранние поставщики могут забрать свои премии за опционы и уйти. Эта уязвимость была использована Каном — он сначала депонировал ликвидность, затем купил пут-опционы, вывел ликвидность и реализовал опционы. Это принесло ему прибыль без рисков, но заставило более поздних поставщиков ликвидности нести большие потери, чем они ожидали. Уинтермьют никак не прокомментировала твиты Кана.

В мае Уинтермьют все же провела аудит новой версии протокола Hegic, заказав его у компании Bramah Systems.

Результаты работы Hegic за июнь

Обновленная версия протокола Hegic была активирована 1 июня, а код выложен в открытом доступе на GitHub. 1 июля Уинтермьют отчиталась о достигнутых за месяц результатах:

 Торговый объем — 220.24 ETH;

 Торгуется в колл-опционах — 164.82 ETH;

 Торгуется в пут-опционах — 55.42 ETH;

 Общая стоимость заблокированных средств — $39 145, из них $31 411 в ЕТН, остальные — в пуле DAI.

Разработчица не упомянула о каких-либо ошибках в протоколе за месяц.

В начале месяца Уинтермьют также дала интервью платформе The Defiant, в котором подробнее рассказала о проделанной работе и запуске протокола. Она утверждает, что исправила все ошибки, изменила свой подход к разработке и теперь ставит качество выше скорости. Уинтермьют также рассказала, что работает над созданием собственных токенов проекта.

Для тех, кто сомневается в безопасности Hegic, разработчица дала простую рекомендацию: «Не используйте его. Пока соотношение риска и вознаграждения при использовании протокола Hegic не устроит многих людей. Просто наблюдайте, учитесь и с завистью следите за высокими доходами других людей от торговли опционами на Hegic (шутка)».

Она рассказала, что доходность пула поставщиков ликвидности на ETH — около 25% годовых в ETH. Уинтермьют считает, что если кто-то хочет получать такую прибыль, то он должен быть готов внести средства на недавно запущенные протоколы. «Самые большие возможности всегда находятся далеко от текущего внимания стада», — сказала она, заметив, что когда-то Ethereum тоже был сырым продуктом, но те, кто поверил в него, не прогадали.

Отвечая на вопрос, почему она запустила Hegic сразу в мейннете, Уинтермьют ответила, что «один протокол, запущенный в мейннете, стоит тысячи проектов, создатели которых разрабатывают их в течение многих лет и играют с новыми подходами, которые они находят, посещая различные хакатоны». Разработчица также отметила, что уже заплатила высокую цену за свой подход к запуску протоколов.

В заключение

Безопасность — главная из проблем нового криптосектора. DeFi-протоколы постоянно подвергаются атакам злоумышленников. Ранее DeCenter уже писал о том, как в феврале хакер дважды воспользовался уязвимостью протокола bZx и вывел ЕТН почти на $1 млн, а в апреле мошенник вывел $25 млн, заблокированных в китайском DeFi-протоколе dForce. Тогда мы предсказывали, что количество новых атак будет расти, и наши прогнозы, к несчастью, сбылись. Но история с Hegic показала, что средства в DeFi-протоколах могут быть потеряны и по вине разработчиков — из-за чрезмерной спешки.

Инцидент с опечаткой в Hegic — очередной урок для DeFi. Экосистема развивается настолько фантастически быстрыми темпами, что не успевает достаточно тестировать и проверять свои сервисы. Если бы Уинтермьют взяла хотя бы месяц на тестирование, то проблемы не было бы. Собственно, в мае она самостоятельно выявила и исправила несколько ошибок. Если бы Trail of Bits были более внимательными, ошибку тоже легко бы заметили. Но если аудит кода не гарантирует его безопасность, то какой в нем смысл?

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

Источник: DeCenter



Самые актуальные новости - в Telegram-канале

Читайте также

Вверх