Садржај поста
🔥Про перпы, Storm trade, тяжелые времена. Наверняка многие уже в курсе нового супер-скандала, где Storm trade ОБМАНУЛ и ЗАСКАМИЛ пользователя, написав в интерфейсе, что он в профите на десятки сотен процентов, а затем просто "закрыл позицию" без объяснения причин. Разбираемся, что произошло. Что вчера случилось — на всех крупных рынках (в первую очередь CEX), вероятно, просто кончились лимитные заявки на покупку тона, именно поэтому "цена" на TON падала до 0.5$. Нужно понимать, что сама по себе без объёмов торгов эта цена мало что значит, вряд ли по ней было много спотовых сделок, однако как факт — маленький промежуток времени на рынке вполне можно было наблюдать практически пустой стакан. Это означает две вещи: ⚫️ по такой цене нельзя было продать TON на большую сумму ⚫️ по такой цене нельзя было купить TON на большую сумму После того, как MM проснулись, цена быстро ушла обратно ближе к 2$, и на момент написания поста уже вполне себе хорошо торгуется по цене около 2.2$. Storm trade устроен иначе, не как CEX, — там нет стакана, нет в традиционном понимании лимитных заявок на покупку/продажу, там есть так называемый оракул (PYTH). В крайне упрощенном виде — это сервис, присылающий актуальные цены в блокчейн. На Storm trade в любой момент можно открыть любую позицию на любом рынке с любым плечом (главное, чтобы open interest позволил). Очевидно, что при такой гибкости требуются механизмы защиты протокола. Когда вы открываете позицию, вы посылаете на смарт-контракт сообщение для создания ордера на открытие данной позиции. Это означает, что между нажатием вами кнопки в интерфейсе и открытием самой позиции есть довольно большой (по меркам волатильного рынка) временной промежуток. Если цена, по которой вы открывали позицию, и цена на момент обработки ордера сильно отличаются — позиция просто не откроется. По сути это slippage, как на любом DEX. Если внимательно изучить интерфейс Storm trade, то можно заметить, что пока открытие позиции обрабатывается — самой позиции ещё нету, а есть лишь ордер на её открытие, что вполне нормально и логично. Slippage на perp DEX существует для того, чтобы потенциальный злоумышленник не мог указать случайную цену, заведомо отличающуюся от нынешней, и таким образом не мог открывать заведомо плюсовые сделки, выводя ликвидность из протокола. Такой баг мы находили у другого perp DEX на TON — Tradoor, и своевременно их предупредили, после чего баг был закрыт. Поэтому никакого скама не произошло — ордер провисел 15 минут в блокчейне, а затем закрылся, т.к цена в нём не прошла проверку по slippage на индексере. Обидно, больно, неприятно, хочется топать ножками — но это так. Важно понимать — perp DEX бывают разные. Например, в то время как Storm trade просто не открывал некоторые позиции из-за невероятной волатильности, аналогичные позиции на Drift protocol просто невозможно было открыть by design — в их orderbook стакане попросту не было заявок, торги прекратились на цене порядка 1.6$. @TheOpenDevBlog