저자: RGB++ Fans, 출처: byte meta CKB
이전 과학 기사에서는 결제 채널, 멀티홉 라우팅, HTLC 등 라이트닝 네트워크와 관련된 핵심 개념에 대해 간략하게 설명했습니다.
라이트닝 네트워크에서 송금하려면 여러 중개 노드를 통해 경로가 구축되는 경우가 많으며, 이 경우 송금 가능한 잔액이 제한되어 궁극적으로 결제 성공률에 영향을 미친다고 언급했습니다. 경로의 노드에 적절한 자금을 지원하고 사용자 경험을 개선하기 위해 유동성 관리 체계에 의해 규제됩니다. 하지만 유동성 관리 문제를 깊이 이해하기 위해서는 로컬 및 원격 잔액, 인바운드 및 아웃바운드 용량 등과 같은 몇 가지 기본 개념을 먼저 소개할 필요가 있습니다.
이전에도 라이트닝 네트워크의 기본 구성 요소는 노드와 채널이라고 언급했었습니다. 단위는 노드와 채널이며, 후자는 비트코인 네트워크에 구축된 오프체인 1대1 전송 시설입니다. 채널이 초기화되면 양 당사자는 '로컬 잔고'라고 하는 내 측의 초기 잔고와 '원격 잔고'라고 하는 상대방 측의 초기 잔고로 약간의 돈을 이체합니다. 로컬 잔액에 따라 상대방에게 송금할 수 있는 금액이 결정되어 지급 능력, 즉 '발신 능력'이 제한되고, 원격 잔액에 따라 상대방이 송금할 수 있는 금액이 결정되어 수취 능력, 즉 '수신 능력'이 제한됩니다.
참여 당사자의 각 잔액은 채널이 닫히기 전에 자주 변경할 수 있지만, 채널 전체를 다시 시작하거나 '채널 연결'을 사용해 자금을 투입하지 않는 한 채널의 총 용량은 합산할 때 변경할 수 없습니다.
(이 이미지는 귀하와 Robert의 각 잔액을 보여줍니다.) (이 다이어그램은 여러분과 로버트 각자의 잔액을 보여주며, 여러분의 로컬 잔액은 5, 원격 잔액은 3, 채널의 전체 용량은 8입니다)
위의 몇 가지 기본 개념을 이해한 다음, 라이트닝 네트워크의 유동성 관리가 실제로 해결하고자 하는 것이 무엇인지 살펴봅시다. 아래 그림은 노드 연결을 단순화한 그림입니다. 여러분(왼쪽 아래)은 LNTop의 한 노드에만 연결되어 있고, 원격 잔액이 3달러이므로 최대 3달러까지 송금할 수 있다는 것을 쉽게 알 수 있습니다. 소피가 여러분에게 1달러를 송금하려고 하면 중간 노드에 LNTop으로 이체할 수 있는 잔액이 충분하지 않기 때문에 실패합니다(빨간색 상자 안의 노드는 LNTop으로 보내는 용량이 0입니다).
채널 용량은 라이트닝 네트워크가 초기에 직면한 심각한 문제 중 하나라고 해도 과언이 아닙니다. 심각한 문제 중 하나였습니다. 이러한 문제는 이동성이 네트워크 전체에 더 적절하게 분산된다면 효과적으로 완화될 수 있으며, 클라이언트가 임대 시장(Lighting Pool)을 통해 이동성이 풍부한 여러 노드에 연결할 수 있도록 하는 등 이에 대한 솔루션을 "이동성 관리"라고 통칭하기도 합니다, 필요에 따라 새로운 채널을 개설/폐쇄하거나 채널 연결 및 재조정(채널 재조정)과 같은 방법을 도입하여 체인 안팎의 채널 잔액을 조절할 수 있습니다.
일부 지갑 클라이언트는 이제 자동화된 채널 관리 기능을 제공하여 사용자의 결제 행동과 네트워크 상태에 따라 채널을 지능적으로 관리하여 송금을 위한 충분한 유동성을 보장합니다. 또한 신규 사용자는 라이트닝 네트워크에 처음 연결할 때 '단방향 자금 조달' 모델을 사용할 수 있는데, 이는 채널 상대방만 채널에 자금을 조달할 수 있도록 허용하고 채널이 초기화될 때 사용자 스스로는 자금을 조달하지 않아 경제적 비용이 절감되지만 초기에 외부 결제/송금 용량이 부족하다는 대가를 치르게 되는 것을 의미합니다.
이제 라이트닝 네트워크에서 유동성 관리 체계의 일반적인 작동 방식에 대해 자세히 살펴보겠습니다. 먼저 노드의 '수신 용량'을 다루는 방식인 채널 임대에 대해 살펴보겠습니다. 즉, 다른 사람이 여러분에게 송금하고자 할 때 상대방이 성공적으로 결제 경로를 구축할 수 있도록 해야 하는데, 이를 위해서는 경로에 포함된 각 노드가 다음과 같은 조건을 갖춰야 합니다. 송금 가능한 잔액/송금 용량이 충분해야 합니다. 앞서 언급한 경로 실패 시나리오는 일부 중간 노드가 다른 노드와 구축하는 채널의 유동성 부족에 뿌리를 두고 있습니다.
채널을 구축하는 데는 비용이 발생하며, 참여자들은 종종 자금의 일부를 고정해야 하므로 기회 비용이 발생합니다. 소위 채널 임대로 불리는 아이디어는 노드 운영자가 시장 기반 수단을 통해 직접 거래할 수 있도록 하고, 잉여 노드가 다른 노드를 위해 주도적으로 채널을 구축할 수 있도록 '임대' 시스템을 통해 허용하는 것입니다. 예를 들어, 상인으로서 다른 사람들로부터 언제든지 돈을 받아야 하는 경우, 하루에 200 BTC 이상을 받을 수 있어야 합니다.
그래서 라이팅을 통해 4개의 대형 노드와 합의에 도달했습니다.
라이팅 풀을 통해 4개의 대형 노드와 계약을 체결하고, 4개의 노드 각각이 24시간 채널을 설정하여 각각 50 BTC를 고정하고, 각 채널에서 50 BTC의 원격 잔고를 제공함으로써 각 채널에서 50 BTC의 수금 가능성을 제공합니다. 누군가 귀하에게 송금하는 경우, 4개의 노드 중 하나를 중개자로 사용하여 지급 경로를 설정할 수 있습니다.
(1ml.com에서 볼 수 있습니다. 자금이 풍부하고 다른 노드와 여러 채널을 구축하여 유동성을 임대하여 수익을 창출할 수 있는 라이트닝 네트워크 노드의 잘 알려진 여러 운영자)
위에서 언급한 임대 풀 외에도 유동성 광고( 광고)도 있는데, 유동성 공급자는 라이트닝 노드의 가십 메시지를 사용하여 오퍼와 채널 기간을 방송할 수 있으며, 오퍼를 수락한 노드는 이를 통해 채널을 개설할 수 있습니다. 이러한 임대 기반 체계는 마진 시스템과 결합되어 한 당사자의 갑작스러운 채무 불이행을 방지합니다.
라이팅 랩스, 파이버 등 라이트닝 네트워크 개발자들은 현재 단방향 자금 조달을 위한 유동성 리스 시나리오를 최적화하기 위해 실험 중이며, 파이버는 CKB의 스마트 컨트랙트 기능에 유동성 에스크로 시스템을 도입할 계획입니다. 예를 들어, Fiber는 CKB 스마트 컨트랙트 기능을 기반으로 유동성 결제 시스템을 도입할 계획이며, 지정된 LSP 서비스 제공자 노드가 사용자와 채널을 설정하고 사용자의 수금 요구를 충족하기 위해 일정 기간 동안 무료 크레딧 용량을 제공할 것입니다. 사용자가 일정 금액을 받으면 계약에 따라 자동으로 비용을 회수하며, 이러한 시나리오와 관련된 유동성 담보 메커니즘도 논의 중입니다.
대체로 채널 임대는 노드를 서로 연결하고 유동성을 확보하는 문제를 해결하기 위해 자주 사용되는 반면, 아래의 채널 스플라이싱 시나리오는 온체인에서 자금 입금/출금 작업을 통해 채널 양측의 총 잔액을 직접 변경하는 방식입니다. 일반적으로 채널은 참여 당사자들이 공동으로 소유한 온체인 자산을 재분배하는 2/2 서명을 통해 개설 및 폐쇄되지만, 기존 라이트닝 네트워크 방식에서는 채널이 한번 열리면 닫았다가 다시 시작하지 않는 이상 채널의 전체 잔액을 변경할 수 없었습니다.
반면 채널 스플라이싱은 채널의 양 당사자가 공동으로 소유하는 UTXO를 기존 채널을 종료하지 않고 온체인에서 직접 업데이트할 수 있는 새로운 접근 방식으로, 예를 들어 양 당사자가 공동으로 소유하는 기존 자산에 새 자산을 추가하여 채널의 전체 잔액을 변경할 수 있습니다. 이 아이디어는 아래 다이어그램에 간략하게 설명되어 있으며, 왼쪽은 앨리스와 밥이 여러 서명으로 관리하는 기존 채널에 해당하는 온체인 자산(UTXO1)이고, 두 당사자가 채널 스플라이스를 시작하여 공동 관리를 위해 다른 자산(UTXO2)을 추가하면 궁극적으로 채널의 두 당사자가 처분할 수 있는 자산의 양이 증가하여 용량이 증가하게 됩니다(UTXO3).
채널 접합을 사용하여 초과 채널 자금을 줄일 수도 있습니다. 자금을 줄이고, 일시적으로 유휴 자산을 채널 밖으로 이전하여 자본 활용의 효율성을 개선하는 데에도 사용할 수 있습니다. 채널을 닫거나 다시 시작하는 데 필요한 기존의 두 번의 체인 상호 작용에 비해 채널 접합은 한 번의 체인 작업만 필요하므로 비용을 크게 절감할 수 있습니다. 채널 접합의 분명한 장점에도 불구하고, 역사적인 이유로 인해 이 솔루션은 완전히 성숙되지 않았으며 널리 채택되려면 아직 먼 길이 남았습니다.
채널 스플라이싱을 이해한 후에는 채널을 종료하거나 채널의 총 용량을 변경하지 않고(그리고 수수료를 무시하고) 다른 채널의 오프체인 잔액을 조정하는 수단인 채널 리밸런싱으로 넘어가겠습니다. 이는 채널을 종료하거나 채널의 총 용량을 변경하지 않고 (수수료를 무시하고) 다른 채널의 오프체인 잔액을 조절하는 수단이기도 합니다. 라이트닝 네트워크 클라이언트를 운영 중이고 다른 노드와 총 3개의 결제 채널을 설정했다고 가정해 보겠습니다.
채널 1: 노드 X와, 총 용량은 1 BTC
채널 1: 노드 X와, 총 용량 1 BTC
채널 2: 노드 Y와 설정, 총 용량 0.5 BTC
채널 3: 노드 Z와 설정, 총 용량 0.5 BTC
채널 4: 노드 Z와 설정, 총 용량 0.5 BTC
각 채널의 자금 분배는 다음과 같습니다:
채널 1: 로컬 잔액: 0.9 BTC. 원격 잔액: 0.1 BTC
채널 2: 로컬 잔액: 0.1 BTC 원격 잔액: 0.4 BTC
채널 3: 로컬 잔액: 0.1 BTC 원격 잔액: 0.4 BTC
현재 문제는 채널 2와 3의 발신 용량이 충분하지 않아 상대방에게 최대 0.1 BTC를 전송할 수 없어 대량 송금에는 충분하지 않다는 것입니다. 동시에 채널 1의 발신 용량은 0.9 BTC의 초과 용량이 있지만 단기적으로 그 정도는 사용할 수 없습니다. 당연히 가장 좋은 방법은 채널 1의 잉여 자금을 다른 두 채널로 옮기는 것입니다. 따라서 채널 1의 로컬 잔고에서 0.4 BTC를 채널 2로, 0.4 BTC를 채널 3으로 이체하려면 두 번의 순환 결제를 해야 합니다.
이를 위해 위 이미지와 같이 다음과 같이 할 수 있습니다. 0.8 BTC를 노드 X로 전송하면 노드 X는 0.4 BTC를 Y와 Z로 전송합니다. 그러면 Y와 Z는 채널 2와 채널 3에서 각각 0.4 BTC를 전송하여 로컬 잔액을 늘려 향후 대규모 전송에 필요한 자금을 충분히 확보할 수 있습니다.
위 이미지를 보면 루프 결제의 본질은 자신에게 돈을 이체하고 채널에서 채널로 잔액을 이동하여 전체 잔액 분포가 원하는 결과에 도달하도록 하는 것임을 쉽게 알 수 있지만, 이 방법만으로는 어떤 채널에서도 두 당사자의 총 잔액을 갑자기 늘릴 수 없다는 것을 알 수 있습니다. 그러나 이 방법만으로는 어느 채널에서든 두 당사자의 총 잔액을 갑자기 늘릴 수 없으며, 이를 구현하려면 X가 Y와 Z에게 충분한 자금을 이체할 수 있다는 가정이 필요합니다. 즉, 루프 결제는 해당 노드가 사전에 일정량의 유동성을 보유해야 하는 경우가 많습니다.
루프 결제는 채널 재조정 아이디어의 구현 아이디어 중 하나이며, 실제로 재조정 체계는 서브마린 스왑과 같은 다른 방법과 결합할 수 있습니다. 채널을 닫지 않고 HTLC 및 기타 방법을 사용하여 온체인과 오프체인 간에 자금을 교환하는 것이 핵심 아이디어인 잠수함 스왑에 대해 소개해드리겠습니다.
가장 간단한 서브마린 스왑 시나리오는 앨리스가 이미 밥과 1대1 채널을 설정했지만 일정 시간이 지나면 앨리스의 로컬 잔액이 고갈되어 더 이상 지불할 수 없다고 가정하고 체인 상의 채널에 자금을 충전하는 것입니다. 이 시점에서 앨리스는 더 많은 자금을 투입하고 싶고 채널을 다시 시작하기 전에 채널을 종료해야 하지만 채널이 임대되어 있어 미리 종료하는 것이 비용 효율적이지 않은데 어떻게 해야 할까요?
잠수함을 통해 스왑을 수행한다면 이 과정이 더 쉬울 수 있지만, HTLC의 도움으로 먼저 앨리스는 난수 R과 해시 H(R)를 생성할 수 있습니다. 그런 다음 앨리스는 HTLC에 의해 제한된 잠금 해제 조건으로 체인에 있는 밥의 주소로 BTC를 보낼 수 있습니다. 밥은 체인에서 이 비트코인을 잠금 해제하기 위해 H(R)의 원본 이미지 R을 알고 있어야 합니다.
밥은 오프체인 채널에서 HTLC를 통해 앨리스와 거래하지만, 반대 방향으로 앨리스는 밥이 지불한 돈을 잠금 해제하기 전에 R을 보여줘야 합니다. 앨리스가 R의 가치를 제시하면 밥은 이를 사용해 앨리스가 체인에 묶어둔 BTC를 잠금 해제할 수 있으며, 이후 채널 내 앨리스의 로컬 잔액은 증가하고 체인 내 자산 잔액은 같은 금액만큼 감소(수수료는 무시)합니다. 이는 기본적으로 1 대 1 스왑입니다(위는 원칙을 설명하기 위해 서브마린 스왑의 일반적인 작동 순서를 엄격히 따르지 않았지만 실제로는 대부분 오프체인 채널에서 한 당사자가 먼저 거래하고 상대방이 먼저 오프체인 채널에서 거래하는 방식입니다). 대부분의 경우, 한 당사자가 대칭형 HTLC 온체인에 앞서 HTLC 오프체인을 생성하고 다른 당사자가 대칭형 HTLC 온체인을 생성합니다.)
위 시나리오는 주로 온체인 자산을 오프체인 잔액으로 교환하는 데 사용되며, 앨리스와 밥의 작업 방향을 조정하여 출금으로 전환하고 오프체인 잔액을 온체인 자산으로 전환할 수 있습니다. 서브마린 스왑은 HTLC와 타임락의 조합으로 안전하며, 이 과정에서 상대방이 협조를 거부하더라도 상대방이 HTLC를 해제하는 키를 모르기 때문에 HTLC에 잠긴 돈은 여전히 안전하며, 타임락이 만료되면 돈을 돌려받을 수 있습니다.
그러나 위 시나리오에서는 원금은 도난당하지 않지만, 자금을 잠그기 위해 체인에 HTLC를 생성하는 당사자가 있어야 하며, 이 경우 필연적으로 상대방이 어느 정도 영향을 미칠 경우 수수료 마모가 발생할 수밖에 없다는 점에 유의하세요. 이러한 문제를 해결하기 위해 잠수함 스왑에는 선불, 평판 시스템 및 기타 페널티와 같은 몇 가지 협력 보조 장치가 있는 경우가 많습니다.
다시 요약하자면, 서브마린 스왑의 핵심 아이디어는 체인/체인 자산이 유연한 스왑을 달성할 수 있도록 하는 것입니다. 채널 재조정 아이디어를 따라 더 나은 유동성 조정 조치를 달성할 수 있다면 말입니다. 간단한 예를 들어보겠습니다.
여러 채널을 개설하는 노드를 운영하고 있는데 특정 채널은 로컬 잔액이 풍부한 반면 다른 채널은 로컬 잔액이 심각하게 부족하여 지불 능력에 영향을 미친다고 가정해 봅시다. 채널을 종료하지 않고 채널 간 자금 분배의 균형을 맞추고 싶다면 해저 스왑이 좋은 해결책이 될 수 있으며, 로컬 잔액이 과도한 채널을 선택하고 해저 스왑을 통해 자금을 체인으로 전송한 다음 해저 스왑을 통해 체인 자산을 대상 채널에 주입하면 채널을 종료하지 않고 전체 프로세스를 완료할 수 있습니다.
그러나 위의 내용을 요약하면, 서브마린 스왑과 채널 스플라이싱, 채널 리스 및 기타 유동성 조정 작업은 모두 체인에 작업 흔적을 남기며, 이는 결국 수수료를 발생시키고 이러한 작업이 자주 수행되면 사용자의 경제적 비용과 UX에 압박이 될 수밖에 없다는 것을 어렵지 않게 알 수 있습니다. 비트코인 라이트닝 네트워크는 BTC 메인넷에 의존하기 때문에 잦은 온체인 상호작용이 비현실적인 반면, CKB 기반 파이버는 이러한 압박이 상대적으로 적고 유동성 관리가 더 원활하게 이루어집니다. 어쨌든 라이트닝 네트워크와 파이버 모두 보다 혁신적인 유동성 솔루션을 연구하고 있으며, 머큐리 레이어와 같은 프로젝트 팀과의 적극적인 협업을 통해 향후 더 적합한 길을 찾을 수 있을 것입니다.