InVM - изнутри о Web3 – Telegram
InVM - изнутри о Web3
554 subscribers
47 photos
5 files
81 links
Про тонкости работы Defi в EVM-блокчейнах глазами solidity разработчика.

Админ @zerofuz
Download Telegram
По существу писать нечего, но есть замечательные ответы от саппортов криптобирж:

Sorry to keep you waiting.

As checked, we could see your asset retrieval application was rejected because you captured the screenshot from blockchain explorer.

Please contact the customer support of DEX to get the screenshot as required and then resubmit your asset retrieval application.

We need the transaction detail to verify so that we can return your assets.

Thank you for your understanding. Please don’t hesitate to contact us if you have any other questions.


Если коротко, то саппорт биржи предлагает связаться с саппортом 1inch/uniswap, чтобы тот подтвердил осуществление свапа.
👍6😁2
InVM - изнутри о Web3
Скоро узнаем, повторится ли история) Начало серой зоны 17 450 $
tg_image_349286467.jpeg
616 KB
Зачем изучать ai/ml/llm/web3, когда есть btc циклы?

Обновление по графику от 13 июня 2022

ATH может оказаться 258000$ в этом цикле. Примерно в 2025-2026 году (симметричная ширина синих прямоугольников)

Все волшебство графика в:
- логарифмическая шкала
- fib retracement с дефолтными уровнями
- первый цикл проводим от лоя, до хая
- следующий цикл от уровня 0.786 будет началом следующего цикла, у которого на этой высоте уровень 1

Серые прямоугольники связаны между собой

Увидимся в 2026 :D
👍9🔥1
Битковины ваши расти перестали, пора на завод переобуваться из криптоинвестиций в разработку.

LLM - Large Language Models, общее название всем известных и не очень chatgpt, claude, phind, commandR и других моделей, доступных в формате чат-ботов с сохранение контекста переписки.

Использование LLM еще не мейнстрим повестка, по ощущениям на второй стадии "Ранние последователи" по Роджерсу [en][ru]

Для обучения LLM нужны тысячи специализированных устройств и огромные наборы данных для тренировки, в анонсе недавно представленной модели llama3 написано:
It’s been trained on our two 24K GPU clusters on over 15T token of data – a training dataset 7x larger than that used for Llama 2, including 4x more code.


Риски и ограничения использования LLM:
- "Галлюцинации" в ответах, когда чат-бот убедительно вводит в заблуждение. Чем больше опыт написания промптов, с опытом это заметнее.
- Чаты юзеров - новая форма больших данных для обучения. Новая грань цифровой гигиены - давать меньше данных для обучения через чаты.
- Приватность чатов. Большие модели LLM (>=70b) все еще дорого запускать в рамках домашнего сетапа, остаются облачные варианты, зачастую закрытых моделей, где приватность под вопросом и обучение на данных чатов не контролируется, есть просто checkbox что "не нада обучаться на данных моих чатов"
- Фильтры внутри LLM. Идея хорошая, не допускать того, чтобы LLM обучали делать плохие вещи и вещества, но обратная сторона в том, что создатели модели решают что хорошо, а что плохо, остается риск, что кожаные мешки будут переписывать неудобные исторические факты.
- Модели устаревают за пару месяцев. Нужно пользоваться наиболее продуктивной по бенчмаркам моделью, чтобы быть на коне. Модель 2021 года не может знать про golang generics и следовательно генерировать код с такой фичей. В аналоге npmjs/pypi для моделей есть результаты бенчмарков

------------------------------------

За последние пару месяцев получается внедрять LLM ассистентов, большую часть гуглежа направляю в LLM и получаю ответы быстрее и качественее.

Эволюция процесса программирования видится так:
- Человек ориентируется по книгам программирования
- Человек гуглящий и ютуб смотрящий
- Человек с LLM ассистентами и ютуб смотрящий, изредка гуглящий.

Сетап для программирования дополнился установкой плагина continue для vscode/jetbrains и настройкой на работу с открытыми моделями внутри (llama3 на https://www.together.ai/). Скрипт настройки прикреплю в первом комментарии

Еще сетап дополнился full-line-completion в jetbrains ide. Локальная тупенькая LLM что по контексту файла советует что писать на строке с кареткой. Это непередаваемое облегчение, когда с ее помощью меньше печатать текста для типовых текстов ошибок.

Выделяю фрагмент кода или функцию, прошу модель из continue отрефакторить или "причесать" код или создать тест кейсы.

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

Технология многообещающая, главное деградировать медленнее, чем развиваются LLM 😄
👍7
Про TornadoCash.

Хорошо написано обновление ситуации тут

Комментарий:

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

Не уверен на счет хороших сравнений, но вижу такие:
- В фиате больше грязных денег, чем в крипте и это не проблема, фиат не банят.
- Разве создатели языка программирования виноваты, что на их языке пишут вирусы?
- Криптографические алгоритмы придумали для защиты нац безопасности и уже потом https/rsa/ssh. Но есть винлокеры, забанить ученых-создателей криптоалгоритмов?

В комментах можно посоревноваться в остроумных сравнениях, где еще такая интерпретация суда неприменилась.
👍1
Mev searchers:
- Miner extractable value
- Maximal extractrabal value
- Flashbots
- PVP с mev searcher'ами
- Гибкий слиппедж
- Покупка через несколько пулов ликвидности, отправка на биржу в одной транзакции со свапом

Тем временем большинство криптобирж и их саппортов: "А как это возможно, купить и перевести на депозит адрес в одной транзакции? Такое не засчитаем за депозит, у нас лапки. Ну и что, что токены пришли и видны в эксплорерах, лапки же"
🤔4😁1🤬1
// John Smitt сир, строка ниже должна быть убрана на продакшене, она не покрыта тестами
Crowdstrike.on(2024.07.19 08:00:00 GMT+0).EnableBSOD()


08:01:00 🗿🗿🗿
🗿7😭2🔥1
Привет, ищу ассистента на частичную занятость.

Есть направления, куда не хватает кодерских человеко-часов.

Cтек nodejs-typenoscript/python/golang
Теги cex/dex/web3/evm/solana

Алгоритм рабочего процесса:
- Постановка задачи
- Формирование тех задания, данные на входе, данные на выходе
- Оценка сложности и реализуемости
- Создание прототипа
- Сохранение проекта как приватный git репозиторий (gitlab/github)

Ожидания на соискателя:
- Развитое критическое мышление, чтобы искать слабые-оптимальные-идеальные решения.
- Способность к самоорганизации, наличие пет проектов
- Понимание периодов высокой трудовой активности, чтобы лучше прогнозировать сроки задач
- Умение пользоваться ai-ассистентами
- Отсутствие вредных привичек (алко-вейпо-сигаро-лудилко зависимости)
- Перфекционизм в меру

Что могу предложить:
- Ставка от 15usdt в час
- Свободный график
- Обмен опытом и идеями

Если заинтересовало, напишите @zerofuz: про себя, навыки, с чем доводилось работать

UPD: благодарю всех откликнувшихся, не актуально (но если очень хочется, пишите)
👀2
Про альтернативу ethers для новых проектов.

ethers v5 наиболее распространенная версия библиотеки web3 для nodejs.

Недостатки ethers v5:
- рудимент в виде bignumber.js вместо нативного bigint
- в базовой версии невозможно нормально отправлять много eth_call запросов корзинами
- через ethers.providers.JsonRpcBatchProvider уже лучше, в одном json-rpc запросе до 1000 eth_call умещается. Но каждый eth_call это по прежнему открытие своего контекста на ноде и чтение данных, не самый эффективный способ.
- базовая настройка rpc провайдера, каждый раз нужно вспоминать публичный рпц для тестов, нет заранее установленных

Недостатки ethers v6:
- нужно переучиваться, попереназывали методы, сложно привыкать.
- работа с Contract переделана, теперь через дебаггер там прокси и читать поля стало менее удобно
- перешли на нативный bigint, наконец-то!

Преимущество v5 в том, что ai-агенты видели много кодовой базы на просторах интернетов, поэтому лучше смогут по ней консультировать.

В остальном намечается хорошая альтернатива для ethers, это viem, docs

Фичи:
- Большинство evm сетей имеют преднастройки и публичные рпц
- Представление чисел в нативном bigint, буст к производительности
- Возможность включить eth_call batch через multicall, когда внутри одного eth_call пакуется несколько read-only запросов. Сделать такое себе не тривиальная задача, хотя и реализуемо.
Тут же это доступно сразу, главное не упирать в rpc: request rate limit.
- Более понятная навигация по функциям
Solana.

Одно из объяснений, почему актив на solana снижался в том, что скоро в школу, нужно собрать портфель из тетрадей и карандашей, теперь ждем запуски токенов после продленки. Как видно на фото, достаточно часто импульсные движения наступают ровно в 16:00 utc+0

А если серьзно, то адаптация к solana через опыт в evm выглядит так:

evm (eth/bsc pos):
- Только последовательные транзакции, чем централизованнее чейн, тем быстрее создание блоков
- Основной клиент на golang
- Альтернативная нода
- Бандлы через flashbots и bnb48
- Backrun есть
- Geo распределено
- Контракт токена хранит балансы юзеров
- У tx.data напрямую можно вызвать лишь одну функцию с данными, или несколько через реализации multicall
- Rpc ноды распространены в web2, поднять свою ноду относительно просто
- web3 код через npmjs web3/ethers/viem
- Конкуренция в backrun за центы

solana (hpos):
- Создание блоков почти паралллельное, особенность в том, что затронуть один "state" можно только последовательно, например создав пул ликвидности в нем можно свапать только последовательно. Но транзакции, что не связаны с конкретным пулом, могут идти параллельно, поэтому общий TPS получается выше.
- Основная версия ноды валидатора на rust
- Альтернативная нода firedancer (не готово к продакшену, но многообещающе)
- Бандлы есть через jito
- Backrun основные представители (NFA DYOR):
- - rudebot :
- - - без бандлов
- - - через jito
- - NotArb/Jupiter :
- - - без бандлов
- Geo US/NE/RU/FR/DE validators.app
- Program токена не хранит балансы юзеров, а создается отдельный адрес под каждый userWallet&tokenAddress , называется associated token account program. ATAs можно удалять и возвращать ~0.25$sol залога аренды обратно через sol-incinerator.
- tx.data заменяется на tx.instructions, где можно передавать несколько инструкций (перевод, свап, перевод, свап и тд) но не более чем 1232 bytes. Тоесть примитивная сущность бандлов (несколько операций выполить атомарно или фейл) доступна без jito.
- Rpc ноды доступны, но обитают скорее в discord (quasar, onyx, firebase, shyft, helius)
- web3 код через "solana/web3.js"
- Конкуренция в backrun за микро-центы

evm - solana:

validator - leader
smart_contract - program
tx.data - tx.instrucitons
tokenBalance - ata.balance

Порог входа в реализацию backrun стратегий на солане значительно снизился, когда jup.ag опубликовали self-hosted-node в начале 2024, а там, через свой program или tx.instructions возможно составить параметры, чтобы свап шел только в плюс или отмена. Остается видеть изменения блоков раньше, чем другие.
👍1
Наблюдается интересный тренд с фильмами по web3

2023.06 "`The Meme Economy`"
2023.10.23 "`RUIN: Money, Ego and Deception at FTX`" от Bloomberg
2024.09 Vitalik: An Ethereum Story
2024.10.08 Выйдет "`Money Electric: The Bitcoin Mystery`" от HBO.

Самая прогрессивная версия про ethereum, там минтится nft билет для посмотра фильма

Про что еще можно снять фильм?
- Про темную сторону применения NFT (тренд давно прошел)
- Terra Luna и До Квон
- История Tornado cash, высокая технология столкнулась с человеческой природой.
- Технология, что стояла за TON и как она получила второе дыхание через open-source реализацию whitepaper.
- Технология, что стояла за блокчейном от Цукерберга. Сейчас на его основе работает sui
- Solana, a16z и другие (тут про ценообразование, экосистему, технологию)
- Binance, арест CZ
- Pumpfun как новая форма выкачивания ликвидности. После появление аналогов в других чейнах
- Про крах usdt, если-когда случится :D

Плюс ко всему, это отдельная форма mass-adoption, как посев макдональдса через рекламу на tv, чтобы во многих головах отложилось, что есть блокчейн и он важный и тд.
👍81
Несколько часов назад взломан rdnt network.

Источники
- https://x.com/AnciliaInc/status/1846605867753591002
- https://news.1rj.ru/str/crypto_hd/14086

В bsc прокси контракт Radiant: Lending Pool 0xd50Cf00b6e600Dd036Ba8eF475677d816d6c4281 , а если он прокси, то что? Правильно, его implementation подменили и теперь у атакующих есть возможность выводить все токены, которые на него апрувнуты.

Если взаимодействовали с проектом и еще не в курсе, то лучше отозвать апрувы. Под угрозой любые токены что разрешены для трат контракту 0xd50Cf00b6e600Dd036Ba8eF475677d816d6c4281

Отменить в бск можно в bscscan -> more -> token approval (линк)

——
UPD:

Вся реализация атаки в одной транзакции, что внутри состоит из трех:
https://bscscan.com/tx/0x28fb8778c3c1131026b4ee3b8634106a5c1aeaaf57273cc4515c59e65dfa7eb5
- сначала каким-то образом запрос к gnosis safe контракту где нужна подпись и большинство голосов на получение доступа (не понял что именно)
- вторая транзакция перезаписывает implementation
- третья делает крупные выводы
а уже потом 3 часа как выводят все что видят в апрувах

интересно еще то, что implementation контракт был размещен 14 дней назад, вероятно что-то базовое для такого вектора атаки, а потом, когда нашли уязвимую цель (gnosis safe не понимаю как прошли) собирали апрувы ончейн?

——
- Инициирует выводы 0x0629b1048298AE9deff0F4100A31967Fb3f98962
- Первичный получатель 0x911215cf312a64c128817af3c24b9fdf66b7ac95

——
Пишут, что применили троян чтобы через него подписать транзакции https://x.com/danielvf/status/1847023591117795708
This media is not supported in the widget
VIEW IN TELEGRAM
8🎉5👏2
Разбираем, почему валидатор получил 46eth за большой свап https://teletype.in/@0fuz/s0RcDsB7RbQ
🔥6
Forwarded from The Open Dev Blog
На TON орудуют сэндвич боты.

Недавно ко мне обратились с проблемой — якобы в TON есть рабочий MEV. И им постоянно бреют работяг при покупке низколиквидных токенов. Как это работает: вы пытаетесь свапнуть токен на DEX или агрегаторе, отправляете транзакцию, а потом видите, что кто-то в блокчейне купил прямо перед вами и продал сразу после вас.

Я этим очень заинтересовался, поскольку все мы знаем, что MEV-а на TON не существует, но при этом боты довольно стабильно встают до пользователя и сразу после. Начал разбираться.

Выяснилось, конечно, что никакой это не MEV, а сэндвич боты работают по принципу обыкновенных снайперов:
⚫️ Они используют кошелёк в том же шарде, что и vault дедаста или роутер ston fi. Этим они обгоняют большинство аккаунтов в сети, ведь на сообщение из одного шарда в другой тратится гораздо больше времени, чем если всё происходит в одном.
⚫️Если кошелек пользователя находится в одном шарде с контрактами DEX-ов, снайперы отправляют сообщение сразу с нескольких кошельков, тем самым увеличивая шансы на обгон пользователя просто за счёт количества. При этом повторной покупки не случается, т.к у них настроен slippage, и проходит ровно один свап. Поэтому боты выглядят в блокчейне как на картинке.
⚫️Если пользователя снайпят через dedust, то в сообщении сразу происходит обратный свап, как тут. Кошелёк отправил на DEX тоны, и в той же цепочке сообщений получил в ответ чуть больше тонов. Бесплатные деньги, не иначе.

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

@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
InVM - изнутри о Web3
Скоро узнаем, повторится ли история) Начало серой зоны 17 450 $
Только ленивый не высказался про комбо BTC ATH.

Обновление по черчению на графиках:
- прошлые каракули близки к ожиданиям, на дне было 17k$

Ждем бтц по 250к$
🤣52🔥1
Задачка на подумать, откуда адреса ниже извлекают профит?

- https://www.bscscan.com/address/0x802b65b5d9016621E66003aeD0b16615093f328b
- https://www.bscscan.com/address/0x0000000055ECa968153aeFfa4e421f9cd2680f01
- https://www.bscscan.com/address/0x493601007Fe0042Eb27Bef5943CAAd8EE594dc8c
- https://www.bscscan.com/address/0x8f3930B7594232805dd780dC3B02F02cBf44016A

- это не sandwitch
- это не backrun
- покупают однобоко, в том числе щитки, что не торгуются на cex
- цикл продажи купленного явно дольше пары блоков

Гипотезы такие:
- арбитраж между блокчейнами
- арбитраж между cex и dex только без деп-вывод опции при каждом арбе
- фронтран оракл цен на основе cex тикеров бинанса
🔥1
Обнаружен баг, связанный с Uniswap Router v2 и Okx Dex Router свап роутерами на ethereum.

Роутеры не возвращают неиспользованные ETH если за время включения транзакции в блок состояние пула поменялось. И выходит так, что отправлен свап на 10eth->Xtoken, а исполнено 2eth->Ytoken, но 8eth не возвращено пользователю.

Пример
- Опережающий свап юзера в 21340285 блоке https://etherscan.io/tx/0xa903df4378fef4d14b3980c22a10c64decdc653ee406bb0e6d4a0b58453a8d82 искажает состояние пула для следующей транзакции
- свап в блоке 21340286 где отправлено 1.8eth, использовано для свапа 1.29eth, а 0.51eth кануло в небытие https://etherscan.io/tx/0x68c78fa2a1c708f287a1edba67796f3d8f670877f6ceff7705ce4c32b38911ee
🤔2🔥1
InVM - изнутри о Web3
Обнаружен баг, связанный с Uniswap Router v2 и Okx Dex Router свап роутерами на ethereum. Роутеры не возвращают неиспользованные ETH если за время включения транзакции в блок состояние пула поменялось. И выходит так, что отправлен свап на 10eth->Xtoken, а…
Обновление по refundEth

Uniswap router:
- Такое поведение возможно
- Рекомендуется использовать multicall функцию чтобы в конце вызывать refundEth https://jeiwan.net/posts/public-bug-report-uniswap-swaprouter/
- Продуманные UI роутеров умеют делать refund eth в той же транзакции, а другие частично защищаются через mev:
- Случай 1.
- - свап https://etherscan.io/tx/0x254c6b3cfef1329004df231f8b0533e68e12afda9136a74aee0c37267aaddeed
- - перевод средств валидатору https://etherscan.io/tx/0x04f011370ae8d242f314e7f97e1ce384ccb7b5b6348d344a4ef9e069f67bf474
- - кешбек от валидатора https://etherscan.io/tx/0x95c821b826a86e759417ad4c71868a49d55f0c54cec7f2e42542beb429b3c890
- Случай 2.
- - свап https://etherscan.io/tx/0x68c78fa2a1c708f287a1edba67796f3d8f670877f6ceff7705ce4c32b38911ee
- - юнисвап делает сжигание неиспользованых eth https://etherscan.io/tx/0xee2849c1059236b43aeef4fc1744c020cfb88a17ac0ed5fec776f9156c2f4f14
- - титан валидатор кешбекает большую часть юзеру https://etherscan.io/tx/0x5cb289f9bc7655c869c1ab0b26e68fe19617fa2146fcc013e38186b90b6d7ab0

Okx router:
- Поведение возможно
- Варианта получить кешбек не видно
- Через https://www.dexview.com/ используется okx router который не защищен от "unspent eth not refunded", потому что не использует аналог multicall.
- случай 3.
- - свап1 21340284 блок; тут все нормально https://etherscan.io/tx/0xce5f727ddb5d6d198bc3ca3bb273cc4dd5a8ab03bc66a78d96b94ab82ec6499d
- - свап2 21340284 блок. Отправлено 3eth, использовано 0.63eth и 2.37eth не возвращено пользователю https://etherscan.io/tx/0x1ed0d036c93beb24347dc20489b313db544d57efd72d26a0a38168c3d99409e0 . Используется функция uniswapV3SwapTo вместо аналога multicall с refundEth (есть withdrawDust с тем же функционалом)
- - - Из okx router отправлено 2.36eth в следующем блоке https://etherscan.io/tx/0xde4c3b106ad58b9292e560ea2d8663ce10041779c678c746aab11ba13e86979f ; https://dashboard.tenderly.co/tx/mainnet/0xde4c3b106ad58b9292e560ea2d8663ce10041779c678c746aab11ba13e86979f
- - - - получатель https://etherscan.io/address/0xa6c248384c5ddd934b83d0926d2e2a1ddf008387 дробит на две части сумму и отправляет
- - - - - 1.183eth кому-то https://etherscan.io/tx/0x76d4f58421d160e446dd637631f5a3e8b4ee4c5ca8d66d82064b69a9a982c55d (может быть okx копилка)
- - - - - 1.19eth валидатору https://etherscan.io/tx/0xabef8d5b4a4ed2f1a8fa3b8a64f2c2e2cdf82f15dd4e7570f54d4fe1ef28790d

Выводы:
- Интеграция okx router в dexview подвела.
- Под угрозой плохие интеграции свап роутеров: точно okx на dexview, вероятно bitget/metamask/uniswap.
- Столкнуться можно на аналогах dexview при отправке нативного eth.
- Повлиять на refund от okx через onchain не представляется возможным.
- Okx router имеет закрытый код, интеграция осложняется
- Может оказаться так, что мониторятся pending транзакции и свежие блоки, чтобы выводить "unspent eth" себе из роутеров, потому что в "случай 3" 2.37eth лежали на контракте роутера меньше одного блока и были выведени первой транзакцией в следующем блоке
- Uniswap router частично защищен, правильно было бы в той же транзакции возвращать unspent eth, но когда такого нет, следующими транзакциями средства возвращаются
- Низкая осведомленность о важности refundEth среди делающих интеграции свап роутеров

Благодарности:
- @LunaparkOwner за поиск большинства случаев onchain
- @artjomikas за подсвечивание, что eth валидаторы делают refund из uniswap router.
👍5🔥2