Lightning Network (часть 4): о пользе сторожевых башен

Публикация BitMEX Research от 1 августа 2019 г.

Аннотация.  BitMEX Research обновила свои узлы в сети Lightning Network и протестировала новую функцию предотвращения мошенничества (т.н. «сторожевой башни»). Для этого используется следующий механизм: система подключается к дружественному узлу, который отслеживает ваши каналы в сети LN и предотвращает кражу ваших средств другой стороной канала, даже когда вы не в сети. Мы успешно протестировали этот механизм, доказав, что концепция «сторожевой башни» действительно работает – по крайней мере, в нашем случае. Приятно видеть, что концепция «сторожевой башни», которая уже много лет существует в теории, теперь работает и на практике. Это внушает оптимизм.

(Источник: Алькатрас, flickr)

Обзор

Этот материал продолжает серию статей, посвященных сети Lightning Network:

  1. Lightning Network (часть 1): причины создания
  2. Lightning Network (часть2): экономика комиссий за маршрутизацию
  3. Lightning Network (часть 3): где справедливость?

29 июня 2019 года была выпущена версия LND 0.7.0 (бета-версияLN) с функцией «сторожевой башни». «Сторожевая башня» – это сторонний узел LN, который обнаруживает попытки кражи средств и инициирует «транзакцию справедливости», возвращая средства немошеннической стороне, даже когда ее узел не в сети.

Функция работает в двух режимах

 

Клиент/Пользователь Tower

Сервер

Описание

Клиент подключается к серверу «сторожевой башни». При изменении состояния канала LN на сервер «сторожевой башни» отправляются данные о последнем состоянии канала. В случае мошенничества «сторожевая башня» может инициировать транзакцию справедливости и вернуть средства в кошелек пострадавшей стороны в блокчейне.

Серверу «сторожевой башни» необязательно иметь каналы LN или передавать платежи. Он может подключаться к клиенту LN и отслеживать каналы в сети LN от его лица.

Использование

Для подключения узла к серверу «сторожевой башни» необходимо добавить в файл конфигурации LN следующую строку:


> wtclient.private-tower-uris=tower-public-key@ip-address:9911

Открытый ключ и IP-адрес предоставляются сервером «сторожевой башни».

Для активации сервера «сторожевой башни» необходимо добавить в файл конфигурации LN следующую строку:


> watchtower.active=1


После этого можно запустить команду:


>   lncli tower info


Сервер «сторожевой башни» предоставит открытый ключ (который отличается от открытого ключа узла LN). Этот ключ необходим для клиентского приложения «сторожевой башни». В связи с потенциальным игнорированием угроз обслуживания в настоящее время не рекомендуется размещать ключ «сторожевой башни» в открытом доступе.


Убедиться в том, что «сторожевая башня» работает, можно, проверив журналы активности.

Узел может одновременно выполнять функции сервера «сторожевой башни» и клиента.

Если используются два узла, один может быть «сторожевой башней» для другого. BitMEX Research в настоящее время использует 3 узла в сети Lighting Network, и все они наблюдают друг за другом, используя циклическую конфигурацию.

Успешная проверка «сторожевой башни»

30 июля 2019 года BitMEX Research успешно протестировала функцию «сторожевой башни». Так же, как и в нашей предыдущей статье о транзакциях справедливости, мы пытались обмануть себя, но на этот раз использовали «сторожевую башню». Функция сработала, как и было задумано, и потенциальный вор был наказан, что не может не обнадеживать.

Чтобы выполнить этот тест, мы запустили три узла:

  • Мошеннический узел – BitMEXThief
  • Узел, использующий функцию «сторожевой башни», – BitMEXTowerClient (пользователь службы сторожевой башни)
  • Узел, выполняющий функцию «сторожевой башни»,– BitMEXResearch

Моделирование транзакции справедливости с помощью «сторожевой башни»

(Источник: BitMEX Research)

Получившуюся в результате транзакцию справедливости, инициированную «сторожевой башней», можно увидеть здесь.

Заключение

Все узлы LN BitMEX Research теперь защищены «сторожевыми башнями». Без сомнения, функция «сторожевой башни» – значительное улучшение системы безопасности, но куда более серьезной проблемой, чем мошенничество с каналами, нам кажется случайная потеря или повреждение памяти узла LN, ведь в этом случае данные о последнем состоянии канала могут быть потеряны. «Сторожевая башня» не решает эту проблему, хотя в этой области удалось добиться прогресса с помощью резервного копирования статических каналов (SCB). Использование SCB должно гарантировать безопасность средств, при условии, что после резервного копирования не были созданы новые каналы.

Успешное тестирование функции «сторожевой башни» дает нам значительную уверенность в надежности Lightning Network. Приятно видеть, что такая теоретическая концепция как «сторожевая башня», которая обсуждалась годами, наконец-то реализована. Но с точки зрения повышения устойчивости и надежности сети LN, разработчикам предстоит еще много работы.