Блокчейн: архитектура, криптовалюты, инструменты разработки, смарт-контракты
Издание будет полезно в первую очередь разработчикам, желающим использовать мощь распределенных систем в своей работе
Содержание книги “Блокчейн: архитектура, криптовалюты, инструменты разработки, смарт-контракты”
Над книгой работали.
Предисловие.
Глава 1. Блокчейн. Курс молодого бойца.
Развитие технологии блокчейн ;
Распределенные системы;
История блокчейна и валюты биткойн:
Электронные деньги;
Блокчейн:
- Определение блокчейна;
Общие элементы блокчейна:
- Как устроен блокчейн;
- Как в блокчейне накапливаются блоки;
Достоинства и недостатки блокчейна;
Уровни блокчейновой технологии;
Возможности блокчейна;
Типы блокчейна:
Распределенные реестры;
Технология распределенных реестров;
Публичные блокчейны. Приватные блокчейны:
- Полуприватные блокчейны;
- Сайдчейны;
- Закрытый распределенный реестр;
Разделяемый реестр;
Полностью приватные и проприетарные блокчейны;
Токенизированные блокчейны;
Нетокенизированые блокчейны.
Консенсус:
Механизм консенсуса;
Типы механизмов консенсуса;
Консенсус в блокчейне;
САР-теорема и блокчейн.
Заключение.
Глава 2. Децентрали
Децентрализация с помощью блокчейна.
Методы децентрализации:
Избавление от посредников.
Децентрализация на основе состязания.
Пути децентрализации:
Как происходит децентрализация;
Пример использования критериев децентрализации.
Блокчейн и полная децентрализация экосистемы
Хранилище данных.
Коммуникация.
Вычислительная мощность и децентрализация
Смарт-контракты:
Децентрализованные организации:
Децентрализованные автономные организации.
Децентрализованные автономные корпорации.
Децентрализованные автономные общества.
Децентрализованные приложения.
Требования к децентрализованным приложениям.
Операции, проводимые лецентрализованными приложениями.
- Примеры ДП.
Платформы для децентрализации:
Ethereum.
MaidSafe.
Lisk.
Заключение
Глава 3. Симметричное шифрование
Работа с утилитой командной строки ОpenSSL.
Введение.
Математика
- Множество.
- Группа.
- Поле
- Конечное поле.
- Порядок.
- Абелева группа.
- Простые поля.
- Кольцо.
- Циклическая группа.
- Модульная арифметика.
Криптография
Конфиденциальность
Целостность.
- Аутентификация. Аутентификация сущности.
- Аутентификация происхождения данных.
Неотказуемость.
Подотчетность.
Базовые элементы криптографии.
Симметричная криптография:
- Потоковые шифры.
- Блочные шифры
Стандарт шифрования данных (DES).
Стандарт шифрования AES.
- Как работает AES
Заключение.
Глава 4. Шифрование с открытым ключом
Асимметричное шифрование.
Целочисленная факторизация;
Дискретное логарифмирование;
Эллиптические кривые;
Открытые и закрытые ключи
Система RSA:
- Шифрование и дешифрование с помощью RSA.
- Эллиптическая криптография.
Проблема дискретного логарифмирования в ЕСC:
- RSA с использованием OpenSSL;
- Пара ключей в RSA: открытый и закрытый ключи;
- Шифрование и дешифрование;
- ECC с использованием OpenSSL.
Функции хеширования:
- Сжатие данных случайной длины и представление их в форме установленного размера;
- Простота вычислений;
- Вычислительная неразрешимость;
- Вторичная числительная неразрешимость;
- Устойчивость к коллизиям;
- Резюме сообщения;
- Алгоритмы безопасного хеширования;
- Деревья Меркла;
- Деревья Patricia;
- Распределенные хеш-таблицы (DHT)
- Цифровые подписи.
Алгоритм цифровой подписи RSA:
- Подписать и зашифровать.
- Зашифровать и подписать
Алгоритм ECDSA:
- Как создать цифровую подпись в ОреSSL;
- ЕСDSA при использовании OpenSSL;
- Гомоморфное шифрование Алгоритм Signcryption;
- Доказательства с нулевым разглашением;
- Слепые подписи;
- Схемы кодирования;
Финансовые рынки и торговля.
Торговля;
Обмен;
- Ордеры и их свойства.
- Системы электронной доставки и управления ордерами.
- Атрибуты сделки.
- Базовый финансовый инструмент.
- Основные атрибуты.
- Экономические атрибуты.
- Атрибуты продажи.
- Контрагент.
Жизненный цикл сделки.
Торговля на опережение.
Рыночные манипуляции.
Заключение
Глава 5. Знакомство с биткойном
Биткойн
Определение биткойна;
Биткойн – взгляд с высоты птичьего полета;
Отправка платежа другому пользователю;
Цифровые ключи и адреса.
Закрытые кли Bitcoin;
Открытые ключи и Bitcoin;
Адреса в Bitcoin:
- Кодирование Base58Check.
- Косметические адреса.
Транзакции
Цикл жизни транзакции:
- Комиссия транзакций.
- Пулы транзакций.
Структура данных транзакции:
- Метаданные.
- Вводы.
- Выводы.
- Верификация.
- Скриптовый язык.
- Распространенные опкоды.
Типы транзакций
- Транзакции Coinbase.
- Контракты.
Верификация транзакций.
- Гибкость транзакции.
Блокчейн:
Структура блока;
Структура заголовка блока;
Блок генезиса.
Майнинг:
Задачи майнеров;
Награды майнинга;
Доказательство работы (PoW);
Алгоритм майнинга;
Частота хеширования;
Системы майнинга:
- Центральный процессор;
- Графический процессор
- FPGA.
- ASIC.
Майнинг-пулы.
Заключение
Глава 6. Сеть и платежи Bitcoin
Сеть Bitcoin.
Кошельки.
Недетерминированные кошельки;
Детерминированные кошельки;
Иерархические детерминированные кошельки;
Мозговые кошельки;
Бумажные кошельки;
Аппаратные кошельки;
Онлайн-кошельки;
Мобильные кошельки:
- Мобильный кошелек faxx.
Платежи биткойнами;
Инновации в Bitcoin.
- Предложения по улучшению Bitcoin (BIP)
- Продвинутые протоколы;
- Сегрегированный свидетель (Segwit).
- Bitcoin Cash.
- Bitcoin Unlimited.
- Bitcoin Gold.
- Инвестирование в биткойны и продажа биткойнов.
Заключение.
Глава 7. Клиенты и API Bitcoin.
Установка Bitcoin:
Типы основных клиентов Bitcoin
- Bitcoind.
- Bitcoin-cli.
- Bitcoin-gt.
Настройка узла Bitcoin;
Настройка исходного кода;
Настройка файла bitcoin.conf;
Запуск узла в тестовой сети.
Запуск узла в режиме regtest.
Экспериментирование с Bitcoin-cli.
Программирование Bitcoin и интерфейс командной строки.
Заключение:
Глава 8. Альтернативные криптовалюты
Теоретические основы.
Альтернативы Proof of Work:
- Доказательство хранения.
- Подтверждение доли владения (POS).
Различные типы долей
- Доказательство возраста монеты;
- Доказательство депозита (POD);
- Доказательство уничтожения (РоB);
- Доказательство активности (PDA);
- Нетрадиционные задачи.
Настройка сложности и алгоритм перенаправления:
- Гравитационный колодец Кимото (KGW).
- Dark Gravity Wave.
- DigiShield..
- MIDAS
Ограничения Bitcoin.
Приватность и анонимность.
- Протоколы смешивания.
- Сторонние протоколы смешивания.
- Неотъемлемая анонимность.
Расширенные протоколы на Bitcoin.
- Цветные монеты.
- Контрагент.
Разработка альтернативных криптовалют:
- Алгоритмы консенсуса.
- Алгоритмы хеширования.
- Алгоритмы настройки сложности.
- Время между блоками.
- Награды блоков.
- Частота разделения награды.
- Размер блока и размер транзакции.
- Частота процента.
- Возраст монеты.
- Общее число монет.
Namecoin
Обмен Namecoin;
Получение Namecoin;
Генерирование записей Namecoin.
Litecoin.
Primecoin.
Обмен Primecoin
Руководство по майнингу.
Zcash.
Обмен Zcash.
Руководство по майнингу
- Генерирование адресов.
- Майнинг на графическом адаптере.
- Первичное предложение монет (Initial Coin Offerings-ICO).
- Жетоны ERC20э
Заключение.
Глава 9. Смарт-контракты
История.
Определение.
Рикардианские контракты.
Шаблоны смарт-контрактов;
Оракулы;
Умные оракулы;
Запуск смарт-контрактов в блокчейне;
DAO;
Заключение.
Глава 10. Знакомство с Ethereum.
Введение.
Желтый документ.
- Полезные математические символы.
Блокчейн Ethereum.
Ethereum с высоты птичьего полета
Сеть Ethereum:
- Mainnet.
- Testnet.
- Частная сеть.
Компоненты экосистемы Ethereum.
Ключи и адреса;
Учетные записи;
- Виды учетных записей;
Транзакции и сообщения.
- Транзакция с созданием контракта.
- Транзакция с вызовом сообщения.
- Сообщения.
- Вызовы.
- Проверка и выполнение транзакций.
- Промежуточное состояние транзакции.
- Хранение состояния в блокчейне Ethereum.
- Глобальное состояние
- Состояние учетной записи.
- Квитанции.
Криптовалюта Ether: токены EТC и ЕТН
Виртуальная машина Ethereum:
- Среда выполнения.
- Состояние виртуальной машины.
- Функция итератора.
Смарт-контракты.
- Стандартные контракты.
Заключение.
Глава 11. Ethereum. Продолжение
Языки программирования.
- Байт-код среды выполнения:
- Команды и их назначение.
- Арифметические опера.
- Логические операции.
- Криптографические операции.
- Информация об окружении.
- Информации о блоке.
- Операции со стеком, памятью, хранилищем и потоком выполнения.
- Операции сохранения.
- Операции дублирования.
- Операции замены.
- Журнальные операции.
- Системные операции.
Блоки и блокчейн:
- Начальный блок.
- Механизм проверки блоков.
- Сложность блока.
- Газ.
Планирование комиссии:
- Ответвления в блокчейне.
- Узлы и майнеры.
Ethash:
- Кошельки и клиентские программы
- API интерфейсы, инструменты и децентрализованные приложения.
Вспомогательные протоколы.
- Whisper.
- Swarm.
Масштабируемость, безопасность и другие вызовы.
Торговля и инвестиции.
Заключение
Глава 12. Среда разработки Ethereum
Тестовые сети.
Подготовка частной сети:
Идентификатор сети;
Файл с начальным блоком;
Директория с данными;
- Флаги и их на значение.
- Статические узлы.
Запуск частной сети.
Запуск клиента Mist в частной сети.
Развертывание контрактов с помощью Mist.
Обозреватель блоков для частных локальных сетей Ethereum
Заключение
Глава 13. Инструменты разработки и фреймворки
Языки программирования.
Компиляторы:
- Компилятор Solidity (solc);
- Интегрированные среды разработки.
- Инструменты и библиотеки;
- Ganache;
- MetaMask;
- Truffle;
- Разработка и развертывание контрактов.
Язык программирования Solidity
Типы:
- Примитивные типы;
- Литералы;
- Перечисления;
- Функции;
- Ссылочные типы;
- Глобальные переменные;
- Управляющие конструкции;
- Структура исходного файла Solidity
Заключение
Глава 14. Введение в Web3
Web3.
Развертывание контрактов;
POST-запросы;
Клиентская сторона на основе HTML и JavaScript:
- Установка web3.js.
Фреймворки для разработки:
- Truffle.
- Оракулы.
- Развертывание в децентрализованном хранилище с использованием IPFS.
- Распределенные журналы.
Заключение
Tneea 15. Hyperledger.
Проекты, входящие в состав Нурerledger.
- Fabric;
- Sawtooth Lake;
- Iroha;
- Burrow;
- Indy;
- Explorer;
- Cello;
- Composer;
- Quilt;
Hyperledger как протокол:
Эталонная архитектура.
Hyperledger Fabric: требования и архитектурные решения:
- Модульный подход.
- Сохранность личных данных и конфиденциальность.
- Масштабируемость.
- Предсказуемые транзакции.
- Проверка подлинности.
- Проверяемость.
- Интероперабельность.
- Переносимость.
- Гибкие запросы.
Fabric:
Hyperledger Fabric:
- Сервисы членства;
- Сервисы блокчейна;
- Сервисы консенсуса;
- Распределенный журнал.
Sawtooth Lake:
- POET;
- Семейства транзакций;
- Консенсус в Sawtooth;
- Среда разработки для Sawtooth Lake.
Corda
- Архитектура.
- Компоненты.
- Среда разработки для Corda.
Заключение
Глава 16. Альтернативные блокчейны
Блокчейны.
Kadena;
Ripple;
- Транзакции.
- Interledger.
Stellar;
Rootstock:
- Сайдчейн.
- Драйвчейн.
Quorum:
- Менеджер транзакций.
- Криптоанклав.
- Механизм ОuorumChain.
- Менеджер сети.
Tezos.
Storj.
MaidSafe.
BigchainDB.
MultiChain.
Tendermint:
- Ядро Tendermint;
- Протокол сокета Tendermint (TMSP);
Платформы и фреймворки.
Eris.
Заключение.
Глава 17. Блокчейн – вне сферы валют
Интернет вещей.
Уровень физических объектов;
Уровень устройства;
Сетевой уровень;
Уровень управления;
Прикладной уровень;
Эксперимент блокчейна интернета вещей;
- Настройка первого узла.
- Настройка узла Raspberry Pi.
- Цепь.
Государственные услуги:
- Пограничный контроль.
- Голосование.
- Идентификация населения (ID карты).
- Прочие услуги.
Здравоохранение;
Финансы
- Страхование.
- Расчет после сделок.
- Предотвращение финансовых преступлений.
- Медиа.
Заключение
Глава 18. Масштабируемость и другие вызовы
Масштабируемость:
Плоскость сети;
Плоскость консенсуса;
Плоскость хранения;
Плоскость вида;
Увеличение размера блока;
Уменьшение интервала блока;
Инвертируемые таблицы поиска Bloom;
Шардинг;
Каналы состояния;
Приватный блокчейн;
Доказательство доли владения;
Сайдчейны:
- Сабчейны.
- Цепи-деревья.
- Распространение блоков.
- Bitcoin-NG.
- Plasma.
Приватность
Обфускация неразличимости;
Гомоморфное шифрование;
Доказательства с нулевым разглашением;
Каналы состояния;
Безопасное многостороннее вычисление;
Применение аппаратного обеспечения для конфиденциальности;
CoinJoin;
Конфиденциальные транзакции;
MimbleWimble;
Безопасность:
- Безопасность смарт-контрактов
Заключение.
Глава 19. Текущая и дальнейшая перспективы Блокчейны специфических приложений (ASBC)
Новые тенденции:
Блокчейны специфических приложений (ASBC);
Корпоративные блокчейны;
Приватные блокчейны;
Стартапы;
Высокий исследовательский интерес;
Стандартизация;
Улучшения;
Реальные реализации;
Консорциумы;
Ответы на технические вызовы;
Сближение;
Образование в сфере блокчейн технологий;
Трудоустройство;
Исследования и криптографии;
Новые языки программирования;
Аппаратные исследования и разработка;
Исследования в формальных методах и безопасности;
Альтернативы блокчейнам;
Взаимодействие сетей;
Блокчейн как сервис;
Действия по уменьшению расхода электричества.
Другие вызовы:
Регулирование;
Темная сторона.
Исследования блокчейна:
Смарт-контракты.
Проблемы централизации.
Ограничения в криптографических функциях
Алгоритмы консенсуса.
Масштабируемость.
Код обфускации.
Примечательные проекты
Zcash на Ethereum.
CollCo.
Cello
Qtum.
Bitcoin-NG
Solidus.
Hawk.
Town-Crier.
SETLCoin.
TEEChan.
Falcon.
Bletchley.
Casper.
Прочие инструменты
Расширение Solidity для Microsoft Visual Studio.
MetaMask.
Stratis.
Embark
DAPPLE
Meteor.
uPort.
INFURA.
Сближение с другими отраслями.
Будущее.
Заключение.
Предметный указатель