라이트닝 프로토콜의 근본적인 한계 중 하나는 결제 라우팅이 처리되고 수행되는 방식입니다. 이는 전적으로 출발지에서 라우팅되며, 결제의 발신자가 결제를 용이하게 하기 위해 자신에서 수신자까지의 전체 경로를 구성하는 것을 의미합니다. 이는 시간이 지남에 따라 여러 사용자 간에 결제를 라우팅하면서 채널의 잔액이 변동할 때 문제가 됩니다. 발신자가 특정 경로를 “잠그고” 결정하면, 초기 시도가 실패할 때까지 그 경로는 변경될 수 없습니다.
이로 인해 번거롭고 성가신 사용자 경험을 처리하거나, 결제 프로빙을 사용해야 합니다. 결제를 시도하기 전에 원하는 경로가 작동하는지 확인하기 위해 일부러 실패할 결제를 의도적으로 만드는 것입니다. 전자는 나쁜 사용자 경험일 뿐이며, 대규모로 사람들에게 실행 가능한 결제 솔루션을 만들려고 할 때 원하는 것이 아닙니다. 후자는 네트워크 전체에 불필요한 부담을 주며, 라우팅 노드는 최종화를 위한 의도가 없는 지속적인 결제로 인한 네트워크 트래픽과 유동성 문제를 처리해야 합니다.
이 문제의 궁극적인 원인은 결제 중에 경로를 변경할 수 없다는 것입니다. 전체 결제 경로가 양파 암호화되어 있기 때문에 이는 실제로 불가능합니다. 각 홉은 이전 홉과 다음 홉만 알고 있으며, 수신자까지의 대체 경로를 구성할 수 있는 최종 목적지에 대한 지식이 없습니다.
이제 이것이 출발지 기반 라우팅에서 벗어나는 데 큰 장벽이 되지만, 완전히 방지하지는 않습니다. 중개 노드로서, 목적지까지의 새로운 경로를 완전히 재구성할 수는 없지만, 발신자가 선택한 경로에서 다음 홉으로 결제를 재라우팅할 수 있습니다. 따라서 밥이 캐롤에게 라우팅해야 하는 결제를 받고, 그가 라우팅해야 하는 채널에 필요한 용량이 없으면, 그는 그 채널을 통해 가능한 만큼 보내고, 나머지 결제 금액을 캐롤로 가는 다른 경로를 통해 라우팅할 수 있습니다.
지난달 Gijs van Dam은 CLN을 위한 개념 증명 플러그인을 작성했습니다(여기에서 사용 가능). 이는 결제를 분할하고 수신자에게 여러 경로를 통해 전달할 수 있는 다중 경로 결제를 기반으로 합니다. 밥과 캐롤이 모두 플러그인을 실행하고 있다면, 적절한 상황에서 서로에게 한 채널을 통해 전달되는 결제가 실제로 부분적으로 재라우팅되고 있다는 것을 알릴 수 있습니다. 이렇게 하면 발신자가 결정한 경로가 실행 가능하지 않을 때 밥과 캐롤 간에 대체 경로가 있을 경우, 필요한 금액을 재라우팅할 수 있으며 결제가 완전히 실패하지 않고 성공할 수 있습니다.
네트워크에서 표준화된 행동으로 널리 채택된다면, 이는 결제 성공률에 큰 긍정적인 영향을 미칠 수 있으며, 간단히 작동하는 결제 메커니즘을 찾는 라이트닝 사용자들의 사용자 경험을 크게 개선할 수 있습니다. 이는 잘 알려진 단점을 상당히 개선할 수 있는 매우 간단하고 논리적인 행동입니다. 그러나 그것이 할 수 있는 전부는 아닙니다.
Gijs van Dam이 이 문제를 해결하는 데 관심을 가지게 된 큰 이유 중 하나는 단순히 결제 성공률과 사용자 경험을 개선하는 것과는 관련이 없었습니다. 사실 이는 개인 정보 보호의 단점 때문이었습니다. 라이트닝이 취약한 잘 알려진 개인 정보 보호 문제 중 하나는 채널 프로빙입니다. 이것이 Gijs가 우려했던 문제입니다.
위에서 언급했듯이 일부 지갑에서 실제 결제를 시도하기 전에 결제가 성공할 것인지 확인하는 데 사용되지만, 이 기술은 채널 양쪽의 자금 분배를 파악하는 데도 사용될 수 있습니다. 반복적으로 신중하게 선택된 금액으로 수행하면, 각 프로빙 시도의 성공과 실패는 채널 양쪽의 자금 분배를 추론할 수 있습니다. 더 나아가 여러 채널에서 정기적으로 체계적으로 수행하면, 이 기술은 채널 간 잔액이 변화하는 것을 실시간으로 관찰하여 결제를 비식별화할 수 있습니다.
라이트닝은 거래 사용을 위한 개인 정보 보호 도구로 지속적으로 언급되지만, 실제로는 채널 프로빙과 같은 기술로 인해 많은 경우 개인 정보 보호가 최악의 경우 불안정할 수 있습니다. 결제 분할 및 전환의 흥미로운 부작용 중 하나는 프로빙 공격을 약화시킨다는 것입니다. 프로빙 공격이 작동하는 이유는 결제가 실패할 때까지 다양한 금액으로 계속 프로빙할 수 있기 때문입니다. 올바르게 수행하면, 이는 마지막 성공적인 결제 시도와 실패한 시도 사이의 매우 작은 범위를 제공하여 채널의 잔액 분포를 알 수 있습니다.
라이트닝 노드가 즉석에서 실패할 결제를 성공하도록 부분 결제를 재라우팅할 수 있는 세상에서는, 이는 채널 잔액 프로빙이 의존하는 고유한 가정을 완전히 무너뜨립니다. 특정 채널을 통해 라우팅하기로 결정했을 때 결제 시도가 실패할 것이라는 것입니다. 결제 분할 및 전환으로 인해 그 가정은 더 이상 사실이 아니며, 네트워크의 노드가 전환을 지원할수록 그 가정이 오류가 발생할 가능성이 높아집니다(실제 라이트닝 네트워크 데이터를 사용한 Gijs의 시뮬레이션에 따르면 최대 62%까지).
따라서 이 제안은 상대적으로 간단할 뿐만 아니라 결제 시도의 성공률을 개선할 수 있는 경로를 제공하며, 라이트닝 네트워크의 가장 큰 개인 정보 보호 단점 중 하나를 해결하는 데도 도움이 됩니다. 최근 라이트닝 취약성 이후, 이 제안은 라이트닝이 문제를 전혀 갖고 있지 않다는 것은 아니지만, 해결하거나 완화하는 것이 불가능하지 않다는 것을 보여줍니다. 한 문제에 대한 해결책이 다른 문제에 도움이 되는 것이 매우 일반적일 것입니다.
로마는 하루아침에 세워지지 않았으며, 비트코인의 핵심 속성을 확장 가능하고 지속 가능한 방식으로 실제로 보존하는 솔루션도 마찬가지입니다.