Осваиваем биткоин. Программирование блокчейна. Андреас М. Антонопулос
Второе издание бестселлера “Осваиваем биткоин. Программирование блокчейна” (Автор Андреас М. Антонопулос) включает подробное введение в самую известную криптовалюту – биткойн, а также в лежащую в ее основе технологию блокчейна. Приведено описание технических основ биткойна и других валют, описание децентрализованной сети биткойн, пиринговой архитектуры, жизненного цикла транзакций и принципов обеспечения безопасности. Показаны методики разработки блокчейн-приложений с многочисленными примерами кода.
Книга будет интересна разработчикам, инженерам, архитекторам программных и прочих систем, а также всем, кто хочет глубже узнать о криптовалютах и блокчейн-технологиях.
Содержание книги “Осваиваем биткоин. Программирование блокчейна” (Автор Андреас М. Антонопулос)
Глава 1. Введение.
- Выбор биткойнкошелька.
- Сразу переходим к делу.
- Получаем свой первый биткойн.
- Поиск информации о текущей стоимости биткойна.
- Отправка и получение биткойна.
Глава 2. Как работает биткойн.
- Общий обзор биткойнсистемы.
- Покупка чашки кофе.
- Входные и выходные данные транзакции.
- Цепочки транзакций.
- Получение сдачи.
- Общие формы транзакций.
- Формирование правильных входных данных.
- Формирование выходных данных.
-
Добавление транзакции в реестр.
Глава 3. Bicoin Core: эталонная реализация.
- Выбор версии Bitcoin Core.
- Конфигурирование компилируемой версии Bitcoin Core.
- Сборка выполняемых файлов Bitcoin Core.
- Самый первый запуск Bitcoin Core.
- Конфигурирование узла Bitcoin Core.
- Получение информации о состоянии клиента Bitcoin Core.
- Обработка и расшифровка транзакций.
- Исследование блоков.
- Использование программного интерфейса Bitcoin Core.
- C/C++.
- JavaScript.
- Java.
- Python.
- Ruby.
- Go.
- Rust.
- C#.
- ObjectiveC.
Глава 4. Ключи и адреса
- Криптография с открытым ключом и криптовалюта.
- Секретный ключ и открытый ключ.
- Секретные ключи.
- Открытые ключи.
- Криптография с использованием эллиптических кривых.
- Генерация открытого ключа.
- Форматы кодирования Base58 и Base58Check.
- Форматы ключей.
- Зашифрованные секретные ключи (BIP38).
- Адреса скриптов PaytoScript Hash (P2SH) и адреса мультиподписей.
- «Престижные» адреса.
Глава 5. Кошельки.
- Недетерминированные кошельки (со случайным выбором ключей).
- Детерминированные кошельки (с источником).
- HDкошельки (BIP32/BIP44).
- Источники и мнемонические коды (BIP39).
- Оптимальные практические методики технологии кошельков.
- Практическое использование биткойнкошелька.
- Мнемонические кодовые слова (BIP39).
- Создание HDкошелька из источника.
- Использование расширяемого открытого ключа в вебмагазине.
Глава 6. Транзакции.
- Транзакции – что внутри.
- Выходные данные транзакции.
- Входные данные транзакции.
- Оплата транзакций.
- Добавление сумм оплаты в транзакции.
- Неполнота по Тьюрингу.
- Верификация без сохранения состояния.
- Формирование структуры скрипта (Lock + Unlock).
- Скрипт PaytoPublicKeyHash (P2PKH).
- Как работают цифровые подписи.
- Проверка цифровых подписей.
- Типы хэшзначений подписи (SIGHASH).
- Математическое обоснование алгоритма ECDSA.
- Важность фактора случайности в цифровых подписях.
Глава 7. Более сложные транзакции и скрипты.
- Адреса P2SH.
- Преимущества механизма P2SH.
- Погашающий скрипт и проверка корректности.
- Блокировки по времени (timelocks).
- Блокирование транзакции по времени (nLocktime).
- Check Lock Time Verify (CLTV).
- Относительные блокировки по времени.
- Относительные блокировки по времени, устанавливаемые полем nSequence.
- Относительные блокировки по времени с применением параметра CSV.
- MedianTimePast.
- Защита блокировок по времени от нелегального получения отчислений.
- Условные выражения с применением оператора VERIFY.
- Использование средств управления потоком выполнения в скриптах.
Глава 8. Сеть биткойна.
- Как работает фильтр Блума.
- Tor Transport.
- Аутентификация и шифрование в пиринговой сети.
Глава 9. Блокчейн.
- Testnet – «песочница» для тестирования биткойнов.
- Segnet – тестовая сеть для функции Segregated Witness.
- Regtest – локальная структура данных блокчейна.
Глава 10. Майнинг и консенсус.
- Экономика биткойна и создание валюты.
- Coinbase-транзакция.
- Вознаграждение coinbase и отчисления за транзакции.
- Структура coinbaseтранзакции.
- Данные coinbase.
- Алгоритм доказательства выполнения работы (PoW).
- Представление целевого значения.
- Изменение целевого значения для регулирования уровня сложности.
- Разветвления структуры данных блокчейна.
- Решение с расширением диапазона дополнительных значений nonce.
- Пулы майнинга.
- Устойчивые разветвления.
- Устойчивые разветвления: ПО, сеть, майнинг и цепочка.
- Разделение майнеров и уровень сложности.
- Спорные устойчивые разветвления.
- Неустойчивые разветвления.
- Критика неустойчивых разветвлений.
- Оповещение и активация по стандарту BIP34.
- Оповещение и активация по стандарту BIP9.
Глава 11. Обеспечение безопасности биткойн-системы.
- Разработка защищенных биткойнсистем.
- Основа доверительных отношений.
- Физические средства хранения биткойнов.
- Аппаратные кошельки.
- Разумный баланс защиты и рисков.
- Диверсификация рисков.
- Мультиподпись и управление.
- Жизнеспособность.
Глава 12. Приложения блокчейна.
- Использование цветных монет.
- Выпуск цветных монет.
- Транзакции цветных монет.
- Каналы состояний – основные концепции и терминология.
- Пример простого канала платежей.
- Создание каналов без доверительных отношений.
- Асимметричные отменяемые обязательства.
- Контракты Hash Time Lock Contracts (HTLC).
- Простой пример работы Lightning Network.
- Механизмы передачи и маршрутизации в сети Lightning Network.
- Преимущества сети Lightning Network.
Приложение А. Статья о биткойне Сатоши Накамото.
- Введение.
- Транзакции.
- Сервер меток времени.
- Доказательство выполнения работы.
- Сеть.
- Стимул.
- Требуемое дисковое пространство.
- Упрощенная верификация платежей.
- Объединение и разделение сумм транзакций.
- Приватность.
- Вычисления.
- Резюме.
- Ссылки.
Приложение Б. Операторы, константы и символы скриптового языка для транзакций Script
Приложение В. Предложения по улучшению биткойна (Bitcoin Improvement Proposals).
Приложение Г. Функция Segregated Witness (Segwit).
- Обновление ПО для использования Segregated Witness.
- Новый алгоритм подписи в механизме Segregated Witness.
- Экономические стимулы для использования механизма
- Segregated Witness.
Приложение Д. Bitcore.
- Предварительные сведения.
- Примеры кошелька, использующего bitcorelib.
Приложение Е. Библиотека pycoin, утилиты ku и tx.
- Утилита для работы с транзакциями (tx).