Solidity. Смарт контракты и аудит – Telegram
Solidity. Смарт контракты и аудит
2.62K subscribers
246 photos
7 videos
18 files
547 links
Обучение Solidity. Уроки, аудит, разбор кода и популярных сервисов
Download Telegram
Тесты с хуками для V4

Небольшой пост - заметка.

Как вы знаете в Uniswap V4 появились так называемые хуки.

И недавно компания начала работать с тестовой сетью Conduit, с помощью которой можно попробовать поработать с хуками и посмотреть как они исполняются.

Я сам еще не экспериментировал с "песочницей", поэтому просто оставляю ссылку на документацию:

https://docs.uniswapfoundation.org/overview/conduit-testnet

Мало ли кому будет интересно поразбирать хуки на новогодних праздниках.

#v4 #unswap #hooks
👍1
Ethereum Yellow Paper Course

Как мы знаем, одним из основополагающих документов блокчейна Эфириум является его Yellow Papers. Будем честны, мало кто из разработчиков осиливает его, да и вообще читал "от и до" хотя бы раз.

А тут на Ютуб недавно наткнулся на небольшой трехчасовой курс по этим Желтым страницам. Да, он на английском языке, но и сам документ также на английском. Думаю, многим он будет полезен и придется кстати.

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

До Нового года осталось только две недели, и, по сути, неделя, когда мы еще готовы работать и учиться. Не теряйте это время даром!

Посмотрите небольшой курс в свободное время:

https://youtu.be/e84V1MxRlYs

Полчаса в день и к концу недели вы справитесь с ним!

#yellowpapers #yellow #course
👍91
С нуля до PRO в ZK

Пока идет распродажа предыдущих модулей курса, делюсь подборкой материалов от крутого аудитора Hickup.

Да, ее выложили еще до того аудита-миллионика, но все руки никак не доходили просмотреть. Здесь Hickup выложил свой путь, по которому он учился этой технологии.

Надо сказать, что он аудитор опытный и материал соответственно тоже, поэтому гайд подойдет скорее для тех, кто уже хорошо знаком с роллапами и L2 сетями, т.е. для продвинутых пользователей.

Если же вы совсем новичок, но очень хотите изучить эту тему, то начните с канала Ильи, в частности посмотрите те уроки, в которых говорится про роллапы и zero knowledge.

А уже потом обратитесь к подборке Hickup:

https://sunrise-clerk-234.notion.site/Hickup-s-ZK-Journey-affa9ce9cdf44a33b3549c37f908521a

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

#zk #hickup
3
Foundry Cheatsheet от MiloTruck

Если вы не в курсе, MiloTruck стал лучшим аудитором на площадке code4rena в этом году, заработав на конкурсах 160К!

Как я понял из обсуждений в Твиттере, он для себя сделал небольшой файл-помощник по работе с Foundry, где в удобном формате расписал популярные команды и сниппеты кода для более быстрого написания тестов.

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

Вы можете открыть его в отдельном окошке и подглядывать при написании своих тестов:

https://milotruck.github.io/blog/Foundry-Cheatsheet/

P.S. Вы также можете скопировать его к себе, постепенно дополняя или обновляя информацию в нем.

#foundry #test #cheatsheet
❤‍🔥7👍2
Где следить за новостями?

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

Начнем с наших Телеграм каналов, где вы можете задавать вопросы и общаться:

1. Ethereum Ru

2. Solidity DEV (Ethereum)

3. DEV: Рубиновые тона: ЧАТ

4. Learn solidity audit - для аудиторов


Каналы на английском языке:


1. Solodit | Auditors

2. Daily Security Web3

3. DEFI Scam Check

4. Kotya security

5. Rektoff

6. rekt.news Newsflash

7. Web3 Security as a Business


Дискорд каналы:


1. Code4rena

2. Cyfrin (от Патрика Коллинса)

3. Guardian Audits (от Owne Thum)

4. Immunefi

5. Secureum

6. Open Sence

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

Ну, и, конечно, Твиттер! Так сложилось, что сообщество разработчиков и аудиторов собралось в Твиттере и все самые последние новости проходят сначала там, а уже потом разлетаются по Телеграм каналам, дискордам и другим сетям. Каждому современному web3 специалисту нужно быть там.


Для начала мой канал:

1. RightNowIn

Не спрашивайте, почему такое название... Так сложилось исторически...


И другие каналы:


1. Akshay Srivastav

2. Vlad B.

3. Dimitar Tsvetanov

4. Koolex

5. DadeKuma

6. MiloTruck

7. Alex the Entreprenerd

8. btk

9. Kristian Apostolov

10. HE1M

11. 0xladboy

12. HickupHH3

13. Chinmay Farkya

14. 0x52

15. bytes032.xyz

16. Faith

17. patrickd

18. zzykxx

19. Trust

20. afeli.eth

21. WINTΞR

22. philogy

23. WATCHPUG

24. 0xrudra

25. Samrat Gupta

26. Christoph Michel

27. Officer's Notes

28. samczsun

29. Gerard Persoon

30. peakbolt


Компании


1. Chainlink

2. Trail of Bits

3. OpenZeppelin

4. Uniswap Labs

5. Hardhat

6. Code4rena

7. Alchemy | The web3 developer platform

8. Etherscan

9. Immunefi

10. rekt

11. Paradigm CTF

12. QuillAudits

13. RareSkills


Если у вас есть кто-то еще на примете, буду рад увидеть рекомендации в комментариях!

#twitter #discord #telegram
👍151
Последний пост этого года

С понедельника я ухожу в отпуск на две недели, поэтому время немного порефлексировать о прошедшем годе.

Если говорить кратко:

1. На канале вышло более 970 постов;
2. За год количество участников +800!
3. Был запущен наш мини курс для начинающих;
4. Проведены 3 модуля курса;
5. Модуль 4 выйдет уже в следующем месяце;
6. Написан крутой цикл из 39 постов по Foundry;
7. Я изучил несколько дополнительных программ для проведения тестов;
8. Принял участие в 10+ конкурсных аудитах (полноценно и 30+ изучая код);
9. Нашел 5 high и 15 med в конкурсах;
10. Провел 4 соло аудита, в которых нашел 10 high и 30+ med проблем;
11. Дал 15 консультаций о том, как начать карьеру в web3;
12. Прошел отбор и стажировался в Pessimistic;

Это был год огромной ежедневной работы и обучения. И, что самое главное, еще учиться и учиться в следующем году.

Вообще, у мои планы входит:

По курсу и модулям:

1. Провести 4 модуль курса;
2. Если будет достаточное количество желающих, провести и 5 модуль.
3. Если будет достаточное количество желающих, повторить курс с 1 модуля;

По Телеграм каналу:

1. Написать цикл постов про опкоды и assembly;
2. Написать цикл постов про математику в Defi;

По аудиту и конкурсам:

1. Больше времени уделять конкурсным аудитам;
2. Пробиться в топ 50 на code4rena за год;
3. Провести 10+ соло аудитов;

По проектам:

1. Запустить, наконец, проект по тестам на зарубежный рынок;

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

Если хотите вступить на этот путь, будьте готовы постоянно учиться. И учится много!

Вообще, на определенном этапе вы сами поймете, чем хотите заниматься больше:

1. Писать смарт контракты и различные протоколы;
2. Проводить аудит и стать белым хакером;
3. Уйти в тестирование;
4. Разбирать взломы и отслеживать транзакции в разных сетях;
5. Заниматься узлами и стать валидатором;

Все это направления, которые каждый выбирает для себя после первых уроков с EVM и Solidity.

Сложно? Да. Интересно? Еще бы! Прибыльно? Определенно!

Однажды мы сделали правильный выбор!

Желаю вам всем успехов в профессиональной среде в новом году!

С Наступающим!

#last2023
🔥347👍6❤‍🔥1
Медленно, но верно, возвращаемся к работе

Фух, надеюсь ваши праздники прошли также хорошо, как и мои. Голова пустая, мозг способен воспринимать новую информацию и, что самое главное, есть желание вернутся к работе!

Так, чем займемся в январе?

Для начала все силы будут брошены на создание 4 модуля курса, чтобы его можно было запустить уже в ближайшее время.

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

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

Для тех, кто хотел попробовать участие в конкурсных аудитах, есть прекрасная возможность посетить онлайн встречу команды Code4rena: Getting started with c4, которая пройдет в этот четверг в 22:00 по мск.

Вот ссылка: https://discord.com/events/810916927919620096/1193677104433348728

Там будут рассказывать, как начать свой путь на с4, как писать репорты, где подучиться и какие правила действуют на площадке.

Кстати, это прекрасный повод, наконец, зарегистрироваться в Дискорде.

P.S. может создать небольшую рабочую группу для начинающих на с4 и в конкурсных аудитах и на живом примере провести вас, как все там устроено?

Ну, а пока, настраиваемся на рабочий ритм, вспоминаем, как открывать VS Code и, что такое конструктор в контракте.

Всем приятного старта недели и легкого обучения!

#first2024
🔥182👍1
Временная группа для начинающих конкурсные аудиты?

Слушайте, а кто хотел попробовать себя в конкурсных аудитах в этом году? Знаю, порой бывает сложно начать и разобраться в системе платформ, поэтому старт всегда откладывается.

Хотите соберем небольшую группу на ближайший конкурсный аудит?

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

Просто - как начать.

Подойдёт для тех, кто уже знает Solidity, умеет писать код и смотрел некоторые видео по аудиту и безопасности.

Кто хочет попробовать? Пройдите опрос ниже)
🔥13👍1
Соберем группу для начинающих в конкурсные аудиты?
Final Results
81%
Да, я готов присоединиться
19%
Может позже
1
🔥 Круто! 35 желающих за 15 минут) не думал, что тема такая востребованная)

Думаю, тогда завтра уже и начнем) как раз пара конкурсов идет на разных площадках)
15
Группа для начинающих в конкурсных аудитах

Офигеть! Не ожидал такого спроса от участников начать свой путь в конкурсных аудитах! 79 человек за ночь!

Открыл для вас чат-группу, где буду выкладывать гайды по площадкам. Будем разбирать по 1 платформе в день.

Сегодня начнем с Code4rena. Присоединяйтесь!

https://news.1rj.ru/str/+P7lY7zRXSEFmYjk6

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

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

#chat #audit
9👍4
Secureum Races теперь на Youtube

В прошлом году я несколько раз выкладывал тесты Races, которые проводятся несколько раз в год. Они не только ограничены по времени, но и основываются на знании некоторых нюансов языка и внимательности при чтении контракта.

На данный момент вышло уже 25 Races! Посмотреть эти тесты можно в официальном дискорд сервере: https://discord.gg/RVD6YAUE

Более того, с недавнего времени, организатор этих билц-тестов, Патрик (не Коллинс), запустил свой ютуб канал, на котором разбирает вопросы и ответы с прошедших тестов.

Самое интересное то, что он не только говорит правильный ответ, но и детально рассказывает и объясняет некоторые нюансы работы языка, компилятора, EVM и сетей блокчейна в целом!

Вот ссылка на его канал: https://www.youtube.com/@patrickd_de/videos

За эти 5 - 10 минут в день можно не хило так прокачать свои знания. Очень рекомендую!

#races
11👍2🔥2
Как научиться видеть инварианты

Для практики тестов в Foundry сейчас важно уметь видеть и проверять различные состояния кода, в том числе инварианты.

В презентациях от компании Certora можно найти много полезного по этой теме, например:

https://github.com/Certora/Tutorials/blob/master/06.Lesson_ThinkingProperties/Categorizing_Properties.pdf

А здесь, посмотреть варианты properties для различных контрактов:

https://github.com/crytic/properties/blob/main/PROPERTIES.md

Ну, или выполнить предлагаемое упражнение:

https://github.com/Certora/Tutorials/tree/master/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise

На самом деле, научиться мыслить "состояниями" контракта может быть очень полезно не только для разработчика, но и хорошего аудитора.

#invariant
🔥8
RareSkills выпустила книгу по Compound

RareSkills уже некоторое время выпускает потрясающие обучающие твиты и статьи по теме Compound. И теперь они решили все объединить в одну электронную "книгу" - Compound V3.

https://www.rareskills.io/compound-v3-book

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

Если вам интересна работа одного из крупнейших DeFi протоколов, крайне рекомендую к изучению!

#compound
👍14
Foundry и старые pragma

На канале в комментариях где-то были вопросы, а как писать тесты, когда контракты имеют разную версию pragma? Ведь может быть и 0.6.0 и 0.8.19 в одном проекте!

В Foundry есть специальный читкод, который помогает деплоить контракты разных версий в тестах:

function deployCode(string memory what) public returns (address);


Пример использования этого читкода вы можете видеть выше на скрине!

Больше о нем можно прочитать тут:

https://book.getfoundry.sh/reference/forge-std/deployCode

Теперь тесты можно писать еще быстрее!

#foundry
🔥7👏1🤯1
Забытый скрин к посту выше)
2👍1
Чеклист от Solodit

Знаю, что уже немного опоздал с этим постом, но вдруг еще кто не видел об этой возможности для самопроверки контрактов перед деплоем.

Есть такая платформа Solodit, которая собирает отчеты по уязвимостям со многих площадок (типа С4) и частных аудиторов (типа Trust).

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

https://solodit.xyz/checklist

Все разбито по темам и категориям. Вы можете выбрать те, которые относятся к вашему проекту и "пробежаться" по ним.

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

#solodit
🔥7👍2
Новости и программа 4 модуля курса

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

Модуль 4

Неделя 1

1. Древо Меркла: общее
2. Подписи и стандарты
3. ecrecover и ECDSA
4. Безопасность подписей

Неделя 2

5. Прокси. Общее
6. Transparent и UUPS proxy
7. Beacon proxy, Diamond
8. Безопасность proxy

Неделя 3

9. Работа с памятью: code
10. Работа с памятью: storage
11. Работа с памятью: memory
12. Работа с памятью: calldata
13. Работа с памятью: stack

Неделя 4

14. Опкоды
15. Yul и assembly
16. Побитовые операции
17. Дебаггинг контрактов

В этом модуле будут уже более серьезные темы, но в простом изложении и с понятными примерами.

Напоминаю, что 4 модуль это продолжение курса для начинающих разработчиков, поэтому мы касаемся тем только связанных с Solidity, исключая материал про Hardhat с javanoscript / typenoscript, и фокусируясь исключительно на практических знаниях.

Кроме того, к написанию уроков и поддержке учеников подключится новый преподаватель! Но об этом в следующем посте!

Ориентировочный запуск модуля будет в конце января. Не пропустите!

#курс
🔥11👍51🥴1
Новости модуля 4

Вчера я упоминал, что этот модуль я буду писать вместе с другим преподавателем. И это @elawbek!

Вот что он пишет о своем пути:

"Разработчик смарт-контрактов для EVM сетей с опытом работы около 1.5 лет.

С 2021 года активно изучаю Solidity и глубоко интересуюсь внутренним устройством Ethereum Virtual Machine (EVM).

Стремление понять, как контракты попадают в сеть, как устроен вызов контракта и какие действия происходят на более низком уровне, побудило меня систематически исследовать данную тематику.

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

Понимаю, что low-level аспекты Ethereum Virtual Machine несравненны с другими языками программирования, так как EVM была разработана с учетом ограниченной области применения в блокчейне. Тем не менее, с развитием технологий и инфраструктуры уверен, что мои знания и опыт, накопленные до настоящего времени, будут востребованы в будущем.

Готов поделиться своими знаниями на курсе и внести свой вклад в обучение других участников!
"

Вы могли часто видеть, как он помогает участникам нашего чата и других тематических по web3 с ответами на вопросы по тому, как работают опкоды / memory / storage, что делает assembly в коде или почему EVM работает так, как она работает. К нему всегда можно было обратиться за советом!

На 4 модуле он будет рассказывать вам последние 8 уроков: работа с памятью, assembly / yul, побитовые операции и дебаггинг!

Вы сможете детально изучить эти темы и с легкостью разбираться в них в своей работе.

Запуск уже совсем скоро!

#курс
🔥13🥴1
Текстовые уроки по аудиту

Хотел еще пару дней назад выложить на канале, да как-то забыл.

В Твиттере достаточно много хороших отзывов было по урокам по безопасности смарт контрактов и аудиту от Zokyo, еще одной аудиторской компании.

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

https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/

Хорошо то, что команда потихоньку развивает свой проект и будут выходить новые уроки со временем.

#zokyo #audit
👍8
Пока идет какой-то не реальный загруз, выложу этот скрин, который описывает дейтствия функции call(). Нашел когда-то в Твиттере, сохранил, а тут просматривал заметки и решил, что можно выложить и на своем канале.

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

#call
8