Пост про новый стандарт в TON готовится, а пока завезли для вас разбор интересного способа скама, которым с нами поделился наш подписчик.
Суть проста - кнопка "отправьте нам весь ваш баланс, получите 500к, 1кк, 1ккк долларов, сколько захотите". И действительно - пользователь нажимает кнопку и видит эмуляцию транзакции как на скрине - он отправляет N ton, а получает несметные богатства.
На удивление это очень продвинутый способ скама, для которого нужно подкорректировать смарт-контракт jetton-wallet. Нужно внести два изменения: сделать так, чтобы любой юзер мог пользоваться любым кошельком жетона, и чтобы при отправке жетонов они не вычитались из баланса.(для всего этого нужно удалить 3 строчки в коде контракта jetton-wallet)
Пользователь отправляет деньги на адрес чужого(!) кошелька с жетонами с указанием отправить себе 500к токенов (сколько угодно, зависит лишь от жадности). Кошелек жетонов отрабатывает согласно новому коду - не проверяет, кто прислал транзакцию, и послушно "пересылает" 500к жетонов отправителю. Коды операции совпадают с пересылкой жетонов, и обозреватели блокчейна отображают это как обычный трансфер. Все это становится возможным, т.к мы ранее поменяли смарт-контракт, и он больше не проверяет, есть ли у него на балансе нужная сумма.
Но почему же tonkeeper определяет этот токен как USDT, и даже подписывает цену токена? Тут всё просто - при деплое кошелька жетонов мы указали jetton_master оригинального USDT, и поэтому обозреватели блокчейна определяют его как настоящий доллар.
Написал и опубликовал пример кода, с которого был сделан скриншот. Для того, чтобы им скамить, нужно вносить дополнительные правки, поэтому никому я этим жизнь не упрощаю.
!!! Осторожно, не пользуйтесь этим кодом, если не разбираетесь в его работе досконально, вы можете безвозвратно потерять свои деньги !!!
Это не единственный способ скамить таким образом, я лишь продемонстрировал самый простой вариант. Всегда проверяйте адрес сайта, на котором вы находитесь, и не доверяйте вслепую тому, что вам рисуется на экране.
@theOpenDevBlog
Суть проста - кнопка "отправьте нам весь ваш баланс, получите 500к, 1кк, 1ккк долларов, сколько захотите". И действительно - пользователь нажимает кнопку и видит эмуляцию транзакции как на скрине - он отправляет N ton, а получает несметные богатства.
На удивление это очень продвинутый способ скама, для которого нужно подкорректировать смарт-контракт jetton-wallet. Нужно внести два изменения: сделать так, чтобы любой юзер мог пользоваться любым кошельком жетона, и чтобы при отправке жетонов они не вычитались из баланса.
Пользователь отправляет деньги на адрес чужого(!) кошелька с жетонами с указанием отправить себе 500к токенов (сколько угодно, зависит лишь от жадности). Кошелек жетонов отрабатывает согласно новому коду - не проверяет, кто прислал транзакцию, и послушно "пересылает" 500к жетонов отправителю. Коды операции совпадают с пересылкой жетонов, и обозреватели блокчейна отображают это как обычный трансфер. Все это становится возможным, т.к мы ранее поменяли смарт-контракт, и он больше не проверяет, есть ли у него на балансе нужная сумма.
Но почему же tonkeeper определяет этот токен как USDT, и даже подписывает цену токена? Тут всё просто - при деплое кошелька жетонов мы указали jetton_master оригинального USDT, и поэтому обозреватели блокчейна определяют его как настоящий доллар.
Написал и опубликовал пример кода, с которого был сделан скриншот. Для того, чтобы им скамить, нужно вносить дополнительные правки, поэтому никому я этим жизнь не упрощаю.
!!! Осторожно, не пользуйтесь этим кодом, если не разбираетесь в его работе досконально, вы можете безвозвратно потерять свои деньги !!!
Это не единственный способ скамить таким образом, я лишь продемонстрировал самый простой вариант. Всегда проверяйте адрес сайта, на котором вы находитесь, и не доверяйте вслепую тому, что вам рисуется на экране.
@theOpenDevBlog
The Open Dev Blog
Упавшая транзакция (то есть failed) еще не означает, что изменения в память контракта не были внесены. Мы все привыкли, что если контракт упал при исполнении, то нам возвращается или не возвращается bounce, и никакие изменения, касающиеся этого контракта…
Как узнать, что смарт-контракт внёс какие-то изменения в блокчейн, даже если он упал при исполнении?
Всё просто - в tonviewer можно посмотреть так называемую action фазу. Если ее нет, или она "skipped", то контракт никаких изменений не вносил.
Например, как тут.(нужно нажать на кружочек с восклицательным знаком и посмотреть на информацию внизу 😬) Как видите, compute фаза есть, а справа от нее пусто.
А вот в случае с моим контрактом, несмотря на ошибки при исполнении кода, action фаза отображается. При этом можно заметить, что "total actions" указано как 3, то есть за каждое исходящее сообщение было совершено одно действие (action). Таким образом, смарт-контракт в свои данные никаких изменений не вносил, только отправил 3 сообщения.
Если "total actions" больше, чем число исходящих сообщений, то смарт-контракт внёс изменения в свои ончейн данные.
@theOpenDevBlog
Всё просто - в tonviewer можно посмотреть так называемую action фазу. Если ее нет, или она "skipped", то контракт никаких изменений не вносил.
Например, как тут.
А вот в случае с моим контрактом, несмотря на ошибки при исполнении кода, action фаза отображается. При этом можно заметить, что "total actions" указано как 3, то есть за каждое исходящее сообщение было совершено одно действие (action). Таким образом, смарт-контракт в свои данные никаких изменений не вносил, только отправил 3 сообщения.
Если "total actions" больше, чем число исходящих сообщений, то смарт-контракт внёс изменения в свои ончейн данные.
@theOpenDevBlog
Сколько Aqua Protocol заработал с минта Nomis Score NFT?
В июле этого года к окончанию фарминга в боте Aqua Protocol был приурочен минт Nomis Score - NFT, показывающий "рейтинг" вашего кошелька. Разумеется, это была рефералка - минт одной NFT стоил 1.1 TON, часть средств уходило создателям проекта, а часть - человеку, который привёл аудиторию, то есть на кошелёк julia-innovator.ton.
Экономика такая: для обычного юзера награда за реферала 0.1 TON, но для julia-innovator.ton наградой было 50% от общей прибыли протокола (примерно 0.5 TON).
Реализовано все это в духе нашего поста про подписи. Пользователь получает параметр signature, который передается в транзакции от его кошелька, и который не позволяет подделать данные в сообщении.
На удивление, Aqua заработал с этой активности всего 774 тона, приведя при этом 1586 пользователей. Эти данные только из смарт-контрактов Nomis, платили ли они дополнительно - неизвестно.
Сами же основатели Nomis заработали 21488 TON, судя по данным блокчейна. По нынешнему курсу это порядка 122к$.
Данные взяты из re::doubt.
Friendly remainder - ничего, разумеется, криминального в рефералке нет, но это нигде не афишировалось, и я очень удивился, когда это увидел.
В июле этого года к окончанию фарминга в боте Aqua Protocol был приурочен минт Nomis Score - NFT, показывающий "рейтинг" вашего кошелька. Разумеется, это была рефералка - минт одной NFT стоил 1.1 TON, часть средств уходило создателям проекта, а часть - человеку, который привёл аудиторию, то есть на кошелёк julia-innovator.ton.
Экономика такая: для обычного юзера награда за реферала 0.1 TON, но для julia-innovator.ton наградой было 50% от общей прибыли протокола (примерно 0.5 TON).
Реализовано все это в духе нашего поста про подписи. Пользователь получает параметр signature, который передается в транзакции от его кошелька, и который не позволяет подделать данные в сообщении.
На удивление, Aqua заработал с этой активности всего 774 тона, приведя при этом 1586 пользователей. Эти данные только из смарт-контрактов Nomis, платили ли они дополнительно - неизвестно.
Сами же основатели Nomis заработали 21488 TON, судя по данным блокчейна. По нынешнему курсу это порядка 122к$.
Данные взяты из re::doubt.
Friendly remainder - ничего, разумеется, криминального в рефералке нет, но это нигде не афишировалось, и я очень удивился, когда это увидел.
С постом про стандарт я немного запоздал, т.к хотелось максимально подробно всё рассказать. Но чем больше углублялся, тем больше понимал, что адекватно это в пост не впихнёшь, поэтому напишем обзорную часть.
Недавний релиз мемкоина $DOGS снова подсветил проблему с архитектурой централизованного минта жетонов при аирдропах. Если число юзеров достаточно большое, то объективно никаких мощностей любого блокчейна просто физически не может хватить, если при минте жеттонов участвует один адрес - jetton-master.
Для решения такой проблемы недавно появился новый стандарт жетона на TON - mintless jetton (вот код). Как он работает: минт токенов больше не происходит через jetton-master, а он получается каждым участником аирдропа через его собственный jetton-wallet.
Реализовано это через механизм дерева Меркла (я советую прочитать это, если вы не знаете, что это такое). Механика работы следующая - каждый jetton-wallet хранит у себя переменную mercle_root, то есть хэш, находящийся на верхушке дерева. При получении аирдропа пользователь должен предъявить свой mercle_proof, то есть некоторое криптографическое доказательство, что пользователь в аирдропе участвует. При этом никакой централизованной системы не участвует, каждый jetton-wallet обладает всей полнотой информации, чтобы подтвердить право пользователя на аирдроп. Важно понимать - разумеется, вы ничего подобного при обычном получении аирдропа не увидите, поскольку логика работы, конечно же, будет и должна находиться под капотом приложения, которое отвечает за аирдроп.
Таким образом, при получении своих токенов с точки зрения блокчейна вы будете обращаться не к jetton-master-у, как обычно, а к своему jetton-wallet-у. Его код никак не подменить, несмотря на то, что он "типа ваш". Разумеется, обычный минт тоже присутствует, и ничего не ограничивает владельца токена в обход аирдропа сминтить себе дополнительные токены.
Надо признать, что этот стандарт является по настоящему новым словом в децентрализации. Несмотря на весь fud в сторону TON, в действительности такой пользовательской базы, какая есть у тех же $DOGS, нет больше нигде. И в условном эфире при похожей нагрузке на блокчейн комиссии за обычные транзакции бы подскочили до сотен долларов, как это было, например, во время халвинга биткоина.
Недавний релиз мемкоина $DOGS снова подсветил проблему с архитектурой централизованного минта жетонов при аирдропах. Если число юзеров достаточно большое, то объективно никаких мощностей любого блокчейна просто физически не может хватить, если при минте жеттонов участвует один адрес - jetton-master.
Для решения такой проблемы недавно появился новый стандарт жетона на TON - mintless jetton (вот код). Как он работает: минт токенов больше не происходит через jetton-master, а он получается каждым участником аирдропа через его собственный jetton-wallet.
Реализовано это через механизм дерева Меркла (я советую прочитать это, если вы не знаете, что это такое). Механика работы следующая - каждый jetton-wallet хранит у себя переменную mercle_root, то есть хэш, находящийся на верхушке дерева. При получении аирдропа пользователь должен предъявить свой mercle_proof, то есть некоторое криптографическое доказательство, что пользователь в аирдропе участвует. При этом никакой централизованной системы не участвует, каждый jetton-wallet обладает всей полнотой информации, чтобы подтвердить право пользователя на аирдроп. Важно понимать - разумеется, вы ничего подобного при обычном получении аирдропа не увидите, поскольку логика работы, конечно же, будет и должна находиться под капотом приложения, которое отвечает за аирдроп.
Таким образом, при получении своих токенов с точки зрения блокчейна вы будете обращаться не к jetton-master-у, как обычно, а к своему jetton-wallet-у. Его код никак не подменить, несмотря на то, что он "типа ваш". Разумеется, обычный минт тоже присутствует, и ничего не ограничивает владельца токена в обход аирдропа сминтить себе дополнительные токены.
Надо признать, что этот стандарт является по настоящему новым словом в децентрализации. Несмотря на весь fud в сторону TON, в действительности такой пользовательской базы, какая есть у тех же $DOGS, нет больше нигде. И в условном эфире при похожей нагрузке на блокчейн комиссии за обычные транзакции бы подскочили до сотен долларов, как это было, например, во время халвинга биткоина.
Скоро будет пост о крутой найденной уязвимости в одном из протоколов на Тоне, а также о том, что не всегда стоит воспринимать факт проведённого аудита слишком серьёзно😐
Please open Telegram to view this post
VIEW IN TELEGRAM
Критическая уязвимость в Tradoor.io
Не все знают, но в TON-е существует прямой конкурент Storm trade, на котором можно также торговать perpetuals на различные криптовалюты.
И интересной отличительной чертой является возможность торговать опционами, причём очень короткими, начиная с 5-минутных.
Суть торговли опционами заключается в том, что они потенциально могут дать вам большее плечо, чем обычные perpetuals, а также твоя позиция не будет ликвидирована до конца истечения опциона. Однако есть минусы, заключающиеся в том, что, закрыв опцион по той же цене, что ты его и покупал, ты потеряешь все деньги, то есть цена актива должна изменится на стоимость опциона для того, чтобы хотя бы окупить траты.
Не буду вдаваться в подробности, как именно должна рассчитываться справедливая стоимость опционов различной длительности (вкратце, чем выше волатильность, тем дороже в моменте должен быть опцион), так в чём же заключается уязвимость?
Когда я решил проанализировать, что же передаётся в контракт при покупке опциона, оказалось, что туда прямо из пользовательского интерфейса передаётся и стоимость опциона, и количество купленых опционов, и много другой интересной информации. После нескольких попыток отправки транзакций с измененными вручную значениями оказалось, что их индексером при открытии транзакции совершенно не проверялась цена, по которой происходит покупка, поэтому появлялась возможность купить опцион на любой срок и любой стоимости. А это значит..? Верно, бесконечное плечо!
Пример - на скриншоте я купил PUT опцион на 5 минут с плечом ~43,000х. Но открыть опцион, очевидно, можно было на любой срок и абсолютно любым плечом. Суть в том, что открыв CALL и PUT опцион с огромным плечом одновременно, пользователь мог получить буквально бесплатные деньги, поскольку для выхода позиции в огроменный плюс было достаточно абсолютно любого минимального изменения цены в любую сторону.
Это означает возможность вывода ВСЕЙ ликвидности из волта опционов, совершив всего две сделки за 20$!
Я сразу попробовал связаться с командой через их бота поддержки, написал им про существующую уязвимость, и хоть ответа я так и не получил - буквально спустя пару часов они отключили индексер, а на следующее утро уязвимость уже была исправлена, теперь при попытке покупки опциона по произвольной цене вам просто вернутся ваши USDT. Конечно жаль, что команда не захотела отвечать на мой репорт, но исправили очень оперативно, за что ребятам респект. Если у кого-то есть контакты фаундеров, скиньте в лс, а то сам я не нашёл ничего кроме их чата, где не хочется наводить fud.
А эти заработанные 90$ в сделке при помощи бага я уже слил обратно, тестируя их протокол дальше☹️
@theOpenDevBlog
Не все знают, но в TON-е существует прямой конкурент Storm trade, на котором можно также торговать perpetuals на различные криптовалюты.
И интересной отличительной чертой является возможность торговать опционами, причём очень короткими, начиная с 5-минутных.
Суть торговли опционами заключается в том, что они потенциально могут дать вам большее плечо, чем обычные perpetuals, а также твоя позиция не будет ликвидирована до конца истечения опциона. Однако есть минусы, заключающиеся в том, что, закрыв опцион по той же цене, что ты его и покупал, ты потеряешь все деньги, то есть цена актива должна изменится на стоимость опциона для того, чтобы хотя бы окупить траты.
Не буду вдаваться в подробности, как именно должна рассчитываться справедливая стоимость опционов различной длительности (вкратце, чем выше волатильность, тем дороже в моменте должен быть опцион), так в чём же заключается уязвимость?
Когда я решил проанализировать, что же передаётся в контракт при покупке опциона, оказалось, что туда прямо из пользовательского интерфейса передаётся и стоимость опциона, и количество купленых опционов, и много другой интересной информации. После нескольких попыток отправки транзакций с измененными вручную значениями оказалось, что их индексером при открытии транзакции совершенно не проверялась цена, по которой происходит покупка, поэтому появлялась возможность купить опцион на любой срок и любой стоимости. А это значит..? Верно, бесконечное плечо!
Пример - на скриншоте я купил PUT опцион на 5 минут с плечом ~43,000х. Но открыть опцион, очевидно, можно было на любой срок и абсолютно любым плечом. Суть в том, что открыв CALL и PUT опцион с огромным плечом одновременно, пользователь мог получить буквально бесплатные деньги, поскольку для выхода позиции в огроменный плюс было достаточно абсолютно любого минимального изменения цены в любую сторону.
Это означает возможность вывода ВСЕЙ ликвидности из волта опционов, совершив всего две сделки за 20$!
Я сразу попробовал связаться с командой через их бота поддержки, написал им про существующую уязвимость, и хоть ответа я так и не получил - буквально спустя пару часов они отключили индексер, а на следующее утро уязвимость уже была исправлена, теперь при попытке покупки опциона по произвольной цене вам просто вернутся ваши USDT. Конечно жаль, что команда не захотела отвечать на мой репорт, но исправили очень оперативно, за что ребятам респект. Если у кого-то есть контакты фаундеров, скиньте в лс, а то сам я не нашёл ничего кроме их чата, где не хочется наводить fud.
А эти заработанные 90$ в сделке при помощи бага я уже слил обратно, тестируя их протокол дальше
@theOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
The Open Dev Blog
Критическая уязвимость в Tradoor.io Не все знают, но в TON-е существует прямой конкурент Storm trade, на котором можно также торговать perpetuals на различные криптовалюты. И интересной отличительной чертой является возможность торговать опционами, причём…
Про аудит: у них на лендинге можно найти проведённый в мае этого года аудит от tonbit.
И вроде бы всё прекрасно - проаудировали какие-то контракты, нашли какие-то уязвимости, команда их всех успешно исправила. Однако заметьте, насколько бы подробно вы не пытались прочитать и вникнуть в этот отчёт, у вас не получится этого сделать:
⚫️ На исходный год на гитхабе доступа нет.
⚫️ Из описания найденных уязвимостей имеются только краткие названия, которые мало о чём говорят.
⚫️ По названиям файлов, которые были предоставлены для аудита даже не поймёшь, какой именно функционал проверялся.
⚫️ Проверялся ли сам бэкенд\индексер? Видимо нет.
Это не к тому, что tonbit плохо проводит аудиты, или tradoor специально кого-то обманывает. Очевидно, что за прошедшие 4 месяца они успели дописать много функционала, в том числе, возможно, и опционы, которые они вряд ли успели должным образом проверить.
Однако на первый взгляд кажется, что раз аудит есть, то всё должно быть супер. Всегда проводите dyor всего сами, в том числе и проверяйте публично доступные аудиты!
А если вам нужна консультация по вашим проектам в тоне, то можете писать нам 🙂
@theOpenDevBlog
И вроде бы всё прекрасно - проаудировали какие-то контракты, нашли какие-то уязвимости, команда их всех успешно исправила. Однако заметьте, насколько бы подробно вы не пытались прочитать и вникнуть в этот отчёт, у вас не получится этого сделать:
Это не к тому, что tonbit плохо проводит аудиты, или tradoor специально кого-то обманывает. Очевидно, что за прошедшие 4 месяца они успели дописать много функционала, в том числе, возможно, и опционы, которые они вряд ли успели должным образом проверить.
Однако на первый взгляд кажется, что раз аудит есть, то всё должно быть супер. Всегда проводите dyor всего сами, в том числе и проверяйте публично доступные аудиты!
А если вам нужна консультация по вашим проектам в тоне, то можете писать нам 🙂
@theOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
В преддверии большого поста про шардинг важный совет ончейн проектам на TON-е.
С недавних пор шардинг в TON-е наконец то заработал! Это означает, что если на какой-то из шардов блокчейна (частей, на которые делится блокчейн) ложится нагрузка, которую он неспособен обработать, то ложится исключительно этот шард. Раньше, как все мы помним, ложился весь блокчейн.
Это означает, что теперь просто банально невыгодно находиться в одном шарде с, например, роутером ston.fi, поскольку их архитектура смарт-контрактов подразумевает, что каждый пользователь их платформы отправляет сообщение на этот адрес. Поэтому при больших нагрузках именно шард со ston.fi потенциально будет ложиться.
Крупным (и не только) проектам надо об этом задумываться и калькулировать адреса своих контрактов так, чтобы точно в один шард с потенциально высоконагруженными адресами не попадать. Это несложно - аккаунты распределяются по шардам в зависимости от первых бит адреса. На скрине это правый столбец - маска адреса в шарде. Эту информацию можно посмотреть тут.
С недавних пор шардинг в TON-е наконец то заработал! Это означает, что если на какой-то из шардов блокчейна (частей, на которые делится блокчейн) ложится нагрузка, которую он неспособен обработать, то ложится исключительно этот шард. Раньше, как все мы помним, ложился весь блокчейн.
Это означает, что теперь просто банально невыгодно находиться в одном шарде с, например, роутером ston.fi, поскольку их архитектура смарт-контрактов подразумевает, что каждый пользователь их платформы отправляет сообщение на этот адрес. Поэтому при больших нагрузках именно шард со ston.fi потенциально будет ложиться.
Крупным (и не только) проектам надо об этом задумываться и калькулировать адреса своих контрактов так, чтобы точно в один шард с потенциально высоконагруженными адресами не попадать. Это несложно - аккаунты распределяются по шардам в зависимости от первых бит адреса. На скрине это правый столбец - маска адреса в шарде. Эту информацию можно посмотреть тут.
Завтра выходят хомяки. Ваши ставки. Тон завтра...
Anonymous Poll
42%
Упадет
31%
Не упадёт
27%
С трудом не упадет
Опрос был плохо сформулирован. Блокчейн завтра....
Anonymous Poll
44%
Упадет
25%
Не упадет
31%
С трудом не упадет
Решили проверить свои силы и оказались довольны результатом. Мы решили все задания, заняли 6-ое место, потратив на это не так много времени, как хотелось бы.
Подозреваем, что на этом канале мы не раз еще будет лить fud на TonBit, и этот пост не будет исключением.
Во-первых, задания на CTF по большей части отношения к TON и даже к блокчейну не имели. 3 задания на криптографию, реализованную на Tact (зачем?), задание на странную реализацию дерева Меркла, которое в TON просто бессмысленно реализовывать, т.к для этого есть встроенный механизм. По сути, как-либо относящихся к именно TON или хотя бы к технологии "блокчейн" заданий было 2 - "Dex" и "Airdrop" (это для тех, кто захочет порешать).
Во-вторых, к этому мероприятию очень странно был выбран регламент - зачем-то за 1, 2 и 3 решение давали бонусные очки. Так никто не делает в ctf-движении, это очень странный выбор, ведь мероприятие начиналось в 1 ночи по UTC, поэтому либо надо было вставать ночью и решать, либо ты был заведомо в пролёте, даже если быстрее остальных закончил с заданиями.
В-третьих, при всём при этом несмотря на заверения в каждом тексте задания о том, что используется приватный блокчейн, он приватным не был. Недобросовестный участник вполне мог подсмотреть чужие решения (путем парсинга чужих транзакций в блокчейне), тем более что почти все задания не требовали какого-то особого подхода, зависящего от адреса сдающего. Зачем тогда вы даёте доп баллы за 2 и 3 решение задания, если это решение можно просто подсмотреть? Учитывая, что за первые 4 места были денежные призы, не удивимся, если бы кто-то смухлевал.
В целом первым опытом таких мероприятий на TON мы довольны, но во второй раз на что-то подобное (именно по озвученным выше причинам) попасть бы не хотели. Не исключено, что мы сами в будущем организуем что-то такое, но пока загадывать не будем.
Скоро много нового. Stay tuned!
Please open Telegram to view this post
VIEW IN TELEGRAM
Разработчикам смарт-контрактов, которые с точки зрения логики оперируют с TON (например, принимают его в качестве оплаты), нужно всегда считаться с workchain адреса, с которым они оперируют.
Допустим, вы разрабатываете смарт-контракт и рассчитываете комиссии на операции, хардкодите (чего делать вроде как не советуется, но все, кажется, делают) и проверяете их в коде контракта, а потом в том же коде отправляете транзакцию с точным значением TON на указанный пользователем адрес (с message mode 1 или, еще хуже, 65). В такой ситуации, если вы точно подгоняете комиссии, чтобы пользователь ни в коем случае не переплатил, этот же самый пользователь может вас обмануть.
Дело в том, что в блокчейне TON есть так называемые workchains. Обычно адреса, с которыми мы оперируем, начинаются с "0:". Этот 0 означает, что контракт функционирует в workchain с номером 0. Кроме нулевого, в TON также есть Masterchain, адреса которого начинаются с "-1" (например, вот). Он нужен для системных контрактов блокчейна, пользователи с ним взаимодействовать обычно не должны. Комиссии в Masterchain заметно выше (например, вот тут я заплатил за обычный перевод 0.012 TON при том, что обычно он стоит в 5-6 раз меньше), поэтому если в сообщении вы платите комиссию за пользователя, то пользователь может обмануть, указав адрес из Masterchain, таким образом потратив с вашего контракта больше, чем прислал и должен был получить.
Все это может привести к ошибкам с математикой, т.к ваш баланс на контракте уменьшается больше, чем вы ожидаете. А также в TON есть механизм удаления контрактов, которые не могут оплатить свое хранение в блокчейне, поэтому также это может привести к полной потере данных смарт-контракта. Поэтому даже если вы напрямую с TON не оперируете, эта уязвимость может вам сильно навредить.
Для исключения таких ошибок в контракте стандарта jetton используют функцию force_chain. Также, насколько я знаю, в FunC есть возможность ограничить затрачиваемый газ, но я в этом не разбираюсь, подскажите в комментариях.
Допустим, вы разрабатываете смарт-контракт и рассчитываете комиссии на операции, хардкодите (чего делать вроде как не советуется, но все, кажется, делают) и проверяете их в коде контракта, а потом в том же коде отправляете транзакцию с точным значением TON на указанный пользователем адрес (с message mode 1 или, еще хуже, 65). В такой ситуации, если вы точно подгоняете комиссии, чтобы пользователь ни в коем случае не переплатил, этот же самый пользователь может вас обмануть.
Дело в том, что в блокчейне TON есть так называемые workchains. Обычно адреса, с которыми мы оперируем, начинаются с "0:". Этот 0 означает, что контракт функционирует в workchain с номером 0. Кроме нулевого, в TON также есть Masterchain, адреса которого начинаются с "-1" (например, вот). Он нужен для системных контрактов блокчейна, пользователи с ним взаимодействовать обычно не должны. Комиссии в Masterchain заметно выше (например, вот тут я заплатил за обычный перевод 0.012 TON при том, что обычно он стоит в 5-6 раз меньше), поэтому если в сообщении вы платите комиссию за пользователя, то пользователь может обмануть, указав адрес из Masterchain, таким образом потратив с вашего контракта больше, чем прислал и должен был получить.
Все это может привести к ошибкам с математикой, т.к ваш баланс на контракте уменьшается больше, чем вы ожидаете. А также в TON есть механизм удаления контрактов, которые не могут оплатить свое хранение в блокчейне, поэтому также это может привести к полной потере данных смарт-контракта. Поэтому даже если вы напрямую с TON не оперируете, эта уязвимость может вам сильно навредить.
Для исключения таких ошибок в контракте стандарта jetton используют функцию force_chain. Также, насколько я знаю, в FunC есть возможность ограничить затрачиваемый газ, но я в этом не разбираюсь, подскажите в комментариях.
Если у кого-то есть отзывы по работе ton accelerator, обратитесь, пожалуйста, ко мне в личку, очень нужно проконсультироваться.
Выплаты за поставку ликвидности от DeDust.io
Многие наверняка видели, что DeDust спустя несколько лет всё же соизволил выплатить награды поставщикам ликвидности (те, которые не с фарма). Про то, насколько это невероятная вещь вообще говорить смысла мало, я лично недополучил около 1000$ из-за того что с момента вывода ликвидности из некоторых пар курс этих монет успел упасть во много раз 🙃.
Давайте лучше разберём более интересную вещь. Некоторые, возможно, заходили на DefiLlama и смотрели красивые графики проектов.
Что мы знаем насчёт DeDust - поставщикам ликвидности он никаких денег не выплачивал, однако на графиках по прибыли протокола и собранным fees мы видим просто идеальную картинку - revenue протокола на протяжении всего времени был ровно 20% от общих собранных комиссий.
Хотя, очевидно, это не может быть правдой - поставщикам ликвидности выплатили деньги только несколько дней назад, и то, по формулам, которые сложно понять наверняка.
Что же получается, DeFiLlama врёт нам? Краткий ответ - да.
Но всё не так просто. Чтобы DeFiLlama брала откуда-то информацию, авторы проектов должны написать свой так называемый адаптер. Все адаптеры хранятся в одном большом репозитории. В этих адаптерах авторы проектов сами пишут скрипты, чтобы подавать различную информацию о своих проектах (TVL, Revenue, Value flow и т.д).
Как же DeDust берёт информацию о собранных комиссиях и доходе протокола? Очень просто, со своей собственной API! Они просто берут свою собственную информацию о собранных комиссиях, и буквально умножают её в скрипте на 0.2. На самом деле из-за своей архитектуры они вынуждены делать тоже самое даже для расчёта TVL. Проверить, честно ли они это делают, очень сложно, однако мы можем попробовать посмотреть на tonalytica, где увидим TVL DeDust в 26.6m тон, то есть примерно $142.5m. Однако на DefiLlama через их API мы видим число в $189.99m на момент написания поста. Откуда взялись эти 47 миллионов долларов TVL? Предполагаю, что в TVL они также могут записывать средства, заблокированные на фарминг пулов, но наверняка знает только сама команда DeDust.
Стоит отметить, что это не выходящая из нормы практика, многие проекты делают также - те же STON.fi например (хотя у них различие между информацией с api и тоналитикой не такая существенная). Это в целом объяснимо, когда информация слишком сложная для получения из блокчейна напрямую. Хотя, например, у EVAA TVL берётся исключительно из блокчейна напрямую. Да и у команды Storm Trade получилось брать всю информацию кроме объёма торгов напрямую с блокчейна (TVL) и с redoubt (Fees, Revenue).
И как обычно, не стоит верить всем графикам в интернете, и проводите собственный dyor!
Многие наверняка видели, что DeDust спустя несколько лет всё же соизволил выплатить награды поставщикам ликвидности (те, которые не с фарма). Про то, насколько это невероятная вещь вообще говорить смысла мало, я лично недополучил около 1000$ из-за того что с момента вывода ликвидности из некоторых пар курс этих монет успел упасть во много раз 🙃.
Давайте лучше разберём более интересную вещь. Некоторые, возможно, заходили на DefiLlama и смотрели красивые графики проектов.
Что мы знаем насчёт DeDust - поставщикам ликвидности он никаких денег не выплачивал, однако на графиках по прибыли протокола и собранным fees мы видим просто идеальную картинку - revenue протокола на протяжении всего времени был ровно 20% от общих собранных комиссий.
Хотя, очевидно, это не может быть правдой - поставщикам ликвидности выплатили деньги только несколько дней назад, и то, по формулам, которые сложно понять наверняка.
Что же получается, DeFiLlama врёт нам? Краткий ответ - да.
Но всё не так просто. Чтобы DeFiLlama брала откуда-то информацию, авторы проектов должны написать свой так называемый адаптер. Все адаптеры хранятся в одном большом репозитории. В этих адаптерах авторы проектов сами пишут скрипты, чтобы подавать различную информацию о своих проектах (TVL, Revenue, Value flow и т.д).
Как же DeDust берёт информацию о собранных комиссиях и доходе протокола? Очень просто, со своей собственной API! Они просто берут свою собственную информацию о собранных комиссиях, и буквально умножают её в скрипте на 0.2. На самом деле из-за своей архитектуры они вынуждены делать тоже самое даже для расчёта TVL. Проверить, честно ли они это делают, очень сложно, однако мы можем попробовать посмотреть на tonalytica, где увидим TVL DeDust в 26.6m тон, то есть примерно $142.5m. Однако на DefiLlama через их API мы видим число в $189.99m на момент написания поста. Откуда взялись эти 47 миллионов долларов TVL? Предполагаю, что в TVL они также могут записывать средства, заблокированные на фарминг пулов, но наверняка знает только сама команда DeDust.
Стоит отметить, что это не выходящая из нормы практика, многие проекты делают также - те же STON.fi например (хотя у них различие между информацией с api и тоналитикой не такая существенная). Это в целом объяснимо, когда информация слишком сложная для получения из блокчейна напрямую. Хотя, например, у EVAA TVL берётся исключительно из блокчейна напрямую. Да и у команды Storm Trade получилось брать всю информацию кроме объёма торгов напрямую с блокчейна (TVL) и с redoubt (Fees, Revenue).
И как обычно, не стоит верить всем графикам в интернете, и проводите собственный dyor!
The Open Dev Blog
Выплаты за поставку ликвидности от DeDust.io Многие наверняка видели, что DeDust спустя несколько лет всё же соизволил выплатить награды поставщикам ликвидности (те, которые не с фарма). Про то, насколько это невероятная вещь вообще говорить смысла мало,…
В комментариях правильно написали что график и дата дефилламы по Revenue и Fees как раз есть только с момента, как Дедаст всё “починил”. Поэтому касательно этого графика возможно вопросов и нет.
Хотя опять же, исходного кода Dedust всё ещё нет, информация на дефилламу поступает только с собственной апи от Дедаста, можем только верить 😋
Поинт остаётся тем же - проверяйте откуда берётся информация на DeFiLlama, она может браться далеко не обязательно с блокчейна
Хотя опять же, исходного кода Dedust всё ещё нет, информация на дефилламу поступает только с собственной апи от Дедаста, можем только верить 😋
Поинт остаётся тем же - проверяйте откуда берётся информация на DeFiLlama, она может браться далеко не обязательно с блокчейна
Мы не пропали, мы билдили!
Мы разрабатываем Bidask Protocol — DEX от TheOpenDevBlog!
Уникальность Bidask в том, что он первым на TON имплементирует концентрированную ликвидность: позволяет вкладывать ваши средства с гораздо большей эффективностью и гибко подстраиваться под свою финансовую стратегию. Больше можно почитать в whitepaper-е проекта на нашем сайте, там всё очень подробно описано!
Мы с удовольствем пообщаемся со всеми, кому будет интересен наш проект, а также презентуем Bidask Protocol на ближайшем буткемпе в Москве.
Шильте. Реактите. Интересуйтесь.
@bidask — @TheOpenDevBlog
Мы разрабатываем Bidask Protocol — DEX от TheOpenDevBlog!
Уникальность Bidask в том, что он первым на TON имплементирует концентрированную ликвидность: позволяет вкладывать ваши средства с гораздо большей эффективностью и гибко подстраиваться под свою финансовую стратегию. Больше можно почитать в whitepaper-е проекта на нашем сайте, там всё очень подробно описано!
Мы с удовольствем пообщаемся со всеми, кому будет интересен наш проект, а также презентуем Bidask Protocol на ближайшем буткемпе в Москве.
Шильте. Реактите. Интересуйтесь.
@bidask — @TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Bidask Protocol
🎉 Bidask Protocol — winner of the Moscow Bootcamp!
This Sunday, Moscow hosted one of the bootcamps from the Hackers League Hackathon 2024, and Bidask took first place! We extend our heartfelt thanks to everyone for their support and belief in our project, and we also congratulate the other finalists.
Out team continue to work and are looking forward to victory at the Hackaton final!
Join our new era of DeFi on TON!
This Sunday, Moscow hosted one of the bootcamps from the Hackers League Hackathon 2024, and Bidask took first place! We extend our heartfelt thanks to everyone for their support and belief in our project, and we also congratulate the other finalists.
Out team continue to work and are looking forward to victory at the Hackaton final!
Join our new era of DeFi on TON!
Мы давно ничего не писали в канал, т.к все темы для постов, записанные в заметки, требуют большого погружения и ресерча. Если вы хотите ускорить появление постов — закиньте нам звезд, но это не инвестиционная рекомендация.
НО! Нас можно будет найти на TON Gateway. Обсудить с нами желательно всё, но для удобства мы составили список активностей, в которых мы принимаем участие:
⚫️ Мы очень активно заняты разработкой @bidask. Это наш основной проект, мы бросили на него все силы. Это очень серьёзный финансовый инструмент, который откроет пользователям на TON глаза на то, как реально должен использоваться DeFi. Мы открыты к сотрудничеству.
⚫️ Часть нашей команды участвует в разработке @circus_game. Это не наш проект, но мы в большой степени отвечаем за его техническую часть. Мы можем связать с владельцами для сотрудничества.
⚫️ Мы готовы проводить аудиты и консультации. У нас крайне мощный бэкграунд в безопасности как web2, так и web3, а также возможность привлечь к проекту дополнительные силы в случае, если компетенций основной команды не хватает (крайне редко). Мы уже консультировали ряд крупных и очень крупных проектов в разных блокчейнах.
Наши контакты в био канала.
До встречи!🌞
НО! Нас можно будет найти на TON Gateway. Обсудить с нами желательно всё, но для удобства мы составили список активностей, в которых мы принимаем участие:
Наши контакты в био канала.
До встречи!
Please open Telegram to view this post
VIEW IN TELEGRAM
На TON орудуют сэндвич боты.
Недавно ко мне обратились с проблемой — якобы в TON есть рабочий MEV. И им постоянно бреют работяг при покупке низколиквидных токенов. Как это работает: вы пытаетесь свапнуть токен на DEX или агрегаторе, отправляете транзакцию, а потом видите, что кто-то в блокчейне купил прямо перед вами и продал сразу после вас.
Я этим очень заинтересовался, поскольку все мы знаем, что MEV-а на TON не существует, но при этом боты довольно стабильно встают до пользователя и сразу после. Начал разбираться.
Выяснилось, конечно, что никакой это не MEV, а сэндвич боты работают по принципу обыкновенных снайперов:
⚫️ Они используют кошелёк в том же шарде, что и vault дедаста или роутер ston fi. Этим они обгоняют большинство аккаунтов в сети, ведь на сообщение из одного шарда в другой тратится гораздо больше времени, чем если всё происходит в одном.
⚫️ Если кошелек пользователя находится в одном шарде с контрактами DEX-ов, снайперы отправляют сообщение сразу с нескольких кошельков, тем самым увеличивая шансы на обгон пользователя просто за счёт количества. При этом повторной покупки не случается, т.к у них настроен slippage, и проходит ровно один свап. Поэтому боты выглядят в блокчейне как на картинке.
⚫️ Если пользователя снайпят через dedust, то в сообщении сразу происходит обратный свап, как тут. Кошелёк отправил на DEX тоны, и в той же цепочке сообщений получил в ответ чуть больше тонов. Бесплатные деньги, не иначе.
Мы проконсультировали независимую команду разработчиков, и они пообещали в скором времени выкатить решение для обхода этой проблемы. Подробности раскрывать не можем, т.к, очевидно, снайперы могут к ним приготовиться.
Поэтому мы, как и все, ждём анонса.
@TheOpenDevBlog
Недавно ко мне обратились с проблемой — якобы в TON есть рабочий MEV. И им постоянно бреют работяг при покупке низколиквидных токенов. Как это работает: вы пытаетесь свапнуть токен на DEX или агрегаторе, отправляете транзакцию, а потом видите, что кто-то в блокчейне купил прямо перед вами и продал сразу после вас.
Я этим очень заинтересовался, поскольку все мы знаем, что MEV-а на TON не существует, но при этом боты довольно стабильно встают до пользователя и сразу после. Начал разбираться.
Выяснилось, конечно, что никакой это не MEV, а сэндвич боты работают по принципу обыкновенных снайперов:
Мы проконсультировали независимую команду разработчиков, и они пообещали в скором времени выкатить решение для обхода этой проблемы. Подробности раскрывать не можем, т.к, очевидно, снайперы могут к ним приготовиться.
Поэтому мы, как и все, ждём анонса.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM