...
Просто интересно, как-то такой вариант атаки учтен и есть способ борьбы с ним?
Хорошая идея. Проверять её я конечно не буду.
Для её реализации потребуется:
1) создать исходящий канал в размере блокируемого платежа на стороне А;
2) добиться от кого-то входящего канала на сумму блокируемого платежа на стороне Б;
По моему опыту, платежи сейчас проходят в среднем через 2-3 ноды (одна из которых предоставила ликвидность).
Соответственно, для блокировки сети потребуется примерно около 100 таких цепочек и соответствующие суммы в каналах (1/3 от ёмкости блокируемых цепочек, не только в каналах от А, но и во входящих каналах к Б).
Проведу мыслительный эксперимент: Когда запустится эта адская машина, тот, кто дал входящую ликвидность Б, увидит в логах что-то не ладное и отрубит канал к Б. И, вообще, нужно ещё поискать тех, кто даст столько входящей ликвидности...
Чем-то похожим (надеюсь, в научных целях) судя по моим логам занимался Rompert.com (блокировал канал, но не проводил транзакцию)
"pending_htlcs": [
{
"incoming": true,
"amount": "50003",
"hash_lock": "Rompert/made/this///////////////zoecddcSV8A=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "26124",
"hash_lock": "Rompert/made/this///////////////OFwRcw7zRpE=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "34904",
"hash_lock": "Rompert/made/this///////////////RuSE4XvLido=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "17328",
"hash_lock": "Rompert/made/this///////////////HpKpsQs1sdY=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "36102",
"hash_lock": "Rompert/made/this///////////////SRsp2EtnNow=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "18211",
"hash_lock": "Rompert/made/this///////////////gRJbZjJh0iQ=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "18371",
"hash_lock": "Rompert/made/this///////////////DGAsh3HgCYU=",
"expiration_height": 0
},
{
"incoming": true,
"amount": "26588",
"hash_lock": "Rompert/made/this///////////////L8AwVTmLf9Y=",
"expiration_height": 0
}
],