так что я пока не исключаю, что в лайтнинге
построение маршрута все-таки решабельная задача. С учетом какого-нибудь
кэширования - тем более.
Если пожертвовать с конфиденциальностью, то там могут быть и другие решения.
Например, можно создать специальные узлы-маршрутизаторы. Все каналы сообщают о своих изменениях этим узлам. Или одному узлу, а он уже остальным.
И этот же узел составляет маршрут по запросу. Так как у него всегда будет актуальная информация.
Создатели LN декларировали, что их система гораздо лучше с точки зрения конфиденциальности, чем блокчейн. Поэтому мне интересно, получится ли у них это реализовать без уступок в этом аспекте.
Ну а почему нет? В блокчейне проследить за движением средств может каждый.
(Вопрос как это делать мы поднимать не станем)
В лайтнинге - пока канал не закрыт - информация вообще недоступна миру.
То, что владелец лайтнинг-канала может что-то собирать - ну это ваша проблема.
Если вы не доверяете "столовой" - не открывайте канал на столовую
Блокчейны бывают разные. Есть Даш с микшированием, Монеро, Зкеш.
А если владелец маршрутизирующей LN-ноды может получить информацию, то конфиденциальности нет.
Например, я запускаю 100 нод. Эти ноды по очереди, раз в 100 секунд инициируют
запрос про состояние каналов. Чтобы не выглядело, как спам.
Мне так кажется, что реализация маршрутизации должна идти не в два прохода (на первом
проходе строим маршрут, на втором собственно совершаем проводку), а в один проход -
то есть пропихиваем свою транзакцию в канал и ждем - либо она доехала до адресата,
либо получаем отлуп от системы. Условно говоря, состояние всей сети мы не должны
пытаться выяснять просто потому что нам хочется.
Опять же подчеркну - я в этом вопросе не то что не подкован, я вообще весьма приблизительно
представляю как это работает или должно работать.
На данный момент, насколько можно судить по имеющейся информации, алгоритм примерно таков:
Отправитель запрашивает сведения о каналах
Сам вычисляет маршрут.
Запускает транзакцию.
При этом промежуточные узлы знают только откуда пришла транзакция и по какому каналу отправить дальше. Не знают начала и конца маршрута. С конфиденциальность вроде бы все нормально.
Хотя, первый узел наверняка будет знать, кто отправитель. А последний будет знать, кто получатель. Если отправитель и получатель - конечные пользователи.
Отправка транзакции по всем возможным маршрутам?
Каждая транзакция будет резервировать часть средств внутри канала, пока не выяснится, по этому маршруту пойдет транзакция, или не по этому. Отправка какой-либо суммы уменьшит средства в канале на эту сумму во всех каналах на всех возможных маршрутах. Если кто-то другой в это же время захочет сделать маршрут, то все каналы будут на эту сумму уже меньше. Не знаю, насколько это критично.
И опять же, ты передаешь информацию об отправителе и получателе.