Можно ссылку на оригинал? В теории тут контроль полностью у клиента отправителя - клиент генерирует маршрут (рандомный или заданный), пытается провести оплату по этому маршруту (максимальный размер комиссии который клиент готов оплатить тоже можно задать), если оплатить по данному маршруту не удается - строится новый маршрут, и т.д. Если какая-то нода будет говорить что по маршруту проходящему через нее "канал не доступен" то она может быть занесена клиентом в "черный список". Установленные каналом комиссии это публичная инфа, не в курсе на сколько возможно пытаться менять ее "на лету" но в любом случае думаю в будущем клиенты будут вести свой внутренний рейтинг каналов, нерешаемых проблем тут не вижу.
Насколько я понимаю, канал может быть недоступен и по уважительным причинам. И у отправителя нет возможности распознавать, была ли уважительная причина или нет. Занесение ноды в "черный список" при каждом таком случае не выглядит таким уж хорошим решением. Так всю сеть можно "зачернить".
С одной стороны, маршрут можно задавать как хочется. С Другой стороны, реальная блокировка каналов для совершения платежа выполняется последовательно. И если один из каналов не удаётся заблокировать, текущие реализации автоматически не строят новый маршрут целиком, т.к. это будет связано с отменой предыдущих блокировок. Решение этого вопроса активно прорабатывается, и в ближайших обновлениях описанный вариант будет пофиксен.
Фиксят обычно ошибки.
В данном случае был реализован определенный алгоритм построения маршрута. И он был выбран таким исходя из каких-то благих соображений. Чтобы пофиксить, необходимо придумать другой алгоритм. А где гарантия, что у нового алгоритма не будет своих слабостей и уязвимостей?
Например, решим, что маршрут в таком случае будет строиться по новой. Тогда необходимо отменить все уже сделанные блокировки каналов. А это время, потраченное каналами впустую. На ум сразу приходит злоумышленник, который строит маршрут, запускает его, блокирует N каналов, на N+1 канале отменяет, при этом выждав максимальную паузу. И в бесконечном цикле. И ноды ничего не могут сделать, ведь они не знают, кто запускает маршрут.
Чисто теоретически. Как построить надежную децентрализованную систему? Ведь в качестве аксиомы надо принять, что часть участников системы будут вести себя злонамеренно/деструктивно.
Первое, что приходит в голову, это распараллеливание действий. Запускаешь N процессов, если даже несколько из них попадут на деструктивного участника, то ничего страшного не произойдет, остальные сработают. Так, как это устроено в блокчейне. Связываешься с 10 участниками, делаешь транзакцию и кидаешь всем. Или же майнеры, которые работают параллельно, а не последовательно.
Если, например, 10% узлов в Биткоине будут злоумышленниками. Тогда при подключении к 10 случайным нодам вероятность того, что не получится отправить транзакцию, составляет 0.1^10. То есть, практически, ноль.
А если же возьмем LN, у которого 10% процентов узлов злоумышленники. Тогда, при длине маршрута 5, вероятность того, что попадете на злоумышленника равна около 1/2.
То есть, при одинаковых начальных условиях, насколько огромная разница между этими системами. И становится понятно, насколько трудно будет реализовать бесперебойную и надежную работу в LN.