Yield Basis: Уязвимость, которую мы (не)ожидали и фейковая "fundamental" цена yb Token'ов
Всем привет, с вами Артем
Сегодня разберём уязвимость в Yield Basis. Это продолжение моего предыдущего поста, который вызвал бурную реакцию комьюнити Yield Basis. После публикации я пообщался с командой, получил интересную и важную информацию, за что ребятам отдельный респект
Что произошло после прошлого поста
Опубликовав прошлый пост (https://t.me/ortomich_main/650), где я пытался описать на популярном языке проблему, которую я увидел в системе Yield Basis - мне повалились комплименты в комменты о моей некомпетентности вообще во всем, но, неожиданно, рынок дропнулся на следующий день после публикации и доказал, что пост был верным (да, злорадствую чуть-чуть)
Биткоин обвалился, вместе с ним упала цена shares в Yield Basis: если раньше условно 1 BTC = 1 Shares, то теперь 1 Shares можно было обменять на меньшее количество BTC. Падение составило 3–4%, но позже немного восстановилось.
Важно отметить: падение было не таким катастрофическим, как я ожидал. Я думал, будет в 3 раза хуже для Yield Basis. Так что команда справилась достойно - но падение всё же было:
Curve USD потерял пег на 1 цент, и до сих пор не восстановился.
Упала цена shares в Yield Basis.
Фундаментальная цена Shares: откуда она вообще?
В Yield basis есть 2 цены для каждого shares (можно посмотреть тут https://nikcrv.github.io/YB/):
Redemption price — сколько вы получаете, если выводите сейчас.
Fundamental price — цена, к которой якобы стремится redemption price со временем и к которой она всегда восстанавливается.
Меня заинтересовало: почему вообще две цены, при том что везде была риторика аля “fundamental это реальная цена, а redemption это так, временные убытки“. Почему redemption должна после падения все равно возвращаться к fundamental? Как считается эта фундаментальная цена?
Я просил в чате Curve Ru и мне скинули контракт https://etherscan.io/address/0xAC0cfa7742069a8af0c63e14FFD0fe6b3e1Bf8D2#readContract и сказали что функция pricePerShare считает эту фундаментальную цену на основании цены ЛП позиции. Я в нём покопался и понял, в чём суть:
Если LP-позиция падает в цене, то Yield Basis “сжигает” shares, уменьшая total shares supply. Таким образом, даже при падении TVL, цена одного shares типо не меняется. Математически — красиво, но фактически цена падает. И это в чате Curve подтвердили. В итоге оказывается что реальная цена это redemption price, а fundamental price ничего на самом деле к цене относящегося не имеет и является просто цифрой, никаких доп стимулов для приведения redemption price к fundamental price нет, надо просто ждать пока накопится достаточно комиссий, чтобы вернуть цену shares из redemption в fundamental
Восстановление: как быстро вернём убытки?
Согласно механике Yield Basis, redemption price должна постепенно восстановиться к fundamental за счёт комиссий и дохода. Я прикинул на примере пула cbBTC:
Убыток составил ~$3.5 млн (считается как: количество cbBTC в пуле * (fundamental price - redeem price) * BTC price)
В резервах для ребалансировке — только ~$500k (да и те в анпегнутом crvUSD) (https://www.ybmonitor.com/pool/1-4)
APR не так высок, чтобы покрыть быстро.
Итого: потребуется 3–4 месяца, чтобы вернуть цену шейрза к цене до падения. Всё это при условии, что рынок останется стабильным (ну или кто-то просто с кармана должен будет компенсировать убытки, чтобы ускорить этот процесс восстановления)
Если вы заходили в Yield Basis месяц назад, то сейчас вы в минусе на ~3% по BTC. Убыток не в долларах, а именно что в базовом токене (биток). Если вы заходили в самом начале - вы просто вернулись к исходной точке, потеряв накопленный APR с ноября.
Итоги
Yield Basis выдержал падение, но со скрипом. Если изменятся параметры влияющие на риск (TVL, LTV, APY, total crvUSD debt, etc), то урон может быть больше при следующей подобной ситуации
Уязвимость, о которой я говорил ранее, действительно проявилась.
Система требует времени для восстановления и может нести убытки по базовому активу.
Fundamental price является просто цифрой и не имеет ничего общего с ценой шейрза
Комьюнити Yield Basis — уважение за прозрачность и обратную связь. Если вы найдете где-то неточность или неправоту в данной статье - пишите в комменты, буду рад обсудить и исправить!
Ну а решение, класть деньги в протокол или нет - за вами.
Всем спасибо за прочтение! Подписывайтесь на мой телеграм канал https://t.me/ortomich_main

