Solidity – высокоуровневый язык программирования для виртуальной машины Ethereum. Синтаксис напоминает JavaScript. Вы узнаете об актуальных технологиях, которые используют в разработке децентрализованных приложений. Изучите не только разработку на Solidity, но и сможете писать безопасный код в последних версиях компилятора pragma 0.8.19, а также узнаете о примерах уязвимостей.
Необходимые знания:
- Знание ООП
- Знание основ любого языка программирования
- Опыт работы с БД
- Будет плюсом: опыт разработки на С++ и JavaScript
Программа курса
Основы Solidity и разработка смарт-контрактов
Этот модуль погружает студентов в мир разработки смарт-контрактов на языке программирования Solidity. Вы получите базовые знания и практический опыт создания и взаимодействия со смарт-контрактами на Ethereum.
- Тема 1: Знакомство с курсом и командой преподавателей. Что такое блокчейн
- Тема 2: Среда разработки, Metamask, Etherscan, Remix IDE
- Тема 3: Gas и gasPrice, первый контракт, загрузка кода в сеть (deploy)
- Тема 4: EVM, типы данных Solidity, события, модификаторы: require/revert/assert
- Тема 5: Операции и функции, циклы, модификаторы: pure, view, payable, fallback
Токены и стандарты блокчейна
В данном модуле студенты знакомятся с основными стандартами блокчейна и типами токенов. Рассматриваются ERC-20, ERC-721 и другие стандарты, а также их практическое применение.
- Тема 1: Стандарты ERC20, BEP20, TRC20 (токены) // Разбор ДЗ
- Тема 2: Стандарты ERC-721 и ERC-1155 (NFT)
- Тема 3: Другие стандарты токенов, примеры уязвимостей в токен контрактах
Unit-тестирование и оптимизация смарт-контрактов
Здесь уделено внимание тестированию и оптимизации смарт-контрактов. Рассматриваются подходы к написанию тестов, тестовых сценариев и использование инструментов для повышения эффективности смарт-контрактов.
- Тема 1: Настройка среды окружения, обзор Hardhat // Разбор ДЗ
- Тема 2: Настройка среды Foundry для разработки сматр-контрактов
- Тема 3: Структура/хранение данных: storage, memory, stack и calldata
- Тема 4: Оптимизация контрактов по газу
- Тема 5: Пишем UNIT тесты
- Тема 6: Выбор темы проектной работы
Работа с OpenZeppelin и управление обновлениями
В этом модуле углубленно изучается работа с OpenZeppelin, популярной библиотекой для разработки смарт-контрактов. Студенты узнают о управлении обновлениями и версионности смарт-контрактов.
- Тема 1: Access control
- Тема 2: Стандарты EIP712 и ERC2612 (ERC20 Permit)
- Тема 3: Meta transactions
- Тема 4: EIP-4337, абстрагированные аккаунты // Разбор ДЗ
- Тема 5: Factory, Clone, create/create2
- Тема 6: Upgradable contracts: Transparent, UUPS и Beacon
DeFi и WEB3-разработка
Модуль посвящён разработке в DeFi (децентрализованные финансы) и применению Web3. Обсуждаются основные принципы и практические аспекты создания DeFi-приложений.
- Тема 1: Настройка окружения. Библиотеки Web3.js, Ether.js. Интерфейс Viem
- Тема 2: Пишем скрипт на JS // Разбор ДЗ
- Тема 3: Реализация подписки на события, управление газом, предпроцесинга в скриптах на JS
- Тема 4: Uniswap v2
- Тема 5: Uniswap v3, v4
- Тема 6: 1INCH
- Тема 7: Обзор the curve
- Тема 8: Chainlink — Oracle contract, VRF
- Тема 9: AAVE flashloans
- Тема 10: MultiSig
- Тема 11: Пишем программу для индексации событий для TheGraph
- Тема 12: Архитектура DAO
Работаем с блокчейнами и протоколами
Модуль знакомит с особенностями работы с различными блокчейнами и протоколами, обсуждается взаимодействие и интеграция различных блокчейн-решений.
- Тема 1: Обзор альтернативных блокчейнов
- Тема 2: Работа с Binance Smart Chain (BSC)
- Тема 3: Работа с Polygon (Matic)
- Тема 4: Использование мостов между блокчейнами // Разбор ДЗ
Безопасность смарт-контрактов и подготовка
В этом модуле основное внимание уделяется безопасности смарт-контрактов, рассматриваются распространенные угрозы и методы защиты, а также подготовка к экзаменам и собеседованиям.
- Тема 1: Основные векторы атак. Обзор распространенных ошибок. Аудиторские отчеты.
- Тема 2: Reentrancy, crossreentrancy, tx.origin и др. critical issues
- Тема 3: Анализаторы, best practice, upgrade issues // Разбор ДЗ
- Тема 4: Вопросы на собеседовании.
Проектная работа, делаем проект для портфолио
Последний модуль предполагает разработку собственного проекта, который станет частью портфолио студента. Это позволит продемонстрировать полученные знания и навыки на практике.
Преподаватели:
- Ярослав Анищенко
- Александр Куперман
- Андрей Гулицкий
- Егор Дергунов
- Александр Суханов





