Поздно в воскресенье исследователи открытый критическая ошибка проверки в LND, популярной реализации Lightning Network Биткойн, отстаиваемой Лаборатории молнии.
В частности, в полной реализации биткойн-узла LND, BTCD, была ошибка в его реализация стержневой корень. (BTCD — это полная реализация узла для Биткойн, популярная среди пользователей Lightning Network.)
Ошибка затрагивает версии LND 0.15.1 и старше. LND призывает всех пользователей обновиться до версии 0.15.2.
Ошибка LND повлияла на работу узлов Lightning и не позволила пользователям LND выйти из сети Lightning Network уровня 2 в основную сеть, уровень 1 Bitcoin в течение нескольких часов. Пока ошибка не была устранена, пользователи LND не удалось создать или закрыть новые каналы Lightning.
Массивная транзакция Taproot с мультиподписью выявила ошибку
Исследователи обнаружили ошибку LND, проверяя пределы Язык сценариев Биткойн, язык программирования Биткойн. Они хотели протестировать чрезвычайно продвинутый смарт-контракт, который требовал совместной аутентификации множества сторон.
Чтобы выполнить этот тест, один исследователь, Бурак, создали большой Taproot с мультиподписью 998 из 999 сделка. Для аутентификации отправки биткойнов потребовалось 998 подписей с закрытым ключом. невероятное количество соавторов.
Чтобы представить эту цифру 998 в контексте, учтите, что пользователи Lightning Network обычно открывают каналы, используя только транзакции с мультиподписью 2 из 2.
Транзакция Taproot с мультиподписью 998 из 999 была принимается производителями блоков тестовой сети. Позже транзакция была добыта в биткойн-блоке основной сети. Затем транзакция сломал ЛНД.
Эта транзакция запутала метод, используемый LND для расчета того, каким был самый последний биткойн-блок. В частности, LND не смог проанализировать новый блок из-за его неисправного библиотека, Следующие сообщение в журналах ошибок появится: «Невозможно выполнить повторное сканирование цепочки: readScript: элемент-свидетель сценария больше максимально допустимого размера».
Лаборатории молнии сразу приступил к работе на ошибку LND фиксировать, обновляя библиотеку разбора проводов BTCD и планируя выпустить версию 0.15.2.
Прочитайте больше: Оффлайн-платежи Bitcoin Lightning скоро станут возможны
Подчеркивает необходимость перекрестных сервисов сторожевых башен
После процесса устранения ошибок исследователи начали выражать потребность в службах сторожевой башни, которые не зависят от реализации.
Эта ошибка коснулась только LND. ЛНД - это популярная реализация Lightning Network. Другие реализации включают Éclair и Core Lightning.
Сторожевые башни — это сторонние службы, которые отслеживают общедоступную сеть Bitcoin Lightning Network и позволяют пользователям добиваться возмещения ущерба за неправомерное поведение. Сторожевые башни могут отслеживать все реализации Lightning, чтобы защитить пользователей во время сбоев какой-либо конкретной реализации.
Например, поскольку большинство пользователей присоединяются к Lightning как транзакция с мультиподписью 2 из 2, они обычно доверяют одному контрагенту, чтобы он не лгал об окончательном балансе биткойнов во владении друг друга при закрытии канала и выходе из сети в основную сеть Биткойн.
Если кто-то лжет о принадлежащих ему биткойнах при попытке закрыть канал Lightning, пользователь, который может доказать эту ложь, может опубликовать другую, так называемую Сделка справедливости, и брать 100% биткойнов на их канале в качестве награды за поимку лжи.
Сторожевая башня, которая отслеживает все реализации (LND, Core Lightning, Éclair и т. д.), может защитить пользователя во время ошибок или взломов, позволяя им публиковать транзакции правосудия. если кто-то попытается украсть их деньги во время перебоев в обслуживании. Есть несколько небольших, перекрестных сторожевых башен, таких как Глаз Сатоши, но они не получили широкого распространения.
Чтобы быть в курсе новостей, следите за нами на Twitter и Новости Google или послушайте наш подкаст о расследованиях Инновация: Блокчейн-Сити.
Источник: https://protos.com/taproot-bug-freezes-bitcoin-inside-lightning-network-for-hours/