Введение в блокчейн — систему распределённого реестра. Расскажем об истории блокчейна, его развитии и основных продуктах. На практическом занятии вы получите опыт работы с блокчейном и попробуете воспользоваться криптографическими утилитами.
- История блокчейна, развитие технологии и основные продукты. Основы блокчейна: свойства, состояния, транзакции, блоки. Доверие к участникам сети.
- Практическое занятие: работа с GPG — создание пары ключей, подпись и шифрование. Подключение к тестовой сети Bitcoin, создание кошелька и работа с эксплорером. Работа с тестовой сетью Ethereum.
Основы криптографии
Расскажем об основах криптографии: без неё невозможно создавать серьёзные проекты на блокчейне.
Понятие и история шифра, принцип Кирхгофа. Симметричное шифрование, шифр Вернама, потоковые и блочные шифры.
- Хеш-функции: требования, принципы построения, примеры. Случайный оракул, подпись Лэмпорта, MAC, аутентифицированное шифрование. Защита хеш-функций и атаки на них.
- Шифрование с открытым ключом. Понятия группы, кольца и поля. Протокол шифрования RSA, протокол Диффи — Хеллмана, система Эль-Гамаля.
Цифровые подписи: назначение и требования. Подписи ECDSA и Шнорра, протокол подписи RSA, подписи на основе хеш-функций. Представление о PKI — инфраструктуре открытых ключей.
Архитектура узла сети блокчейн
- Верхнеуровневая архитектура узла сети блокчейн, принципы построения и взаимодействия подсистем.
- Организация транзакций в блоке, структура заголовка блока, лёгкие ноды.
- Адреса в Bitcoin и Ethereum.
- Merkle Tree.
- SegWit.
Сетевой уровень взаимодействия
Расскажем об организации P2P-взаимодействия. Часто блокчейн — это сеть без выделенного центра, поэтому принципы её организации отличаются от архитектуры «клиент — сервер».
- P2P-сети: история, примеры, отличия от client-server. Проблемы адресации, bootstrapping P2P-клиента, announce vs request. Распространение информации в сети Bitcoin, различия в распространении транзакций и блоков, дополнительные relay-сети, протоколы исключения некорректно работающих узлов.
- Практическое занятие: написание простейшей P2P-сети.
Протоколы консенсуса
В открытых блокчейн-системах все узлы равноправны, но среди участников могут быть недобросовестные. Поэтому задача достижения общего согласия о состоянии системы является сложной.
- Основные подходы к решению задачи консенсуса.
- Протокол BFT и задача о византийских генералах. Обзор протоколов Paxos и Raft, масштабирование протоколов.
- Протоколы Proof-of-Work, майнинг, атака 51%. Препятствия децентрализации в PoW-системах: ASIC и пулы. Меры противодействия централизации. Масштабирование и пересчёт сложности майнинга, coin hopping.
- Стратегии майнинга: форки, эгоистичный майнинг, выборочное включение транзакций, объединённый майнинг.
- Проблемы PoW. Протоколы Proof-of-Stake. Атаки: nothing-at-stake, grinding attack. Пулы в PoS-системах.
- Другие варианты консенсуса: Delegated PoS, Proof-of-Space, Proof-of-Authority, Hashgraph.
Смарт-контракты
Транзакции в блокчейне не ограничиваются криптовалютами. Расскажем о смарт-контрактах и о том, как их создавать.
- Блокчейн как абстрактный автомат.
- Стековая машина Bitcoin, скрипты Bitcoin и их ограничения.
- Смарт-контракты Ethereum, их примеры и уязвимости.
- Газ в сети Ethereum, проблема останова, EVM, Solidity. Смарт-контракты сети EOS.
- Практическое занятие: написание смарт-контрактов Ethereum.
- Практическое занятие: написание смарт-контрактов EOS.
Протоколы анонимизации
Расскажем, как скрыть общеизвестные детали транзакций, но при этом предоставить доказательства их корректности.
- Кольцевые подписи, stealth-адреса, mix-in. Концепция «обязательств Педерсена», доказательства принадлежности интервалу. Анонимизация в Monero.
- Криптовалюты Mimblewimble и Grin. Анонимизация в ZCash и представление о zk-SNARK.
Закрытые блокчейны и системы с разрешениями
Расскажем, чем закрытые блокчейны отличаются от открытых и в каких случаях они полезны. Практика: работа с Hyperledger Fabric.
Масштабирование сетей блокчейн
Рассмотрим проблемы масштабирования при большом числе клиентов.
- Оффчейн-протоколы. Lightning. Сайдчейны.
- Шардинг. Предполагаемые решения Ethereum 2.0 и альтернативные решения.
Пользовательские аспекты работы с блокчейном
- Примеры организации клиентского программного обеспечения, а также правовые основы работы с криптоактивами.
- Кошельки и хранение ключей. Получение ключей из сид-фразы и иерархические детерминистские кошельки. Функционирование криптобирж. Устройство и проблемы смарт-контрактов, DAO, ICO, DeFi.
- Правовые аспекты работы с блокчейном.
Заключение
- Рассмотрим направления развития блокчейна и подведём итог по пройденному курсу.
Кому подойдёт курс:
- Junior-разработчикам
- Если вы занимаетесь разработкой и рассматриваете блокчейн как перспективное направление.
- Технический стек: знание языка для бэкенд-разработки (Java, Python, Go или любой другой), TCP/IP, Git, работа с командной оболочкой.
- Опытным разработчикам
- Если у вас есть навыки системного администрирования или бэкенд-разработки и вы хотите узнать больше о блокчейне.
Портфолио:
- Создание смарт-контрактов.
- Проект на платформе Hyperledger Fabric.






