Учебник DeFi и безопасность смарт-контрактов для начинающих
Этот курс — про безопасную разработку децентрализованных финансов. Мы разберём, как устроена экосистема DeFi (токены, пулы ликвидности, AMM, кредитование, стейблкоины, оракулы), а затем — почему код смарт-контракта так легко превращается в дыру, через которую утекают деньги. Каждую уязвимость мы рассматриваем по схеме «как возникла → почему она опасна → как от неё защититься»: реентранси, манипуляция оракулами, ошибки контроля доступа, фронт-раннинг, проблемы апгрейдабельности и многое другое. Атаки объясняются концептуально, чтобы вы научились их предотвращать, а не воспроизводить. В финале — инструменты (Slither, Mythril, Foundry), паттерны OpenZeppelin, аудит, тестирование инвариантов и этика ответственного раскрытия. Курс опирается на базовый Solidity и блокчейн и фокусируется именно на безопасности.
Курс «DeFi и безопасность смарт-контрактов» состоит из 8 разделов и 25 уроков: Что такое DeFi и почему безопасность критична, Реентранси и порядок операций, Контроль доступа и арифметика, Манипуляция ценой, флеш-займы и MEV, Логика, газ, подписи, Апгрейдабельность, рандомность и управление, Инструменты, паттерны и тестирование и Аудит, раскрытие и уроки практики. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Что такое DeFi и почему безопасность критична
- Что такое DeFi: финансы без посредников
DeFi — это финансовые сервисы на смарт-контрактах без банков-посредников. Разбираем, зачем это нужно и из чего состоит экосистема.
- Строительные блоки: токены, AMM и пулы ликвидности
Как устроены токены ERC-20 и автоматические маркет-мейкеры: формула x*y=k, пулы ликвидности и проскальзывание цены.
- Кредитование, стейблкоины и оракулы
Как работают протоколы кредитования Aave/Compound, стейблкоины и оракулы цен — и почему именно оракулы становятся точкой атаки.
- Почему безопасность контрактов критична: модель угроз
Неизменяемость кода, прямой доступ к деньгам, отсутствие отката: разбираем модель угроз смарт-контракта и поверхность атаки.
- Что такое DeFi: финансы без посредников
2 Реентранси и порядок операций
- Реентранси: как повторный вход опустошает контракт
Реентранси — повторный вход во внешнюю функцию до завершения первого вызова. Объясняем концептуально, как возникает и почему опасна.
- Checks-Effects-Interactions и ReentrancyGuard
Главный защитный паттерн от реентранси: сначала проверки и обновление состояния, потом внешние вызовы. Плюс ReentrancyGuard.
- Небезопасные внешние вызовы: call и delegatecall
call, delegatecall и проблема storage layout. Почему delegatecall исполняет чужой код в вашем хранилище и как это контролировать.
- Реентранси: как повторный вход опустошает контракт
3 Контроль доступа и арифметика
- Контроль доступа: кто может вызвать функцию
onlyOwner, роли, забытые модификаторы. Почему незащищённая критическая функция — частая и дорогая ошибка.
- tx.origin против msg.sender
Почему проверка прав через tx.origin уязвима к фишинговым прокси-контрактам, а правильный выбор — msg.sender.
- Переполнение целых: SafeMath и Solidity 0.8
Как возникает переполнение/потеря разряда в арифметике контрактов, зачем нужен был SafeMath и что изменилось в Solidity 0.8.
- Контроль доступа: кто может вызвать функцию
4 Манипуляция ценой, флеш-займы и MEV
- Флеш-займы: мощный инструмент и его обратная сторона
Флеш-займ — заём без залога в рамках одной транзакции. Легитимное использование и почему он усиливает другие уязвимости.
- Манипуляция оракулами и защита цены
Как искажение цены обманывает протокол и как защититься: TWAP, Chainlink, проверка свежести и здравомыслия данных.
- Фронт-раннинг и MEV: публичный мемпул
Мемпул публичен: как возникают фронт-раннинг и сэндвич-атаки и как защищаться слиппеджем, дедлайнами и commit-reveal.
- Флеш-займы: мощный инструмент и его обратная сторона
5 Логика, газ, подписи
- Ошибки логики: округление и потеря точности
Почему деление в целочисленной арифметике теряет точность, как направление округления влияет на безопасность протокола.
- DoS через газ и неограниченные циклы
Как неограниченные циклы и зависимость от внешнего перевода приводят к блокировке средств. Паттерн pull-over-push.
- Подписи и реплей: повторное использование и nonce
Как работает подпись вне сети, почему её можно повторно проиграть и как защититься через nonce и привязку к домену.
- Ошибки логики: округление и потеря точности
6 Апгрейдабельность, рандомность и управление
- Апгрейдабельность: proxy, storage collision и контроль
Как устроены upgradeable-контракты на proxy, откуда берётся storage collision и почему кто контролирует апгрейд — главный вопрос.
- Небезопасная случайность и Chainlink VRF
Почему block.timestamp и blockhash непригодны для случайности в блокчейне и как получить честный рандом через VRF.
- Governance- и экономические атаки
Как голосование токенами становится вектором захвата протокола и как защититься таймлоком, кворумом и снапшотами.
- Апгрейдабельность: proxy, storage collision и контроль
7 Инструменты, паттерны и тестирование
- Инструменты безопасности: Slither, Mythril, Foundry
Обзор инструментов: статический анализ Slither, символьное исполнение Mythril, фаззинг и инвариант-тесты в Foundry.
- Паттерны безопасной разработки
CEI, pull-over-push, минимизация, проверенные библиотеки OpenZeppelin, паузы и лимиты — дисциплина безопасного контракта.
- Тестирование: юнит, форк-тесты и инварианты
Как тестировать DeFi-контракты: юнит-тесты, форк-тесты на реальном состоянии и инвариант-тестирование свойств.
- Инструменты безопасности: Slither, Mythril, Foundry
8 Аудит, раскрытие и уроки практики
- Аудит смарт-контрактов и чек-лист
Что такое аудит смарт-контракта, как к нему готовиться, чек-лист безопасности и почему аудит не даёт гарантии.
- Bug bounty и ответственное раскрытие
Как работают bug bounty (Immunefi, Code4rena), что такое ответственное раскрытие, этика white-hat и правовые границы.
- Реальные уроки: что пошло не так и как избежать
Концептуальные уроки из известных взломов DeFi по классам уязвимостей и системные выводы, как их предотвращать.
- Аудит смарт-контрактов и чек-лист