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

Освоение Lightning Network. Протокол второслойной блочной цепи для мгновенных Bitcoin-платежей

Покупка
Артикул: 817223.01.99
Lightning — маршрутизируемая сеть платежных каналов, которая предоставляет безопасные, дешевые, быстрые платежи Bitcoin с высокой степенью приватности, даже когда дело касается малых сумм. В этой книге приводится обзорсети Lightning, базовых концепций, которые легли в ее основу, и принципов ее работы. Примеры проиллюстрированы на языках Go, C++, Python и с использованием командной строки Unix-подобной операционной системы. Книга адресована программистам, имеющим представление об основах системы Bitcoin, однако ряд глав доступен широкому кругу читателей, интересующихся блочными цепями.
Антонопулос, А. Освоение Lightning Network. Протокол второслойной блочной цепи для мгновенных Bitcoin-платежей : практическое руководство / А. Антонопулос, О. Осунтокун, Р. Пикхардт ; пер. с англ. А. В. Логунова. - Москва : ДМК Пресс, 2023. - 450 с. - ISBN 978-5-93700-144-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/2109501 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Андреас Н. Антонопулос,
Олаулува Осунтокун
и Рене Пикхард

Освоение  
Lightning Network

Протокол второслойной блочной цепи 
для мгновенных Bitcoin-платежей

Mastering  
the Lightning Network

A Second Layer Blockchain Protocol  
for Instant Bitcoin Payments

Andreas M. Antonopoulos,  
Olaoluwa Osuntokun  
& René Pickhardt

Освоение  
Lightning Network

Протокол второслойной блочной цепи 
для мгновенных Bitcoin-платежей

Андреас Н. Антонопулос,
Олаулува Осунтокун
и Рене Пикхард

Москва, 2023

УДК 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

Copyright©2022 DMK Press
Authorized Russian translation of the English edition of Mastering the Lightning Network 

ISBN 978-1-492-05486-3

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 

бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

©  2022 Andreas M. Antonopoulos, Olaoluwa 

Osuntokun, and René Pickhardt.
© Оформление, издание, перевод, ДМК Пресс, 2022
ISBN  (анг.) 978-1-49205-486-3
ISBN  (рус.) 978-5-93700-144-3

Оглавление

Предисловие ...................................................................................... 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

Глава 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

6  
Оглавление

Шифрование однорангового обмена сообщениями ......................................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

Оглавление  7

Проект узла 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

8  
Оглавление

Зачистка средств .........................................................................................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

Оглавление  9

Удерживание подписанных транзакций  
без широковещательной передачи ...........................................................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

10  
Оглавление