УДК 004.04, 336.74
ББК 32.372
А72
Андреас Н. Антонопулос, Олаулува Осунтокун и Рене Пикхардт.
А72 Освоение Lightning Network: Протокол второслойной блочной цепи
для мгновенных Bitcoin-платежей / пер. с англ. А. В. Логунова. – М.: ДМК
Пресс, 2023. – 450 с.: ил.
ISBN 978-5-93700-144-3
Lightning – маршрутизируемая сеть платежных каналов, которая предоставляет
безопасные, дешевые, быстрые платежи Bitcoin с высокой степенью приватности,
даже когда дело касается малых сумм. В этой книге приводится обзор
сети Lightning, базовых концепций, которые легли в ее основу, и принципов
ее работы. Примеры проиллюстрированы на языках Go, C++, Python и с использованием
командной строки Unix-подобной операционной системы.
Книга адресована программистам, имеющим представление об основах
системы Bitcoin, однако ряд глав доступен широкому кругу читателей, интересующихся
блочными цепями.
УДК 004.04, 336.74
ББК 32.372
ISBN 978-1-492-05486-3
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой
Copyright©2022 DMK Press
Authorized Russian translation of the English edition of Mastering the Lightning Network
бы то ни было форме и какими бы то ни было средствами без письменного разрешения
владельцев авторских прав.
ISBN (анг.) 978-1-49205-486-3
ISBN (рус.) 978-5-93700-144-3
© 2022 Andreas M. Antonopoulos, Olaoluwa
Osuntokun, and René Pickhardt.
© Оформление, издание, перевод, ДМК Пресс, 2022
Стр.5
Оглавление
Предисловие ...................................................................................... 18
Целевая аудитория ...........................................................................................18
Условные обозначения в книге ........................................................................18
Примеры исходного кода .................................................................................19
Использование примеров исходного кода .....................................................20
Ссылки на компании и продукты ....................................................................20
Адреса и транзакции в этой книге ..................................................................20
Как с нами связаться ........................................................................................20
Связь с Андреасом ........................................................................................20
Связь с Рене ...................................................................................................21
Связь с Олаолувой Осунтокун ......................................................................21
Признательности от Андреаса .........................................................................21
Признательности от Рене .................................................................................21
Признательности от Олаолувы Осунтокун .....................................................22
Участники проекта ...........................................................................................22
Источники .........................................................................................................23
Об авторах ......................................................................................... 24
Об иллюстрации на обложке (Колофон) ...................................... 25
ЧАСТЬ I. ПОНИМАНИЕ СЕТИ LIGHTNING ........................ 27
Глава 1. Введение .............................................................................. 28
Базовые понятия сети Lightning ......................................................................28
Доверие в децентрализованных сетях ............................................................30
Справедливость без центральной власти .......................................................31
Доверительные протоколы без посредников .............................................32
Протокол справедливости в действии ........................................................33
Примитивы безопасности как строительные блоки ..................................34
Пример протокола справедливости ............................................................35
Мотивация для сети Lightning .........................................................................36
Масштабирование блочных цепей ..............................................................36
Определяющие признаки сети Lightning ........................................................38
Примеры использования сети Lightning,
пользователи и их истории ..............................................................................39
Вывод .................................................................................................................40
Стр.6
6 Оглавление
Глава 2. Приступаем к работе ......................................................... 41
Первый кошелек Lightning Алисы ..................................................................41
Узлы Lightning ...................................................................................................42
Проводники Lightning ......................................................................................42
Кошельки Lightning ..........................................................................................43
Тестовая сеть Bitcoin .....................................................................................46
Уравновешивание сложности и контроля ......................................................47
Скачивание и инсталляция кошелька Lightning ............................................48
Создание нового кошелька ..............................................................................49
Ответственность за хранение ключей ........................................................49
Мнемонические слова ..................................................................................49
Безопасное хранение мнемоники ...............................................................50
Загрузка биткойна в кошелек ..........................................................................51
Приобретение биткойна ..............................................................................51
Получение биткойна ....................................................................................52
Из системы Bitcoin в сеть Lightning .................................................................56
Каналы сети Lightning ..................................................................................56
Открытие канала Lightning ..........................................................................58
Покупка чашки кофе с помощью сети Lightning ............................................61
Кофейня Боба ................................................................................................61
Счет Lightning ...............................................................................................62
Вывод .................................................................................................................64
Глава 3. Как работает сеть Lightning ............................................. 65
Что такое платежный канал? ...........................................................................66
Основы платежного канала .............................................................................66
Маршрутизирование платежей по каналам ...................................................67
Платежные каналы ...........................................................................................68
Мультиподписной адрес ..............................................................................69
Финансовая транзакция ...............................................................................69
Пример плохой процедуры открытия канала ........................................70
Фиксационная транзакция ..........................................................................70
Обман с предыдущим состоянием ..............................................................72
Объявление канала .......................................................................................75
Закрытие канала ...........................................................................................75
Взаимное закрытие (хороший путь) .......................................................76
Принудительное закрытие (плохой путь) ..............................................77
Нарушение протокола (уродливый путь) ...............................................78
Счета ..................................................................................................................79
Платежный хеш и прообраз .........................................................................80
Дополнительные метаданные .....................................................................81
Доставка платежа..............................................................................................82
Эпидемический протокол обмена сообщениями
между одноранговыми узлами ....................................................................82
Отыскание пути и маршрутизация .............................................................83
Отыскание пути на основе источника ............................................................84
Луковичная маршрутизация .......................................................................85
Алгоритм пересылки платежей ...................................................................87
Стр.7
Оглавление 7
Шифрование однорангового обмена сообщениями ......................................88
Мысли о доверии ..............................................................................................89
Сравнение с системой Bitcoin ..........................................................................89
Адреса против счетов, транзакции против платежей ................................89
Выбор выходов против отыскания пути .....................................................90
Выходы со сдачей в Bitcoin против отсутствия сдачи в Lightning ............91
Майнинговые комиссионные против маршрутизационных
комиссионных ..............................................................................................91
Комиссионные, варьирующиеся в зависимости от трафика,
против объявленных комиссионных ..........................................................91
Публичные Bitcoin-транзакции против приватных платежей Lightning .... 92
Ожидание подтверждений против денежного расчета Lightning .............93
Отправка произвольных сумм против ограничений по емкости .............93
Стимулы для крупных платежей против малых платежей ........................94
Использование блочной цепи в качестве реестра против
судебной системы .........................................................................................94
Офлайн против онлайн, асинхронность против синхронности ...............94
Сатоши против миллисатоши .....................................................................95
Общие черты сетей Bitcoin и Lightning ...........................................................95
Денежная единица........................................................................................95
Необратимость и окончательность платежей ............................................96
Доверие и риск контрагента ........................................................................96
Безразрешительная работа ..........................................................................96
Открытый исходный код и открытая система ...........................................96
Вывод .................................................................................................................96
Глава 4. Программное обеспечение узла Lightning .................... 97
Среда разработки Lightning .............................................................................98
Использование командной строки .............................................................98
Скачивание репозитория книги ..................................................................99
Docker-контейнеры ...................................................................................100
Bitcoin Core и regtest .......................................................................................102
Сборка контейнера Bitcoin Core ................................................................102
Взаимодействие с контейнером bitcoin core ........................................103
Проект c-lightning узла Lightning .................................................................105
Сборка c-lightning в качестве Docker-контейнера ..................................105
Настройка сети Docker ...............................................................................106
Оперирование контейнерами bitcoind и c-lightning ...............................107
Инсталлирование c-lightning из исходного кода .....................................108
Инсталлирование необходимых библиотек и пакетов ............................108
Копирование исходного кода c-lightning ..................................................109
Компилирование исходного кода c-lightning ...........................................109
Проект демона узла сети Lightning ..............................................................111
Docker-контейнер LND ..............................................................................111
Оперирование контейнерами bitcoind и LND ..........................................112
Инсталлирование LND из исходного кода ................................................114
Копирование исходного кода LND ............................................................115
Компилирование исходного кода LND......................................................115
Стр.8
8 Оглавление
Проект узла Lightning Eclair ...........................................................................116
Docker-контейнер Eclair .............................................................................116
Оперирование контейнерами bitcoind и Eclair ........................................117
Инсталлирование Eclair из исходного кода ..............................................118
Копирование исходного кода Eclair ..........................................................119
Компилирование исходного кода Eclair ....................................................119
Сборка полной сети из разнообразных узлов Lightning ..............................120
Использование docker-compose для оркестрирования Dockerконтейнеров
...............................................................................................120
Конфигурация docker-compose ..................................................................121
Запуск образца сети Lightning ...................................................................121
Открытие каналов и маршрутизирование платежа ................................122
Вывод ...............................................................................................................124
Глава 5. Оперирование узлом сети Lightning .............................125
Выбор своей платформы ................................................................................126
Почему для оперирования узлом Lightning важна надежность? ............126
Типы аппаратных узлов Lightning ............................................................127
Оперирование в «облаке» ..........................................................................127
Оперирование узлом дома ........................................................................128
Какое оборудование требуется
для работы узла Lightning? ........................................................................129
Переключение серверной конфигурации в облаке ..................................130
Постоянное хранилище данных (накопитель) .....................................131
Использование инсталлятора или помощника ............................................131
RaspiBlitz .....................................................................................................131
myNode ........................................................................................................133
Umbrel ..........................................................................................................133
BTCPay Server ..............................................................................................134
Узел Bitcoin или облегченный узел Lightning ...........................................135
Выбор операционной системы ..................................................................136
Выбор имплементации узла Lightning ..........................................................136
Инсталлирование узла Bitcoin или Lightning ..............................................137
Фоновые службы .........................................................................................138
Изоляция процесса .....................................................................................138
Запуск узла ..................................................................................................139
Конфигурирование узла .............................................................................140
Конфигурирование сети.............................................................................141
Это просто работает! ..............................................................................142
Автоматическая переадресация портов с использованием UPnP ......143
Использование Tor для входящих соединений ....................................144
Ручная переадресация портов ...............................................................145
Безопасность вашего узла ..............................................................................146
Безопасность операционной системы ......................................................146
Доступ к узлу ...............................................................................................147
Резервное копирование узла и каналов ........................................................148
Риск со стороны горячего кошелька .........................................................150
Стр.9
Оглавление 9
Зачистка средств .........................................................................................150
Внутрицепная зачистка .........................................................................151
Внецепная зачистка ...............................................................................151
Зачистка на основе подводного свопа ..................................................151
Подводные свопы с помощью петли.....................................................152
Время безотказной работы и доступность узла Lightning ...........................153
Допускайте неисправности и автоматизируйте ......................................154
Мониторинг доступности узла ..................................................................154
Сторожевые вышки ....................................................................................155
Управление каналами ....................................................................................156
Открытие исходящих каналов ...................................................................157
Автопилот ...............................................................................................157
Получение входящей ликвидности ...........................................................160
Закрытие каналов .......................................................................................161
Перебалансировка каналов ........................................................................161
Комиссионные за маршрутизацию ...............................................................162
Управление узлом ...........................................................................................164
Ride The Lightning ......................................................................................164
lndmon ........................................................................................................164
ThunderHub .................................................................................................165
Вывод ...............................................................................................................165
ЧАСТЬ II. СЕТЬ LIGHTNING В ДЕТАЛЯХ ......................... 167
Глава 6. Архитектура сети Lightning ............................................168
Комплект протоколов сети Lightning ............................................................168
Lightning в деталях .........................................................................................169
Глава 7. Платежные каналы ...........................................................171
Другой способ использования системы Bitcoin ...........................................172
Владение биткойном и контроль над ним ....................................................173
Разнообразие форм (независимого) владения и мультиподпись ...........174
Совместное владение без независимого контроля ..................................174
Предотвращение «привязанности» и нерасходуемости биткойна .........174
Строительство платежного канала ................................................................175
Приватный и публичный ключи узла .......................................................175
Сетевой адрес узла .....................................................................................175
Идентификаторы узлов ..............................................................................176
Соединение узлов в качестве прямых одноранговых участников сети ..... 176
Строительство канала ....................................................................................177
Одноранговый протокол для управления каналами ...............................177
Поток сообщений об установлении канала ..............................................177
Сообщение open_channel ...........................................................................179
Сообщение accept_channel .........................................................................180
Финансовая транзакция .............................................................................181
Генерирование мультиподписного адреса ...............................................181
Сборка финансовой транзакции ...............................................................181
Стр.10
10 Оглавление
Удерживание подписанных транзакций
без широковещательной передачи ...........................................................182
Возврат средств до финансирования ........................................................182
Сборка предварительно подписанной возвратной транзакции .............183
Выстраивание транзакций в цепь без широковещательной передачи ..... 183
Решение проблемы деформируемости (сегрегированный свидетель) ...... 184
Сообщение funding_created ...................................................................185
Сообщение funding_signed .....................................................................186
Широковещательная передача финансовой транзакции ........................186
Сообщение funding_locked .....................................................................187
Отправка платежей по каналу .......................................................................187
Разделение остатка ....................................................................................187
Конкурирующие фиксации ........................................................................188
Обман со старыми фиксационными транзакциями ................................189
Отзыв старых фиксационных транзакций ...............................................189
Асимметричные фиксационные транзакции ..........................................190
Задержанное (привязанное ко времени) расходование выхода to_self ..... 191
Отзывные ключи ........................................................................................192
Фиксационная транзакция ...........................................................................193
Продвижение состояния канала вперед .......................................................195
Сообщение committement_signed ..............................................................196
Сообщение об отзыве и возврате ..............................................................196
Отзыв и рефиксация ..................................................................................197
Обман и наказание на практике ...............................................................197
Резерв канала: обеспечение личной заинтересованности ......................200
Закрытие канала (кооперативное закрытие) ...............................................200
Сообщение shutdown ..................................................................................201
Сообщение closing_signed ..........................................................................202
Транзакция кооперативного закрытия.....................................................202
Вывод ...............................................................................................................203
Глава 8. Маршрутизация в сети платежных каналов ................205
Маршрутизирование платежа .......................................................................205
Маршрутизация против отыскания пути .....................................................207
Создание сети платежных каналов ...............................................................207
Физический пример «маршрутизирования» ................................................208
Протокол справедливости ..............................................................................214
Имплементирование атомарных бездоверительных
многопереходных платежей ......................................................................214
Возвращаясь к примеру с донатами ..............................................................215
Внутрицепное и внецепное улаживание HTLC-контрактов ...................216
Контракты с привязкой к хешу и времени ...................................................216
HTLC-контракты на Bitcoin Script..............................................................217
Платежный прообраз и верификация хеша .............................................218
Распространение HTLC-контрактов от Алисы к Дины ............................219
Обратное распространение секрета ..........................................................220
Привязка подписи: предотвращение кражи HTLC-контрактов ..............222
Стр.11
Оглавление 11
Оптимизация хеша .....................................................................................223
Кооперативный отказ и отказ тайм-аута по HTLC-контракту ................225
Декрементирование привязок ко времени ..............................................226
Вывод ...............................................................................................................227
Глава 9. Работа канала и пересылка платежей ..........................228
Локальный (один) канал против маршрутизируемых
(многочисленных) каналов ............................................................................229
Пересылка платежей и обновление фиксаций
с помощью HTLC-контрактов ........................................................................229
HTLC-контракт и поток фиксационных сообщений ................................230
Пересылка платежей с помощью HTLC-контрактов ....................................230
Добавление HTLC-контракта .....................................................................231
Сообщение update_add_HTLC .....................................................................231
HTLC-контракт в фиксационных транзакциях ........................................232
Новая фиксация с выходом из HTLC-контракта ......................................233
Алиса фиксирует .........................................................................................234
Боб признает новую фиксацию и отзывает старую .................................235
Боб фиксирует .............................................................................................238
Несколько HTLC-контрактов .........................................................................239
Исполнение HTLC-контракта ........................................................................240
Распространение HTLC-контракта ................................................................240
Дина исполняет HTLC-контракт с Чаном .................................................240
Боб улаживает HTLC-контракт с Алисой ...................................................241
Удаление HTLC-контракта из-за ошибки или истечения срока .................244
Осуществление локального платежа .............................................................245
Вывод ...............................................................................................................245
Глава 10. Луковичная маршрутизация ........................................246
Физический пример, иллюстрирующий луковичную маршрутизацию .....247
Выбор пути ..................................................................................................247
Сборка слоев ...............................................................................................248
Отслаивание слоев .....................................................................................250
Введение в луковичную маршрутизацию на основе HTLC-контрактов .....251
Алиса выбирает путь ..................................................................................251
Алиса конструирует полезные грузы ........................................................253
Полезный груз для Дины в заключительном узле ..............................253
Переходный полезный груз для Чана ...................................................254
Переходный полезный груз для Боба....................................................255
Окончательные полезные грузы переходов .........................................256
Генерация ключей ......................................................................................256
Сеансовый ключ Алисы ..........................................................................257
Детали генерации ключей .....................................................................258
Генерация совместных секретов ...........................................................258
Обертывание луковичных слоев ...................................................................260
Луковицы фиксированной длины .............................................................260
Обертывание луковицы (в общих чертах) ................................................261
Стр.12
12 Оглавление
Обертывание переходного полезного груза Дины ..................................262
Луковично-маршрутизационная защита от повторного
воспроизведения и его обнаружение ...................................................265
Обертывание переходного полезного груза Чана ....................................266
Обертывание переходного полезного груза Боба ....................................267
Заключительный луковичный пакет .........................................................268
Отправка луковицы ........................................................................................269
Сообщение update_add_htlc .......................................................................269
Алиса отправляет луковицу Бобу ..............................................................269
Боб проверяет луковицу .............................................................................270
Боб генерирует заполнитель ......................................................................270
Боб распутывает свой переходный полезный груз ..................................271
Боб извлекает внешний HMAC для следующего перехода ......................272
Боб удаляет свой полезный груз и сдвигает луковицу влево ..................272
Боб конструирует новый луковичный пакет ............................................273
Боб верифицирует детали HTLC-контракта .............................................273
Боб отправляет update_add_htlc Чану ........................................................274
Чан пересылает луковицу ..........................................................................274
Дина получает заключительный полезный груз ......................................275
Возвращение ошибок .....................................................................................275
Сообщения о сбоях .....................................................................................276
Застрявшие платежи ..............................................................................278
Спонтанные платежи keysend........................................................................279
Конкретно-прикладные луковичные TLV-записи ...................................279
Отправка и получение платежей keysend .................................................280
Платеж keysend и конкретно-прикладные записи в приложениях
Lightning ......................................................................................................280
Вывод ...............................................................................................................280
Глава 11. Сплетни и канальный граф...........................................281
Обнаружение одноранговых узлов ...............................................................283
Самозагрузка P2P-узлов .............................................................................284
Самозагрузка адресов DNS-серверов ........................................................284
Рабочий поток самозагрузки нового однорангового узла ..................285
Опции SRV-запроса ...................................................................................288
Канальный граф ..............................................................................................289
Ориентированный граф .............................................................................289
Сообщения эпидемического протокола ......................................................290
Сообщение node_announcement ................................................................291
Структура сообщения node_announcement ..........................................291
Валидация объявлений узла ..................................................................292
Сообщение channel_announcement ...........................................................292
Необъявленные (приватные) каналы....................................................293
Локализация канала в блочной цепи Bitcoin ........................................293
Короткий ИД канала ...............................................................................294
Структура сообщения channel_announcement ......................................294
Валидация объявления канала ..............................................................296
Сообщение channel_update ........................................................................296
Стр.13
Оглавление 13
Текущее сопровождение канального графа .................................................297
Вывод ...............................................................................................................298
Глава 12. Отыскание пути и доставка платежа ..........................299
Отыскание пути в рамках комплекта протоколов Lightning .......................299
Где же BOLT? ...............................................................................................300
Отыскание пути: какую задачу мы решаем? ................................................300
Выбор наилучшего пути .............................................................................301
Отыскание путей в математике и информатике .....................................302
Емкость, остаток, ликвидность ..................................................................302
Неопределенность остатков ......................................................................303
Сложность отыскания пути ........................................................................304
Без лишних сложностей .............................................................................304
Отыскание пути и процесс доставки платежа ..............................................305
Построение канального графа .......................................................................305
Неопределенность в канальном графе .................................................308
Неопределенность ликвидности и вероятность .......................................309
Комиссионные и другие метрики канала .................................................310
Отыскание кандидатных путей .....................................................................312
Доставка платежа (цикл проб и ошибок) ......................................................312
Первая попытка (путь №1) ........................................................................313
Учеба на ошибках ...................................................................................313
Вторая попытка (путь № 4) ........................................................................313
Учеба на успехах .....................................................................................314
Застоявшиеся знания? ...........................................................................314
Многокомпонентные платежи ......................................................................314
Использование MPP ...................................................................................315
Разбивка платежей .................................................................................315
Метод проб и ошибок в течение нескольких «раундов» ..........................316
Вывод ...............................................................................................................318
Глава 13. Проводной протокол: фреймирование
и расширяемость.............................................................................319
Слой обмена сообщениями в рамках комплекта протоколов Lightning .......319
Проводное фреймирование ...........................................................................320
Высокоуровневое фреймирование............................................................320
Кодировка типа ...........................................................................................321
Расширения «Тип–длина–значение для сообщений» .................................322
Протокол буферизует формат сообщения ................................................322
Прямая и обратная совместимости ...........................................................323
Формат «Тип–длина–значение» ...................................................................323
Целочисленная кодировка BigSize ............................................................324
Ограничения TLV-кодирования ................................................................325
Каноническое TLV-кодирование ..............................................................325
Биты функциональностей и расширяемость протокола .............................325
Биты функциональностей как механизм обеспечения
обнаруживаемости модернизаций ...........................................................326
Стр.14
14 Оглавление
TLV для прямой и обратной совместимостей ...........................................327
Таксономия механизмов модернизации ..................................................328
Модернизации внутренней сети ...........................................................328
Сквозные модернизации .......................................................................328
Модернизации уровня строительства канала ..........................................329
Вывод ...............................................................................................................329
Глава 14. Шифрованный транспорт сообщений Lightning ......330
Шифрованный транспорт в рамках комплекта протоколов Lightning .......330
Введение ..........................................................................................................330
Канальный граф как децентрализованная инфраструктура
публичных ключей .........................................................................................331
Почему не TLS? ...............................................................................................332
Каркас криптосвязи на основе протокола Noise ..........................................333
Шифрованный транспорт Lightning в деталях .............................................333
Noise_XK: рукопожатие Noise в сети Lightning .........................................333
Нотация рукопожатия и поток протокола ................................................334
Высокоуровневый обзор ............................................................................334
Рукопожатие в трех действиях ..................................................................335
Инициализация состояния сеанса рукопожатия .................................337
Акты рукопожатия ..................................................................................337
Акт первый ..............................................................................................338
Акт второй ...............................................................................................339
Акт третий ...............................................................................................340
Шифрование транспортных сообщений ...............................................342
Ротация ключей сообщений Lightning ..................................................343
Вывод ...............................................................................................................343
Глава 15. Платежные запросы Lightning .....................................345
Счета в комплекте протоколов Lightning .....................................................345
Введение ..........................................................................................................345
Платежные запросы Lightning против Bitcoin-адресов ...............................346
BOLT #11: сериализация и интерпретация платежных
запросов Lightning ..........................................................................................347
Кодирование платежного запроса на практике .......................................347
Человекочитаемый префикс ......................................................................347
bech32 и сегмент данных ...........................................................................348
Тегированные поля счета .......................................................................349
Вывод ...........................................................................................................350
Глава 16. Безопасность и конфиденциальность
сети Lightning ..................................................................................351
Почему важна конфиденциальность? ...........................................................351
Определения конфиденциальности..............................................................351
Процесс оценивания конфиденциальности .................................................352
Анонимностное множество ...........................................................................353
Стр.15
Оглавление 15
Различия между сетями Lightning и Bitcoin
с точки зрения конфиденциальности .......................................................354
Атаки на Lightning ..........................................................................................356
Наблюдение за суммами платежей ...........................................................356
Связывание отправителей и получателей ................................................356
Раскрытие остатков каналов (прощупывание) ........................................358
Отказ в обслуживании ................................................................................360
DoS в Bitcoin ............................................................................................360
DoS в Lightning ........................................................................................361
Известные DoS-атаки .............................................................................361
Заклинивание фиксаций ............................................................................362
Запирание ликвидности канала ................................................................362
Межслоевая деанонимизация........................................................................362
Внутрицепная кластеризация Bitcoin-сущностей ...................................363
Контрмеры ..............................................................................................364
Внецепная кластеризация узлов Lightning ...............................................364
Контрмеры ..............................................................................................364
Межслоевое связывание: узлы Lightning и Bitcoin-сущности .................365
Граф Lightning .................................................................................................365
Как выглядит граф Lightning в реальности? .............................................365
Граф Lightning сегодня ...........................................................................366
Атаки на основе топологии ....................................................................366
Темпоральность сети Lightning .............................................................367
Централизация в сети Lightning ....................................................................368
Экономические стимулы и графовая структура ...........................................368
Практические советы пользователям по защите
их конфиденциальности ................................................................................369
Необъявленные каналы ..................................................................................369
Соображения по маршрутизации ..................................................................370
Принятие каналов ......................................................................................371
Вывод ...............................................................................................................372
Справочные материалы и дальнейшее чтение ............................................372
Конфиденциальность и атаки прощупыванием ..................................372
Атаки переполнением ............................................................................372
Соображения по маршрутизации..........................................................372
Глава 17. Заключение .....................................................................373
Децентрализованные и асинхронные инновации .......................................373
Инновации в Bitcoin-протоколе и в Bitcoin Script ....................................374
Инновация в протоколе Lightning .............................................................374
Расширяемость TLV ....................................................................................375
Строительство платежного канала ............................................................375
Сквозные функциональности в порядке выбора .....................................375
Lightning-приложения (LApps) ......................................................................376
На старт, внимание, марш! ............................................................................377
Стр.16
16 Оглавление
Приложение A. Обзор основных принципов
системы Bitcoin ...............................................................................378
Ключи и цифровые подписи ..........................................................................378
Приватные и публичные ключи ................................................................379
Хеши ............................................................................................................380
Цифровые подписи ....................................................................................382
Типы подписей ...........................................................................................383
Транзакции Bitcoin .........................................................................................383
Входы и выходы ..........................................................................................383
Транзакционные цепочки .........................................................................385
TxID: идентификаторы транзакций ..........................................................386
Выходные точки: выходные идентификаторы ........................................387
Bitcoin Script ....................................................................................................388
Работа языка Bitcoin Script .........................................................................388
Привязывающие и отвязывающие скрипты ............................................390
Привязывание к публичному ключу (подписи) .......................................390
Привязывание к хешу (секрету) ................................................................391
Мультиподписные скрипты .......................................................................392
Скрипты привязки ко времени .................................................................393
Скрипты с несколькими условиями ..........................................................394
Использование управления потоком в скриптах .....................................395
Приложение B. Базовая инсталляция
и использование Docker ................................................................ 397
Инсталляция Docker .......................................................................................397
Базовые команды Docker ...............................................................................398
Сборка контейнера .....................................................................................398
Оперирование контейнером .....................................................................398
Исполнение команды в контейнере .........................................................398
Остановка и запуск контейнера ................................................................398
Удаление контейнера по имени ................................................................399
Выведение списка оперируемых контейнеров ............................................399
Выведение списка Docker-образов ...............................................................399
Вывод ...............................................................................................................399
Приложение C. Сообщения проводного протокола ..................400
Типы сообщений.............................................................................................400
Структура сообщения .....................................................................................402
Сообщения об установлении соединения ................................................402
Сообщение init ........................................................................................402
Сообщения об ошибке ................................................................................403
Сообщение error .....................................................................................403
Оживленность соединения ........................................................................404
Сообщение ping ......................................................................................404
Сообщение pong .....................................................................................404
Стр.17
Оглавление 17
Финансирование канала ............................................................................405
Сообщение open_channel .......................................................................405
Сообщение accept_channel .....................................................................406
Сообщение funding_created ...................................................................406
Сообщение funding_signed .....................................................................407
Сообщение funding_locked .....................................................................407
Закрытие канала .........................................................................................407
Сообщение shutdown ..............................................................................408
Сообщение closing_signed ......................................................................408
Операция канала ........................................................................................408
Сообщение update_add_htlc ...................................................................408
Сообщение update_fulfill_hltc.................................................................409
Сообщение update_fail_htlc ....................................................................409
Сообщение committement_signed ..........................................................409
Сообщение revoke_and_ack .....................................................................410
Сообщение update_fee ............................................................................410
Сообщение update_fail_malformed_htlc .................................................410
Объявление канала .....................................................................................411
Сообщение channel_announcement .......................................................411
Сообщение node_announcement ............................................................411
Сообщение channel_update ....................................................................412
Сообщение announce_signatures ............................................................412
Синхронизация канального графа ............................................................413
Сообщение query_short_chan_ids ...........................................................413
Сообщение reply_short_chan_ids_end .....................................................413
Сообщение query_channel_range ............................................................413
Сообщение reply_channel_range .............................................................414
Сообщение gossip_timestamp_range ......................................................414
Приложение D. Источники и уведомления о лицензиях ..........415
Источники .......................................................................................................415
Сервер BTCPay Server .....................................................................................416
Lamassu Industries AG .....................................................................................416
Глоссарий .......................................................................................... 417
Предметный указатель ..................................................................436
Стр.18