Но, конечно, вполне допускаю, что могут назвать кошелек self-custodial лишь потому, что у пользователя хранится сид от адреса, куда отправятся остатки после закрытия канала.
Я думал, что это само собой разумеется для любого кошелька Молнии, претендующего на некастодиальность. Но оказалось, что в кошельке Blockstream Green это не так.
На днях Green закрыл мой платёжный канал и отправил сатоши с моей стороны канала на адрес, от которого в приложении Green нет приватного ключа.
Почему я считаю, что ключа от этого адреса нет в приложении? Потому что операция вывода денег из канала отображается в кошельке только как расходная. В других аналогичных кошельках при закрытии канала можно увидеть в истории две операции: расходную (вывод денег из канала) и приходную (поступление денег на ончейн-адрес, воспринимаемый кошельком как свой). А приложение Green не видит, что деньги пришли на принадлежащий ему адрес. Значит, ключа от этого адреса в приложении нет.
У меня есть две сид-фразы:
- корневая, которая была сгенерирована при первом запуске приложения Green,
- и производная, которая была сгенерирована по стандарту BIP85 при создании в приложении Green кошелька для Молнии.
Я прогнал обе сид-фразы через iancoleman, но при стандартных путях деривации он не обнаружил связи между этими фразами и адресом, на который были переведены сатоши при закрытии канала.
Я также импортировал кошельки на основе этих сид-фраз в приложение BlueWallet и воспользовался функцией определения принадлежности адреса. BlueWallet показал, что ни один из импортированных кошельков не управляет этим адресом.
Я уж подумал, что Blockstream обманул меня насчёт некастодиальности и перевёл деньги из канала себе, а не мне. Написал в Blockstream обращение с просьбой вернуть их. Но вчера в публичное тестирование вышел кошелёк
Blitz Wallet, работающий на инфраструктуре Blockstream Greenlight, и я решил попробовать импортировать сид-фразу в него. Blitz сразу же нашёл мои деньги и отобразил их на моём Onchain Balance.
Но Blitz сейчас находится на очень ранней стадии развития. В нём ещё почти ничего не работает. Он даже не умеет создавать ончейн-транзакции. Умеет только генерировать и оплачивать инвойсы Молнии. Я спросил в чате Blitz в телеграме, какой путь деривации используется в кошельке. Может быть, получив ответ, я смогу раздобыть приватный ключ через iancoleman.
Теперь мне, похоже, остаётся только ждать:
- ждать, когда ответит Blockstream (с момента создания тикета прошло уже двое суток, но ответа пока нет);
- ждать, когда разработчики добавят в Blitz возможность тратить Onchain Balance;
- ждать ответа на вопрос о пути деривации, используемом Blitz.
А вообще, я извлекаю из этой ситуации такой урок. Прежде чем открывать канал нужной ёмкости в новом кошельке, нужно сначала не поскупиться на комиссию, открыть канал на символическую сумму и попробовать закрыть его. И только если всё пройдёт гладко, и деньги не потеряются, можно открывать более крупные каналы.