Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Осваиваем Биткойн. Программирование открытого блокчейна

Покупка
Новинка
Артикул: 856520.01.99
Доступ онлайн
1 749 ₽
В корзину
Третье издание бестселлера включает подробное введение в самую известную криптовалюту — биткойн, а также в лежащую в ее основе технологию блокчейн. Приведено описание технических основ биткойна и других валют, описание децентрализованной сети Биткойн, пиринговой архитектуры, жизненного цикла транзакций и принципов обеспечения безопасности. Показаны методики разработки блокчейн-приложений с многочисленными примерами кода. Книга будет интересна разработчикам, инженерам, архитекторам программных и прочих систем, а также всем, кто хочет глубже узнать о криптовалютах и блокчейн-технологиях.
Антонопулос, А. Осваиваем Биткойн. Программирование открытого блокчейна : практическое руководство / А. Антонопулос, Д. А. Хардинг ; пер. с анг. В. И. Бахура. – 3-е изд. - Москва : Book.kz, 2024. - 388 с. – ISBN 978-6-01810-344-5. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2205127 (дата обращения: 08.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Андреас М. Антонопулос и Дэвид А. Хардинг
Осваиваем Биткойн


Andreas M. Antonopoulos and David A. Harding
Mastering Bitcoin
Programming  
the Open Blockchain
THIRD EDITION
Beijing • Boston • Farnham • Sebastopol • Tokyo 


Андреас М. Антонопулос и Дэвид А. Хардинг
Осваиваем Биткойн
Программирование  
открытого блокчейна
ТРЕТЬЕ ИЗДАНИЕ
2024


УДК 004.738.5:336.74Bitcoin
ББК 32.971.35+65.262.6с
А72
Антонопулос А. М., Хардинг Д. А.
А72	
Осваиваем Биткойн. 3-е изд. / пер. с анг. В. И. Бахура. – М.: Book.kz, 2024. – 
386 с.: ил. 
ISBN 978-6-01810-344-5
Третье издание бестселлера включает подробное введение в самую известную 
криптовалюту – биткойн, а также в лежащую в ее основе технологию блокчейн. 
Приведено описание технических основ биткойна и других валют, описание децентрализованной сети Биткойн, пиринговой архитектуры, жизненного цикла 
транз-акций и принципов обеспечения безопасности. Показаны методики разработки блокчейн-приложений с многочисленными примерами кода.
Книга будет интересна разработчикам, инженерам, архитекторам программных и прочих систем, а также всем, кто хочет глубже узнать о криптовалютах 
и блокчейн-технологиях.
УДК  004.738.5:336.74Bitcoin
ББК  32.971.35+65.262.6с
Authorized Russian translation of the English edition of Mastering Bitcoin, 3E ISBN 
9781098150099 © 2024 David Harding.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or 
controls all rights to publish and sell the same.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.
ISBN 978-1-098-15009-9 (анг.)	
Copyright © 2024 David Harding.
ISBN 978-6-01810-344-5 (казах.)	
© Оформление, перевод на русский 
язык, издание, Books.kz, 2024


Посвящается моей маме Терезе (1946–2017). 
Она научила меня любить книги  
и не принимать на веру мнение авторитетов.
Спасибо, мама.
– Андреас
Для Аманды.
Только после встречи с тобой я стал жить в раю.
– Дейв


Содержание
От издательства..................................................................................................13
Предисловие.......................................................................................................15
Об авторах...........................................................................................................25
Колофон................................................................................................................27
Глава 1. Введение...............................................................................................28
История Биткойна.................................................................................................31
Приступая к работе................................................................................................32
Выбор биткойн-кошелька.................................................................................32
Быстрый старт....................................................................................................35
Коды восстановления........................................................................................35
Биткойн-адреса.................................................................................................36
Получение биткойнов.......................................................................................37
Получение вашего первого биткойна..............................................................37
Определение актуальной цены биткойна.......................................................38
Отправка и получение биткойнов....................................................................39
Глава 2. Как устроен Биткойн..........................................................................42
Общие сведения о Биткойне.................................................................................42
Покупка в интернет-магазине..............................................................................43
Транзакции биткойна...........................................................................................44
Входные и выходные данные транзакций.......................................................45
Цепочки транзакций.........................................................................................45
Выдача сдачи.....................................................................................................46
Выбор номинала монет.....................................................................................47
Типичные формы транзакций..........................................................................47
Построение транзакции........................................................................................48
Получение правильных входных данных........................................................49
Создание выходов.............................................................................................49
Добавление транзакции в блокчейн................................................................50
Майнинг биткойнов..............................................................................................51
Расходование транзакции.....................................................................................54
Глава 3. Bitcoin Core: эталонная реализация..............................................56
От Биткойна к Bitcoin Core....................................................................................56
Среда разработки Биткойна.................................................................................58
Компиляция Bitcoin Core из исходного кода.......................................................58


Содержание    7
Выбор версии Bitcoin Core................................................................................59
Настройка сборки Bitcoin Core..........................................................................60
Сборка исполняемых файлов Bitcoin Core.......................................................62
Запуск узла Bitcoin Core........................................................................................63
Настройка узла Bitcoin Core..................................................................................64
API Bitcoin Core......................................................................................................68
Сбор информации о состоянии Bitcoin Core....................................................69
Исследование и декодирование транзакций...................................................70
Изучение блоков................................................................................................72
Использование программного интерфейса Bitcoin Core................................73
Альтернативные клиенты, библиотеки и инструментарии...............................76
C/C++...................................................................................................................77
JavaScript............................................................................................................77
Java......................................................................................................................77
Python.....................................................................................................................77
Go........................................................................................................................77
Rust.....................................................................................................................77
Scala....................................................................................................................77
C#........................................................................................................................78
Глава 4. Ключи и адреса...................................................................................79
Криптография с открытым ключом.....................................................................80
Секретные ключи..............................................................................................81
Объяснение криптографии на эллиптических кривых..................................82
Открытые ключи...............................................................................................85
Скрипты выхода и входа.......................................................................................86
IP-адреса: исходный адрес для Биткойна (P2PK)................................................87
Устаревшие адреса для P2PKH..............................................................................88
Кодирование Base58check.....................................................................................91
Сжатые открытые ключи......................................................................................93
Устаревший скрипт Pay to Script Hash (P2SH)......................................................96
Адреса Bech32........................................................................................................98
Проблемы с адресами Bech32.........................................................................101
Bech32m............................................................................................................101
Форматы секретных ключей...........................................................................105
Сжатые секретные ключи...............................................................................106
Расширенные ключи и адреса............................................................................107
Престижные адреса.........................................................................................107
Генерация престижных адресов.....................................................................108
Бумажные кошельки.......................................................................................110
Глава 5. Восстановление кошелька.............................................................112
Независимая генерация ключей........................................................................112
Детерминированная генерация ключей........................................................113


8    Содержание
Деривация открытого дочернего ключа........................................................114
Иерархическая детерминированная (HD) генерация ключей (BIP32).........116
Seed-числа и коды восстановления................................................................117
Сохранение данных, не связанных с ключами..............................................121
Резервное копирование путей извлечения ключей......................................122
Подробнее о технологическом стеке кошелька.................................................124
Коды восстановления BIP39............................................................................125
Создание HD-кошелька из seed-числа...........................................................130
Использование расширенного открытого ключа в интернет-магазине.....136
Глава 6. Транзакции.........................................................................................142
Сериализованная транзакция Биткойна...........................................................142
Версия...................................................................................................................144
Расширенные маркер и флаг..........................................................................145
Входы....................................................................................................................145
Длина списка входных данных транзакции..................................................145
Поле Outpoint...................................................................................................147
Поле Input Script..............................................................................................149
Поле Sequence..................................................................................................149
Выходы.................................................................................................................153
Количество выходов........................................................................................153
Сумма...............................................................................................................153
Скрипты выхода..............................................................................................155
Структура свидетеля.......................................................................................156
Циклические зависимости..............................................................................157
Изменение транзакций третьей стороной....................................................157
Изменение транзакций второй стороной......................................................158
Сегрегированный свидетель (Segregated Witness)........................................159
Сериализация структуры свидетеля..............................................................161
Время блокировки...............................................................................................161
Транзакции coinbase............................................................................................162
Объем данных транзакции: weight и vbyte........................................................163
Унаследованная сериализация...........................................................................164
Глава 7. Авторизация и аутентификация....................................................166
Скрипты транзакций и язык скриптов..............................................................166
Неполнота по Тьюрингу..................................................................................167
Верификация без сохранения состояния.......................................................167
Структура скриптов.........................................................................................167
Скрипт Pay to Public Key Hash (P2PKH)..........................................................171
Скриптовые мультиподписи..............................................................................172
Нестандартное выполнение CHECKMULTISIG...............................................174
Скрипт Pay to Script Hash (P2SH)........................................................................176
Адреса P2SH.....................................................................................................178


Содержание    9
Преимущества P2SH........................................................................................178
Скрипт погашения и проверка корректности...............................................178
Выход записи данных (OP_RETURN)..................................................................179
Ограничения времени блокировки транзакций...........................................180
Проверка времени блокировки (OP_CLTV)....................................................181
Относительные блокировки по времени.......................................................183
Относительные блокировки по времени с OP_CSV......................................183
Скрипты с контролем потока (условные предложения)...................................184
Условные предложения с оператором VERIFY..............................................185
Использование управления потоком в скриптах..........................................186
Пример сложного скрипта..................................................................................187
Примеры выхода сегрегированного свидетеля и транзакций.....................189
Обновление до Segregated Witness.................................................................192
Деревья альтернативных скриптов (Merklized Alternative Script Trees,  
MAST)....................................................................................................................194
Платеж Pay to Contract (P2C)...............................................................................198
Мультиподписи без скриптов и подписи с порогом.........................................199
Главный корень (Taproot) ...................................................................................200
Tapscript................................................................................................................203
Глава 8. Цифровые подписи..........................................................................204
Принцип работы цифровых подписей...............................................................204
Создание цифровой подписи.........................................................................205
Верификация подписи....................................................................................205
Типы хеширования подписи (SIGHASH)........................................................205
Подписи Шнорра.................................................................................................208
Сериализация подписей Шнорра...................................................................214
Мультиподписи без скриптов на основе алгоритма Шнорра.......................214
Пороговые подписи без скриптов на основе алгоритма Шнорра................216
Подписи ECDSA....................................................................................................219
Алгоритм ECDSA..................................................................................................220
Сериализация подписей ECDSA (DER)...........................................................220
Важность случайности в подписях.....................................................................221
Новый алгоритм подписи Segregated Witness...................................................222
Глава 9. Комиссия за транзакцию................................................................223
Кто платит комиссию за транзакцию?...............................................................224
Комиссии и ставки комиссий.............................................................................225
Оценка приемлемых ставок комиссии..............................................................225
Повышение комиссии Replace By Fee (RBF).......................................................226
Повышение комиссии Child Pays for Parent (CPFP)...........................................229
Пакетная пересылка............................................................................................230
Закрепление транзакций....................................................................................231
Исключение для CPFP и якорные выходы.........................................................233


10    Содержание
Добавление комиссии в транзакции..................................................................234
Блокировка по времени для защиты от перехвата комиссии..........................235
Глава 10. Сеть Биткойн....................................................................................236
Типы и роли узлов...............................................................................................237
Сеть	......................................................................................................................237
Компактная передача блоков.............................................................................237
Частные сети для передачи блоков....................................................................240
Обнаружение сети...............................................................................................241
Полные узлы........................................................................................................245
Обмен «запасами»...............................................................................................246
Облегченные клиенты.........................................................................................247
Фильтры Блума....................................................................................................249
Принцип работы фильтров Блума..................................................................250
Использование фильтров Блума облегченными клиентами.......................253
Компактные фильтры блоков.............................................................................255
Кодированные множества Голомба–Райса (GCS)..........................................256
Какие данные включать в фильтр блоков......................................................257
Загрузка фильтров блоков от нескольких пиров...........................................258
Экономия трафика за счет кодирования с потерями...................................259
Использование компактных фильтров блоков.............................................260
Облегченные клиенты и конфиденциальность................................................260
Соединения с шифрованием и аутентификацией............................................261
Мемпулы и орфанные пулы................................................................................261
Глава 11. Блокчейн...........................................................................................263
Структура блока...................................................................................................264
Заголовок блока...................................................................................................265
Идентификаторы блока: хеш заголовка блока и высота блока........................265
Блок генезиса.......................................................................................................266
Взаимосвязь блоков в блокчейне.......................................................................267
Деревья Меркла...................................................................................................268
Деревья Меркла и облегченные клиенты..........................................................273
Тестовые блокчейны Биткойна...........................................................................273
Testnet: площадка для тестирования Биткойна............................................274
Signet: доказательство полномочий сети testnet..........................................275
Regtest: локальный блокчейн.........................................................................277
Использование тестовых блокчейнов для разработки.....................................278
Глава 12. Майнинг и консенсус.....................................................................280
Экономика Биткойна и создание денежных средств........................................282
Децентрализованный консенсус........................................................................284
Независимая верификация транзакций............................................................285
Узлы майнинга.....................................................................................................286


Похожие

Доступ онлайн
1 749 ₽
В корзину