blockchain

Учебник DeFi и безопасность смарт-контрактов для начинающих

25 уроков · 8 разделов · бесплатно, без регистрации

Этот курс — про безопасную разработку децентрализованных финансов. Мы разберём, как устроена экосистема DeFi (токены, пулы ликвидности, AMM, кредитование, стейблкоины, оракулы), а затем — почему код смарт-контракта так легко превращается в дыру, через которую утекают деньги. Каждую уязвимость мы рассматриваем по схеме «как возникла → почему она опасна → как от неё защититься»: реентранси, манипуляция оракулами, ошибки контроля доступа, фронт-раннинг, проблемы апгрейдабельности и многое другое. Атаки объясняются концептуально, чтобы вы научились их предотвращать, а не воспроизводить. В финале — инструменты (Slither, Mythril, Foundry), паттерны OpenZeppelin, аудит, тестирование инвариантов и этика ответственного раскрытия. Курс опирается на базовый Solidity и блокчейн и фокусируется именно на безопасности.

Курс «DeFi и безопасность смарт-контрактов» состоит из 8 разделов и 25 уроков: Что такое DeFi и почему безопасность критична, Реентранси и порядок операций, Контроль доступа и арифметика, Манипуляция ценой, флеш-займы и MEV, Логика, газ, подписи, Апгрейдабельность, рандомность и управление, Инструменты, паттерны и тестирование и Аудит, раскрытие и уроки практики. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Что такое DeFi и почему безопасность критична

    1. Что такое DeFi: финансы без посредников

      DeFi — это финансовые сервисы на смарт-контрактах без банков-посредников. Разбираем, зачем это нужно и из чего состоит экосистема.

    2. Строительные блоки: токены, AMM и пулы ликвидности

      Как устроены токены ERC-20 и автоматические маркет-мейкеры: формула x*y=k, пулы ликвидности и проскальзывание цены.

    3. Кредитование, стейблкоины и оракулы

      Как работают протоколы кредитования Aave/Compound, стейблкоины и оракулы цен — и почему именно оракулы становятся точкой атаки.

    4. Почему безопасность контрактов критична: модель угроз

      Неизменяемость кода, прямой доступ к деньгам, отсутствие отката: разбираем модель угроз смарт-контракта и поверхность атаки.

  2. 2 Реентранси и порядок операций

    1. Реентранси: как повторный вход опустошает контракт

      Реентранси — повторный вход во внешнюю функцию до завершения первого вызова. Объясняем концептуально, как возникает и почему опасна.

    2. Checks-Effects-Interactions и ReentrancyGuard

      Главный защитный паттерн от реентранси: сначала проверки и обновление состояния, потом внешние вызовы. Плюс ReentrancyGuard.

    3. Небезопасные внешние вызовы: call и delegatecall

      call, delegatecall и проблема storage layout. Почему delegatecall исполняет чужой код в вашем хранилище и как это контролировать.

  3. 3 Контроль доступа и арифметика

    1. Контроль доступа: кто может вызвать функцию

      onlyOwner, роли, забытые модификаторы. Почему незащищённая критическая функция — частая и дорогая ошибка.

    2. tx.origin против msg.sender

      Почему проверка прав через tx.origin уязвима к фишинговым прокси-контрактам, а правильный выбор — msg.sender.

    3. Переполнение целых: SafeMath и Solidity 0.8

      Как возникает переполнение/потеря разряда в арифметике контрактов, зачем нужен был SafeMath и что изменилось в Solidity 0.8.

  4. 4 Манипуляция ценой, флеш-займы и MEV

    1. Флеш-займы: мощный инструмент и его обратная сторона

      Флеш-займ — заём без залога в рамках одной транзакции. Легитимное использование и почему он усиливает другие уязвимости.

    2. Манипуляция оракулами и защита цены

      Как искажение цены обманывает протокол и как защититься: TWAP, Chainlink, проверка свежести и здравомыслия данных.

    3. Фронт-раннинг и MEV: публичный мемпул

      Мемпул публичен: как возникают фронт-раннинг и сэндвич-атаки и как защищаться слиппеджем, дедлайнами и commit-reveal.

  5. 5 Логика, газ, подписи

    1. Ошибки логики: округление и потеря точности

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

    2. DoS через газ и неограниченные циклы

      Как неограниченные циклы и зависимость от внешнего перевода приводят к блокировке средств. Паттерн pull-over-push.

    3. Подписи и реплей: повторное использование и nonce

      Как работает подпись вне сети, почему её можно повторно проиграть и как защититься через nonce и привязку к домену.

  6. 6 Апгрейдабельность, рандомность и управление

    1. Апгрейдабельность: proxy, storage collision и контроль

      Как устроены upgradeable-контракты на proxy, откуда берётся storage collision и почему кто контролирует апгрейд — главный вопрос.

    2. Небезопасная случайность и Chainlink VRF

      Почему block.timestamp и blockhash непригодны для случайности в блокчейне и как получить честный рандом через VRF.

    3. Governance- и экономические атаки

      Как голосование токенами становится вектором захвата протокола и как защититься таймлоком, кворумом и снапшотами.

  7. 7 Инструменты, паттерны и тестирование

    1. Инструменты безопасности: Slither, Mythril, Foundry

      Обзор инструментов: статический анализ Slither, символьное исполнение Mythril, фаззинг и инвариант-тесты в Foundry.

    2. Паттерны безопасной разработки

      CEI, pull-over-push, минимизация, проверенные библиотеки OpenZeppelin, паузы и лимиты — дисциплина безопасного контракта.

    3. Тестирование: юнит, форк-тесты и инварианты

      Как тестировать DeFi-контракты: юнит-тесты, форк-тесты на реальном состоянии и инвариант-тестирование свойств.

  8. 8 Аудит, раскрытие и уроки практики

    1. Аудит смарт-контрактов и чек-лист

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

    2. Bug bounty и ответственное раскрытие

      Как работают bug bounty (Immunefi, Code4rena), что такое ответственное раскрытие, этика white-hat и правовые границы.

    3. Реальные уроки: что пошло не так и как избежать

      Концептуальные уроки из известных взломов DeFi по классам уязвимостей и системные выводы, как их предотвращать.