[GeekBrains] Блокчейн-разработка 2020

850


Кому подойдет курс

Junior-разработчикам
Если вы занимаетесь разработкой и рассматриваете блокчейн как перспективное направление.
Технический стек: знание языка для бэкенд-разработки (Java/Python/Go или любой другой), TCP/IP, Git, работа с командной оболочкой.
Опытным разработчикам
У вас есть навыки системного администрирования или бэкенд-разработки, вы хотите узнать больше о блокчейне
Станьте блокчейн-разработчиком
Вы получите максимум пользы от курса, если владеете хотя бы одним языком для бэкенд-разработки, знакомы с Git, имеете представление о работе сети. Также желателен минимальный навык работы с командной оболочкой.
Актуальная программа
Мы обновляем программу ежегодно: проводим исследования и учитываем требования работодателей.
Практикующие преподаватели
Они работают в реальных рыночных условиях. На их опыте построена учебная программа.
Экспертиза Mail.ru Group
Мы анализируем развитие наших продуктов и делимся с вами накопленными знаниями.
Портфолио:
— Создание смарт-контрактов
— Проект на платформе Hyperledger Fabric

Программа курса
Введение в блокчейн — систему распределённого реестра
Расскажем об истории блокчейна, его развитии и основных продуктах. На практическом занятии вы получите опыт работы с блокчейном и попробуете воспользоваться криптографическими утилитами.
История блокчейна, развитие технологии, основные продукты. Основы блокчейна: свойства, состояния, транзакции, блоки. Доверие к участникам сети.
Практическое занятие Работа с GPG: создание пары ключей, подпись, шифрование. Подключение к тестнету BTC, создание кошелька, работа с эксплорером. Работа с тестнетом 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
Правовые аспекты работы с блокчейном
Заключение
Рассмотрим направления развития блокчейна, подведём итог по пройденному курсу.