Mimble Wimble LAB – Telegram
Forwarded from CryptoSan
Как стать аудитором смарт-контрактов: советы для начинающих

Всем привет! После AMA у How to Code (а как?) несколько человек писали мне в личку с вопросами про аудит смарт-контрактов.

Решил написать небольшой пост о том, с чего бы я начал, если бы был на вашем месте:

1. Основы Solidity
Чтобы стать аудитором, нужно знать основы Solidity. Учить Solidity как первый язык программирования - это немного странно, поэтому важно сначала освоить базовый cинтаксис любого другого полноценного язык программирования, чтобы понимать основные концепции программирования, а затем переходить к Solidity.

2. JavaScript/TypeScript и Python
Желательно иметь хотя бы базовые знания в JavaScript/TypeScript или Python, а лучше освоить базовые библиотеки для работы с EVM блокчейнами (viem, ethers - для js/ts, web3 - для python). Почему это важно? Например, для написания тестов в Hardhat вам понадобится знание JavaScript или TypeScript. В Foundry можно писать тесты только на Solidity, но для полного понимания процесса аудита желательно иметь опыт с другими языками. Хорошему аудитору (и разработчику) также нужно уметь работать с Hardhat/Foundry, так как такие требования могут предъявляться работодателем.

Тем, кто работал с Web3 в Python, будет несложно переключиться на JS/TS.

3. Порядок обучения
Далее встает вопрос: как учиться и что учить? Я разделю обучение на платное и бесплатное, на английском и русском языках. Главное - соблюдать порядок, чтобы быстрее освоить эту тему. Если не умеете обращаться к блокчейну извне, не стоит лезть туда, чтобы работать внутри. Если не умеете работать внутри, то каким аудитором вы хотите быть? Тут есть логическая цепочка. Я не настаиваю на ее соблюдении, каждый человек индивидуален. Но эта цепочка помогла мне, а значит, поможет и вам.

4. Английский язык
Если вы хотите получать качественное обучение, нужно учить английский. Если вы хотите устроиться в компанию с нормальной зарплатой ($50,000 до $80,000 в год получает младший аудитор смарт-контрактов), нужно учить английский и искать вакансии в зарубежных компаниях. Качественного материала на русском языке очень мало. Не ищите отговорок и не оправдывайте себя. Если я смог прокачать английский с нуля, чтобы разговаривать, понимать материал и проходить собеседования - сможете и вы.

Перейдем к тому материалов:

Английский язык
Бесплатные ресурсы
1. Cyfrin
- На их платформе можно бесплатно пройти обучение от новичка до продвинутого уровня. Тут все что нужно вам чтобы начать свой путь аудитора!
- У их создателя Patrick'a Collins'a на YouTube есть видео по основам Solidity, аудиту смарт-контрактов и многое другое что необходимо знать!
2. YouTube канал 0xOwenThurm
3. YouTube канал JohnnyTime

Платные курсы
1. Курсы JohnnyTime по аудиту Solidity/Viper и Cairo Starknet

Русский язык
Бесплатные ресурсы
- YouTube канал Ильи Круковского (плейлист)

Платные курсы
- GuideDAO - тут вы покупаете не обучение, а одно из лучших комьюнити где просто огромное кол-во материалов по EVM, его работе, по работе различных протоколов и прочего. Тут есть все что нужно для того чтобы стать полноценным Solidity разработчиком и получить первый оффер. Если надумаете тут покупать обучение, напишите мне я спрошу может сделают какую-то скидку вам.
- OTUS - выбрал этот курс из-за программы, хорошая структура. Обучение идет примерно 6 месяцев. Из минусов что придется все искать самому, многое что учить самому, тут вас просто направят куда смотреть.

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

После того как вы все пройдете (или хотя-бы что), приглашаю вас на платформы для публичных аудитов смарт контрактов:
1) https://codehawks.cyfrin.io/contests
2) https://code4rena.com/

Тут вы сможете применить знания на практике, набить руку, портфолио, почувствовать себя аудитором и заработать первые деньги!
Набили руку? Идите на собесы!
👍3🔥1
Ну и времена конечно пришли 🤖

Обладая только очень общим пониманием js, Next.js, fastapi буквально за 4 часа соорудил полноценный кран для BERA с python логикой на бэкэнде.

https://mwdao-bera-faucet.vercel.app/

Еще два года назад я бы на это потратил наверное месяц, не менее.

А сейчас используя cursor, https://v0.dev/, vercel.com/ и понимая примерно как должны взаимодействовать фронт и бэк чисто пофанился пару часов и готово.

Надо вернуться к этому посту через два года.😠
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍2
Как запихнуть несколько транзакций в один блок?

Появилась у меня надобность в игре https://bartio.yeetit.xyz записывать несколько транзакций в один блок

Быстрое решение, которое сразу пришло в голову задачу в целом выполняет:


send_tasks = []
for i in range(times_to_yeet_in_a_row):
tx_params = (await self.prepare_transaction()) | {
'value': int(current_minimum_yeet_point*yeet_multiplier),
'nonce': start_nonce + i,
}
transaction = await contract.functions.yeet().build_transaction(tx_params)
current_minimum_yeet_point = int(current_minimum_yeet_point * yeet_multiplier)
send_tasks.append(self.send_transaction(transaction))

results = await asyncio.gather(*send_tasks)
return results


±10 транзакций в один блок таким способом пролазит, но RPC это не одобряет и после нескольких итераций начинаются проблемы.

Далее товарищ подсказал, что можно написать свой multicall контракт, задеплоить его, и уже его вызывать. Я попросил gpt o1-preiview написать код. Задеплоил его в сеть Bartio. И это сработало.


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IYeetContract {
function yeet() external payable;
}

contract MulticallYeet {
IYeetContract public yeetContract;

constructor(address _yeetContractAddress) {
yeetContract = IYeetContract(_yeetContractAddress);
}

function multicallYeet(uint256 times, uint256[] memory values) external payable {
require(times == values.length, "Times and values length mismatch");
for (uint256 i = 0; i < times; i++) {
yeetContract.yeet{value: values[i]}();
}
}

// Function to receive Ether
receive() external payable {}
}



# Calculate the Ether values for each yeet call
values = []
current_value = minimum_yeet_point
for _ in range(times_to_yeet):
current_value = int(current_value * yeet_multiplier)
values.append(current_value)

total_value = sum(values)

tx_params = (await self.prepare_transaction()) | {
'value': total_value,
}

transaction = await my_multicall_contract.functions.multicallYeet(
times_to_yeet,
values
).build_transaction(tx_params)



Теперь в один блок можно запихивать сколько угодно транзакций (главное чтобы вместимости блока хватило), но к сожалению msg.sender-ом в этом случае выступает смартконтракт. И его нельзя подключить к сайту и совершать иные действия, или для этих действий нужно писать отдельную логику, а там уже нужно быть phd)))

В итоге изысканий добрался до Safe global account abstraction. Они развернули в Bartio свой тестовый контракт https://safe.berachain.com/, который позволяет сделать так называемый кошелек-смартконтракт.

Он бладает функцией multisend, где позволяет за один вызов завернуть множество транзакций.

Я из ui построил транзакции и у меня получилось достичь успеха

Но все равно msg.sender - это адрес смартконтракта-кошелька safe global, но я его уже через валлет коннект могу подключать к сервисам и пользоваться как обычным кошельком, где подписантом будет выступать мой основной кошелек (или несколько — мультисиг).

Так же у этого смартконртакта есть abi, с помощью которого, можно добавлять вызовы в multisend, и добиться того же, что и самописным multicall:

```python

execution_tx = safe_contract.functions.execTransaction(
safe_tx['to'],
safe_tx['value'],
safe_tx['data'],
safe_tx['operation'],
safe_tx['safeTxGas'],
safe_tx['baseGas'],
safe_tx['gasPrice'],
safe_tx['gasToken'],
safe_tx['refundReceiver'],
bytes.fromhex(safe_tx['signatures'][2:])
).buildTransaction({
'from': OWNER_ADDRESS

```

Ну и, конечно, стоит добавить, что абстракция акаунта от safe global проверена на уязвимости, обладает проверками подписей и управлением газом и кучей другого функционала.
👍5
Forwarded from danoneo systems (Danoneo | UnderHoods)
Как мы въебали 100k+$ из за 8 евро и своей тупости

всем привет, сейчас расскажу как мы с напарником уничтожили приватники от 100 елигбл акков старкнета

хронология событий:

- в сентябре начинаем делать 100 акков, делаем их софтом лео ровно 3 месяца и забиваем хуй
- затраты на акк выходят копеечные (в районе 7-10$)
- на балансах при этом оставляем по 40-50$ в ETH

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

- проверяю почту - вижу вчерашнее письмо "у нас не получается списать 8 евро с вашей карты, пополните счет или мы отключим сервак"
- проверяю виртуалку, с которой оплачивал сервак на протяжение 2 последних лет - на ней баланс 100+ евро, но оплата по какой то причине не прошла

- виртуалка была от Bitfree, оказывается у них периодически умирают карты (надо через саппорт просить замену), это и сыграло с нами злую шутку
- карта умерла за пару дней до того как пришло время платить за сервер

"похуй на сервер, умер и умер - у нас же бекапы есть" - думаю я, и иду проверять табличку с приватниками от нашей ретро фермы

и к великому сожалению обнаруживаю что мы бэкапнули ВСЁ кроме старкнета (ход гения)

пишу в саппорт контабо, прошу снепшоты сервера, предлагаю им *к$ - говорят "сори, ты не заплатил нам 8 евро, бэкапов у нас нет" (справедливо)

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

через пару недель выходит анонс о снепшоте, затем и сам дроп, всех бреет - а у нас 100 элигблов которые прошли прям на грани

50к STRK оказались погребены под руинами нашего долбоебизма

потенциальные 100-150к$ сожжены в печи.
а еще на кошелях эфира было на 5-6к$.

напарник повесился, а я уложил мотор в тойоте и щас буду ставить новый. всем спасибо за прочтение.
😁32😱1👾1
Отличная статья про логику отслеживания транзакций в Monero (XMR)

В статье подробно рассказывается о том, что несмотря на высокий уровень защитных механизмов у Monero, присутствуют проблемы в эффективности кольцевых подписей при определенной беспечности юзера.

https://telegra.ph/Pro-Monero-XMR-TXO-i-treking-11-06

Кстати автор @TorZireael1 очень хорошо пишет на тему безопасности. Давно на него подписан, не реклама.
👍1
Написал софтик BullasGrinder для игры Bullas в тестнете Berachain

игра: https://testnet-deploy.bullish-ui.pages.dev/

твиттер: https://x.com/TheBullas_/

бэкеры: https://x.com/0xhoneyjar

Давно делаю софтом эту игру, но недавно у них вышло большое обновление, которое скоро будет позволять зарабатывать не только oBero, но и BGT за игру.

Пока не знаю как они это реализуют, посмотрим.

Пока что удалось вынести несколько вайтлистов, на партнерские сейлы просто за взаимодействие с игрой.

Так же они говорят, что у них будет свой мем токен в Berachain мейннете $BULL (в бэкерах 0xhoneyjar). Наверняка будет дроп тем, кто юзал тестнет.

Переписал софт на полностью автоматическую прокачку персонажа в игре. В целом можно поставить и забыть, каждые 8 часов будет идти кач. Работает полностью ончейн.

Софт отдам только в 4 руки, чтобы не уничтожить игру.

Цена 250 usdt.

Последующие обновления прилагаются.

Если интересно го лс
2👍1
Будьте бдительны, когда запускаете, что-то с гитхаба

Прогуливался по гитхабу, чтобы посмотреть, что люди пишут на solana-py

Нашел репозиторий, который выглядит как MEVbot, но при более детальном рассмотрении, оказалось, что это бот по выносу компа 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤣21
Mine the Best Salt for Uniswap v4 and Become an Onchain Legend

На юнисвап проходит челлендж по майнингу красивого адреса для будущего контракта v4 (остался один день):

https://v4-address.uniswap.org/
https://blog.uniswap.org/uniswap-v4-address-mining-challenge

Захотелось поучастовать. Сначала на python написал код для майнинга, потом, когда понял, что со скоростью дело дрянь, то пришлось пойти в гпт и переписать код на Rust.

После этого рассчитал сколько моему ноуту (m1 max) понадобится, чтобы встать в топ лидерборда (0x000000000004444…….), получилось 285 000 000 дней. Видимо челик из топа - директор майнинг пула 😂

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

Но из этого всего родился классный репозиторий по майнингу красивых EVM адресов на Rust:

https://github.com/smeshny/PrettyEVMadress

(Чисто ради спорта, чтобы изыскания зря не пропали)

На m1 max майниниг 0x7777…7777 займет примерно 1300 минут

Майню себе сейчас 0xacab…acab 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Mimble Wimble LAB
Написал софтик BullasGrinder для игры Bullas в тестнете Berachain игра: https://testnet-deploy.bullish-ui.pages.dev/ твиттер: https://x.com/TheBullas_/ бэкеры: https://x.com/0xhoneyjar Давно делаю софтом эту игру, но недавно у них вышло большое обновление…
Задонатил 50к $BERA на ивент pfp Bullas.

Пообщался с админом Bullas, оказалось, что это пет проект разрабов из oBERO.

По фронтенду этого не скажешь, но если присмотреться как написаны контракты для этой игры, то вопросы снимаются)
Mimble Wimble LAB
BERA420 Kodiak Faucet Claimer Софт для автоматического клейма BERA из крана https://www.faucet.kodiak.finance/ В отличии от официального крана, kodiak дает клеймить раз в три часа, при условии что у вас меньше 1 BERA на балансе. ‼️Так же не требуется баланс…
Кран кодиака снова ожил

Наливает $BERA несмотря на баланс $BERA и $ETH mainnet.

Код мне лениво править, если будете делать, то надо поправить как на скрине, чтобы снять проверку на количество $BERA.

Я затестил соточку аккаунтов - работает исправно.
🤝3
Forwarded from Mimble Wimble DAO
Взлом AdsPower

Примерно 5 часов назад появились первые упоминания в твиттере, что у людей начали дрейнить кошельки, которые использовались в AdsPower.

Вероятно, каким-то образом злоумышленник смог подменить код в расширении (детали на скриншоте).

В строках 2-4 код извлекает зашифрованный vault из хранилища Chrome.

Функция postTolog (строки 7-24) отправляет украденные данные на домен https://logcollection.info/log

Вероятные кошельки злоумышленников:

https://debank.com/profile/0xeb095f0b2e26a2a67c11595065e459439b7de672/history

https://debank.com/profile/0x4e8f3340efbc48ec36d043f11a5f23d457db51ea/history

https://debank.com/profile/0xf772be79bd6d1f4316e938c6c40cf68cf6911c81/history

На macos проверить затронуты ли вы именно этим вектором атаки можно пройдя по пути:
cd /Users/{YOUR_USER_NAME}/Library/Application Support/adspower_global/cwd_global


далее выполнить поиск вхождения logcollection.info во всех файлах


grep -rI "logcollection.info" .

(не забудьте точку в конце)

Если grep что-то покажет, и у вас на кошельке все еще есть средства - лучше их перевести прямо сейчас.


Неприятная ситуация, конечно. И вероятно не первая, просто сейчас AdsPower не может замалчивать.

Единственный антидетект браузер, который я могу посоветовать к использованию - octobrowser.net

Это не реклама. Просто это понятные люди и хорошие профессионалы (знаю лично), которые изначально строили архитектуру, чтобы не допустить подобных инцидентов.

п.с. из анализа входящих транзакций кошельков злоумышленников может получиться отличный сибил список.

Mimble Wimble DAO
Mimble Wimble LAB
2
Пасхалка на кране от замученных сибилами на
testnet.hyperlend.finance/dashboard

If you are running the farming bot, stop wasting your time. Testnet will not be directly incentivized, and mainnet airdrop will be linear with a minimum threshold.
Forwarded from Mimble Wimble DAO
Как получить $1000 за 7 транзакций в тестнете Berachain?

Я очень плотно отрабатывал тестнет Berachain Bartio. По сути фуллтайм последние полгода.

Не думаю, что в СНГ(а вероятно и в мире) кто-то написал модулей для абьюза софтом экосистемных проектов Berachain больше, чем я. (проходка 100) Как базовую архитектуру использовал платный BeramachineV2 от askaer.

Мне есть что поведать. В том числе по существу заявлений некоторых горлопанов о том, что askaer не умеет писать софты)

Но сегодня о другом ⬇️

Я отрабатывал проект https://bartio.yeetit.xyz/ на котором заработал около 800к+ testnet $BERA, и у меня была сложность с отправкой сообщения на сайт после транзакции, потому что она уходила частично байтами и я не понимал как ее расшифровать и воспроизвести.

Для помощи в изысканиях обратился к преподу из AIOstudy. Для тестов отправил ему на пустой кошель 1111 $BERA.

Он сделал 7 транзакций в течении 2 часов только в смартконтракт YEET, чтобы проверить свою теорию о том как расшифровать байты, которые уходят на сервер. И отправил мне остаток обратно. Это все.

За эти семь транзакций он получил дроп 70 BERA или около $1000 на хаях. Приятно, что безвозмездная помощь иногда вознаграждается.

Прошу еще раз обратить внимание, что кошелек не взаимодействовал с краном Berachain, тоесть по факту получил токены с ОТС и совершил всего 7 транзакций за 2 часа.

ps
У AIOstudy скоро будет обучение web3 python, и если вы немного понимаете в computer science и хотите качнуть web3 скилы, а так же имеете усидчивость и волю к победе, то обратите внимание на курс. Там askaer мощно докладывает про сильные темы web3, без воды. Кто чувствует пробелы в знаниях - проследуйте по рефке https://aiostudy.com?r=ff42f7a1

Mimble Wimble DAO
Mimble Wimble LAB
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Вчера за пару часов просто по фану завайбкодил лайв дашборд, который в реальном времени анализирует ончейн очередь в игре Bullas в Berachain.

Сегодня уже получил предложение по работе/сотрудничеству от команды 😂

Mimble Wimble DAO
Mimble Wimble LAB
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3
Подробный доклад с разбором злосчастной транзакции safe global от Patrick Collins о том как именно произошел взлом Bybit на $1.4B.

Очень интересно, если немного понимаете в evm и как работает мультисиг.

https://www.youtube.com/watch?v=Gf8_ovO-jBI

3 (минимальное число) из 6 подписантов подписали фейк транзу! тоесть либо все подписанты были одним лицом, либо северокорейцы очень крутые ребята)


Mimble Wimble DAO
Mimble Wimble LAB
🔥4
building 😻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Mimble Wimble LAB
building 😻
Бридж Arbitrum One ($ETH, $USDT, $USDC) —> Monad testnet ($MON)

Сбилдили с товарищем ради науки и фана мост (или обменник, если угодно) https://bridge.mwdao.xyz/
(Еще когда был Bartio тестнет у меня была такая идейка для $BERA, но как-то из-за общей занятости руки не доходили.)

Мост состоит из трех частей:

1. Двух смартконтрактов. Один смартконтракт принимает депозиты в сети арбитрум и назначет каждому ID, второй совершает дистрибуцию $MON в тестнете монада в соответствии с принятым депозитом.

2. Бэк(релеер) на GO. (писал товарищ)

3. Фронт на Next.js/react.

Технические подробности и контракты, можно изучить в документации https://docs.mwdao.xyz/bridge/monad-testnet-bridge

Сделать свой релеер даже для такого маленького проекта, оказалось хлопотным дельцем😭😭

Если кому-то вдруг нужен $MON за деньги - приглашаю потестить😺

Mimble Wimble DAO
Mimble Wimble LAB
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6