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

Передняя обложка
Второе издание бестселлера включает подробное введение в самую известную криптовалюту – биткойн, а также в лежащую в ее основе технологию блокчейна. Приведено описание технических основ биткойна и других валют, описание децентрализованной сети биткойн, пиринговой архитектуры, жизненного цикла транзакций и принципов обеспечения безопасности. Показаны методики разработки блокчейн-приложений с многочисленными примерами кода.Книга будет интересна разработчикам, инженерам, архитекторам программных и прочих систем, а также всем, кто хочет глубже узнать о криптовалютах и блокчейн-технологиях.
 

Отзывы - Написать отзыв

Не удалось найти ни одного отзыва.

Содержание

Предисловие
14
Благодарности
19
Введение
24
История создания биткойна
27
Варианты использования биткойнов пользователи и их истории
29
Начинаем обучение
30
Выбор биткойнкошелька
31
Сразу переходим к делу
33
Узлы с упрощенной проверкой платежей SPV
218
Фильтр Блума
221
Как SPVузлы применяют фильтры Блума
225
SPVузлы и приватность
227
Аутентификация и шифрование в пиринговой сети
228
Пулы транзакций
229
Блокчейн
231
Структура блока
233

Получаем свой первый биткойн
35
Поиск информации о текущей стоимости биткойна
36
Отправка и получение биткойна
37
Как работает биткойн
40
Покупка чашки кофе
41
Транзакции биткойна
43
Цепочки транзакций
44
Получение сдачи
45
Общие формы транзакций
46
Создание транзакции
47
Формирование правильных входных данных
48
Формирование выходных данных
49
Добавление транзакции в реестр
51
Майнинг биткойнов
52
Майнинг транзакций в блоках
54
Расходование транзакции
56
Bicoin Core эталонная реализация
58
Среда разработки биткойна
59
Компиляция Bitcoin Core из исходных кодов
60
Конфигурирование компилируемой версии Bitcoin Core
61
Сборка выполняемых файлов Bitcoin Core
64
Запуск узла Bitcoin Core
65
Самый первый запуск Bitcoin Core
67
Прикладной программный интерфейс API Bitcoin Core
72
Получение информации о состоянии клиента Bitcoin Core
73
Обработка и расшифровка транзакций
74
Исследование блоков
76
Использование программного интерфейса Bitcoin Core
77
Прочие клиенты библиотеки и инструментальные пакеты
80
Java
81
ObjectiveC
82
Ключи и адреса
83
Криптография с открытым ключом и криптовалюта
84
Секретный ключ и открытый ключ
85
Секретные ключи
86
Открытые ключи
88
Криптография с использованием эллиптических кривых
89
Генерация открытого ключа
91
Биткойнадреса
93
Форматы кодирования Base58 и Base58Check
94
Форматы ключей
99
Реализация ключей и адресов на языке Python
105
Усовершенствованные ключи и адреса
108
Зашифрованные секретные ключи BIP38
109
Адреса скриптов PaytoScript Hash P2SH и адреса мультиподписей
110
Престижные адреса
112
Кошельки
121
Недетерминированные кошельки со случайным выбором ключей
122
Детерминированные кошельки с источником
123
Источники и мнемонические коды BIP39
125
Практическое использование биткойнкошелька
126
Подробности технологии кошельков
128
Создание HDкошелька из источника
134
Использование расширяемого открытого ключа в вебмагазине
139
Транзакции
146
Транзакции что внутри
147
Входные и выходные данные транзакции
148
Выходные данные транзакции
150
Входные данные транзакции
153
Оплата транзакций
156
Добавление сумм оплаты в транзакции
160
Скрипты транзакций и язык Script
161
Неполнота по Тьюрингу
162
Скрипт PaytoPublicKeyHash P2PKH
167
Цифровые подписи ECDSA
169
Как работают цифровые подписи
170
Проверка цифровых подписей
172
Математическое обоснование алгоритма ECDSA
175
Важность фактора случайности в цифровых подписях
176
Биткойнадреса балансы и прочие абстракции
177
Более сложные транзакции и скрипты
181
Скрипт PaytoScriptHash P2SH
183
Адреса P2SH
186
Погашающий скрипт и проверка корректности
187
Запись выходных данных RETURN
188
Блокировки по времени timelocks
190
Check Lock Time Verify CLTV
191
Относительные блокировки по времени
193
Относительные блокировки по времени устанавливаемые полем nSequence
194
Относительные блокировки по времени с применением параметра CSV
196
Защита блокировок по времени от нелегального получения отчислений
197
Скрипты с управлением потоком выполнения условные выражения
198
Условные выражения с применением оператора VERIFY
200
Использование средств управления потоком выполнения в скриптах
201
Пример сложного скрипта
202
Сеть биткойна
205
Типы и роли узлов
206
Расширенная биткойнсеть
207
Сеть Bitcoin Relay Network
209
Обследование биткойнсети
211
Полноценные узлы
215
Взаимная инвентаризация
216
Идентификаторы блока хэшзначение заголовка блока и высота блока
234
Первичный блок
235
Связывание блоков в структуру данных блокчейна
236
Деревья Меркле
237
Деревья Меркле и упрощенная верификация платежей SPV
244
Testnet песочница для тестирования биткойнов
245
Segnet тестовая сеть для функции Segregated Witness
247
Использование тестовых структур блокчейна для разработки
248
Майнинг и консенсус
249
Экономика биткойна и создание валюты
251
Децентрализованный консенсус
253
Независимая верификация транзакций
254
Узлы майнинга
256
Объединение транзакций в блоки
257
Coinbaseтранзакция
258
Вознаграждение coinbase и отчисления за транзакции
260
Структура coinbaseтранзакции
261
Данные coinbase
262
Формирование заголовка блока
264
Майнинг блока
265
Алгоритм доказательства выполнения работы PoW
266
Представление целевого значения
272
Изменение целевого значения для регулирования уровня сложности
273
Успешный майнинг блока
276
Формирование и выбор цепочек блоков
278
Разветвления структуры данных блокчейна
279
Майнинг и конкуренция в хэшвычислениях
287
Решение с расширением диапазона дополнительных значений nonce
289
Пулы майнинга
290
Атаки на механизм консенсуса
295
Изменение правил консенсуса
299
Устойчивые разветвления ПО сеть майнинг и цепочка
301
Разделение майнеров и уровень сложности
303
Неустойчивые разветвления
304
Критика неустойчивых разветвлений
306
Оповещение о неустойчивом разветвлении с помощью поля версии блока
307
Оповещение и активация по стандарту BIP9
308
Разработка программного обеспечения для механизма консенсуса
311
Обеспечение безопасности биткойнсистемы
313
Разработка защищенных биткойнсистем
315
Основа доверительных отношений
316
Наиболее эффективные практические методики защиты пользователей
317
Физические средства хранения биткойнов
318
Аппаратные кошельки
319
Мультиподпись и управление
320
Резюме
321
Приложения блокчейна
322
Базовые элементы
323
Приложения создаваемые из базовых элементов
325
Цветные монеты
326
Использование цветных монет
327
Транзакции цветных монет
328
Counterparty
331
Каналы платежей и каналы состояний
332
Каналы состояний основные концепции и терминология
333
Пример простого канала платежей
335
Создание каналов без доверительных отношений
338
Асимметричные отменяемые обязательства
341
Контракты Hash Time Lock Contracts HTLC
346
Каналы платежа с маршрутизацией Lightning Network
347
Простой пример работы Lightning Network
348
Механизмы передачи и маршрутизации в сети Lightning Network
351
Преимущества сети Lightning Network
354
Резюме
355
Статья о биткойне Сатоши Накамото
356
Введение
357
Сервер меток времени
359
Сеть
360
Стимул
361
Требуемое дисковое пространство
362
Упрощенная верификация платежей
363
Объединение и разделение сумм транзакций
364
Вычисления
365
Резюме
368
Ссылки
369
Операторы константы и символы скриптового языка для транзакций Script
371
Предложения по улучшению биткойна Bitcoin Improvement Proposals
377
Функция Segregated Witness Segwit
383
Зачем нужен механизм Segregated Witness
384
Как работает механизм Segregated Witness
385
Неустойчивое разветвление обратная совместимость
386
Обновление ПО для использования Segregated Witness
390
Новый алгоритм подписи в механизме Segregated Witness
394
Bitcore
398
Примеры кошелька использующего bitcorelib
399
Библиотека pycoin утилиты ku и tx
401
Утилита для работы с транзакциями tx
407
Команды проводника биткойна bx
410
Примеры практического использования команд проводника bx
412
Предметный указатель
415
Об авторе
427
Авторские права

Часто встречающиеся слова и выражения

адрес алгоритма Алисы атак байтов биткойна биткойн­сети биткойн­системы битов блока блокировки блокирующий Боба больше будет версии виде возможность времени всех вы выполнения выполняется выходных данных вычисления генерации главе года денежных дерева длина доказательства должны другой есть защиты значение изменения использованием используется источника каждый канала клиента кодов количество команды консенсуса корректности которые кошелька майнеры майнинга механизм могут может можно например некоторые необходимо несколько новых обеспечения образом общего обычно один одного оператора операции описаны оплаты определенного основной открытого ключа передает платежей подписи подпись позволяет показан поле полную получения получить пользователей помощью после правил предыдущего приложение примере проверки программного просто процесс пула работы разветвления разделе различных расходования реализации результат решения рис самым свой секретный ключ сети системы скрипт следует случайных содержать создает соответствующих средств Стандарт стека стороны структуру данных блокчейна сумму типа точки транзакции узел узлы формате форме фрагмент выходных хэш­значение цели цепочки цифровой часто число элемент этот является Bitcoin Core UTXO

Библиографические данные