초보자를 위한 비트코인 라이트닝 네트워크 설명
초보자를 위한 비트코인 라이트닝 네트워크 설명
아티클

초보자를 위한 비트코인 라이트닝 네트워크 설명

초급
Published Nov 28, 2018Updated May 11, 2021
18m


목차


들어가며

암호화폐에는 꽤나 독특한 특성이 존재합니다. 암호화폐는 쉽게 해킹되거나 중단될 수 없으며, 제3자의 개입 없이 누구나 전 세계로 가치를 전송하는 데 이를 사용할 수 있습니다.
이러한 특성을 유지하기 위해 감수해야만 하는 중대한 사항들이 있습니다. 다수의 노드가 암호화폐 네트워크 운영을 책임지기 때문에, 처리량이 제한적입니다. 결과적으로 블록체인 네트워크가 처리할 수 있는 초당 트랜잭션 수(TPS)는 대중적인 채택을 목표로 하는 기술에 비해 상대적으로 낮습니다.
블록체인 기술의 본질적인 한계를 극복하기 위해 네트워크가 처리할 수 있는 트랜잭션 수를 증가시키는 여러 확장성 솔루션들이 제안되었습니다. 이번 아티클에서는 비트코인 프로토콜을 확장한 것 중 하나인 라이트닝 네트워크에 대해 자세히 살펴볼 것입니다.


라이트닝 네트워크란 무엇인가요?

라이트닝 네트워크는 블록체인상에 존재하는 하나의 네트워크로 신속한 피어-투-피어 트랜잭션을 위한 것입니다. 라이트닝 네트워크는 비트코인에만 국한되지 않으며, 라이트코인과 같은 다른 암호화폐에도 통합되어 있습니다.
여러분은 아마도 “블록체인상에 존재한다”는 것의 의미를 궁금해 하실 수 있습니다. 라이트닝 네트워크는 오프 체인(off-chain) 또는 레이어 투(layer two) 솔루션이라고 불립니다. 이를 통해 각 개인은 블록체인에 모든 트랜잭션을 기록하지 않고 거래할 수 있습니다.
라이트닝 네트워크는 비트코인 네트워크와는 별개의 것이며, 라이트닝 네트워크에는 자체적인 노드와 소프트웨어가 존재합니다. 그러나 이는 메인 체인과 통신합니다. 라이트닝 네트워크에 진입하거나 이를 종료하기 위해서는 블록체인상에 특별한 트랜잭션을 생성해야 합니다.

여러분이 첫 번째 트랜잭션을 통해 실제로 하는 일은 다른 사용자와 함께 일종의 스마트 콘트랙트를 구성하는 것입니다. 이에 대해서는 곧 자세히 살펴볼 것이며, 여기서는 다른 사용자와 함께 비공개 원장을 보유하고 있는 스마트 콘트랙트를 생각하시면 됩니다. 여러분은 다수의 트랜잭션을 해당 원장에 기록할 수 있습니다. 이는 여러분과 거래 상대방에게만 공개되지만, 고유한 설정 기능들로 인해 서로를 속일 수는 없습니다.

이러한 작은 원장을 하나의 채널이라 합니다. 앨리스와 밥이 각 5 BTC를 스마트 콘트랙트에 입금했다고 해보겠습니다. 이들 모두의 잔고에는 5 BTC가 존재합니다. 이후 앨리스가 원장에 밥에게 1 BTC 지불이라고 적을 수 있습니다. 이제 밥은 자신의 잔고에 6 BTC를 갖게 되며, 앨리스는 4를 갖게 됩니다. 그런 다음 밥이 나중에 2 BTC를 앨리스에게 다시 보낼 수 있으며, 앨리스의 잔고는 6 BTC로, 밥의 잔고는 4 BTC로 업데이트될 수 있습니다. 이들은 당분간 이러한 일을 계속할 수 있습니다.

누구나 언제든 현 채널 상태를 블록체인에 공개할 수 있습니다. 해당 시점에 채널 양측의 잔고는 각 온체인 당사자에게 할당됩니다.

이름 그대로 라이트닝 네트워크는 무척 빠릅니다. 블록 컨펌을 기다리지 않아도 되며, 지불은 여러분의 인터넷 접속 속도만큼 빠르게 처리될 수 있습니다.


라이트닝 네트워크가 필요한 이유는 무엇인가요?

현재까지 라이트닝 네트워크(또는 간략히 LN)는 비트코인 블록체인을 확장하는 가장 합리적인 접근 방법으로 보입니다. 방대한 규모의 생태계에서 변화를 조율해내기란 까다로운 일이며, 하드 포크의 위험과 치명적인 버그가 발생할 수도 있습니다. 상당히 많은 자산이 스테이크 되어 있는 경우, 실험은 무척 위험할 것입니다.

여러분이 이러한 실험을 블록체인 밖에서 진행한다면, 더 많은 유연성이 생깁니다. 무언가 잘못되어도, 이는 실제 비트코인 네트워크에 영향을 주지 않습니다. 레이어 2 솔루션은 지난 10년 이상 프로토콜을 보호해 왔던 어떠한 보안 가설들도 위협하지 않습니다.

이를 위해 기존의 방식을 바꿀 필요도 없습니다. 온체인 트랜잭션은 최종 사용자를 대상으로 정상적으로 계속 작동할 것이지만, 이제 이들은 오프체인 거래를 선택할 수도 있습니다.

라이트닝 네트워크를 사용하면 여러 장점이 있습니다. 아래에서 몇 가지 주요 장점들을 살펴보도록 하겠습니다.


확장성

비트코인 블록은 약 10분마다 생성되며, 다수의 트랜잭션을 포함할 수 있습니다. 블록 공간은 한정된 자원이기에 다른 사용자와의 경쟁적인 입찰을 통해 적절한 시기에 여러분의 블록을 포함시켜야 합니다. 마이너들에게는 무엇보다도 수익을 올리는 것이 중요하므로, 이들은 수수료가 더 높은 트랜잭션을 먼저 포함시킬 것입니다.
자금을 동시에 전송하려는 사용자들이 많지 않은 경우, 이것이 실제로 문제가 되지는 않습니다. 여러분은 수수료를 낮게 설정할 수 있으며, 다음 블록에 트랜잭션이 포함될 수 있습니다. 그러나 모두가 동시에 트랜잭션을 전송하려 한다면, 평균 수수료가 급격히 높아지게 됩니다. 어떤 경우에는 5달러를 초과하기도 합니다. 상승장이 한창이던 2017년에는 50달러를 넘기도 했습니다.


비트코인 트랜잭션 수수료 평균(USD)


이는 수천 달러에 해당하는 비트코인을 전송하는 트랜잭션에서는 중요하지 않은 문제처럼 보일 수 있지만, 이보다 작은 규모의 지불에서는 지속 가능한 것이 아닙니다. 커피에 3달러를 지불하며 5달러의 수수료를 내고 싶은 사람이 있을까요?

라이트닝 네트워크를 사용할 때도 채널을 개설하고 종료하는 두 번의 수수료를 내야 합니다. 그러나 채널이 개설된 다음부터는 여러분과 거래 상대방은 수천 번의 트랜잭션을 비용 없이 생성할 수 있습니다. 지불이 최종적으로 완료된 이후, 마지막 상태를 블록체인에 전송하기만 하면 됩니다.

종합적인 관점에서 볼 때, 더 많은 사용자가 라이트닝 네트워크와 같은 오프체인 솔루션을 기반으로 삼을 경우, 블록 공간은 더욱 효과적으로 사용될 것입니다. 결제 채널을 통해 적은 금액을 빈번하게 전송하는 일을 처리할 수 있으며, 블록 공간은 더 큰 트랜잭션을 처리하고 채널을 개설/종료하는 데 사용될 수 있습니다. 이렇게 되면 훨씬 큰 사용자들이 시스템에 접근할 수 있고, 장기적으로 확장되어 갈 수 있습니다.


소액결제

하나의 트랜잭션에서 전송할 수 있는 최소한의 비트코인 수량은 대략 0.00000546 BTC입니다. 이 글을 적는 시점에서 이는 4센트 정도에 해당합니다. 적은 금액이지만 라이트닝 네트워크를 사용하면 현재 사용할 수 있는 가작 작은 단위인 0.00000001 BTC 또는 1 사토시까지 한도를 낮출 수 있습니다.

라이트닝 네트워크는 소액 결제에 훨씬 더 매력적입니다. 일반적인 트랜잭션에 부과되는 수수료 때문에 메인 체인상에서 적은 금액을 전송하는 것은 실용적이지 않습니다. 그러나 채널 내에서는 아주 적은 양의 비트코인이라도 무료로 전송할 수 있습니다.

소액결제는 다양하게 활용될 수 있습니다. 일부는 사용자가 서비스를 사용할 때마다 소정의 금액을 지불하는 구독 중심의 모델의 실현 가능한 대안이 될 수 있다고 추측하기도 합니다.


개인 정보 보호

라이트닝 네트워크가 제공하는 부가적인 장점은 사용자에게 상당한 수준의 기밀성을 제공한다는 것입니다. 당사자는 더 큰 네트워크에 자신들의 채널을 알리지 않아도 됩니다. 여러분은 블록체인을 살펴보고 해당 트랜잭션이 채널을 개설했다고 말할 수 있지만, 내부에서 무엇이 진행되고 있는지를 알 수는 없을 것입니다. 당사자들이 자신의 채널을 비공개로 지정한 경우, 그들만이 어떤 트랜잭션이 발생하고 있는지 알 수 있습니다.

앨리스가 밥과 채널을 갖고 있고, 밥이 캐롤과 채널을 갖고 있다면, 앨리스와 캐롤은 밥을 통해 자금을 주고 받을 수 있습니다. 댄이 캐롤과 접속하게 되면, 앨리스는 댄에게도 자금을 전달할 수 있습니다. 여러분은 상호 연결된 지불 채널 네트워크로 이것이 확장되어 가는 것을 상상해 볼 수 있습니다. 이러한 구조 속에서 채널이 닫히게 되면 앨리스가 누구에게 자금을 전송했는지 여러분은 확신할 수 없을 것입니다.


라이트닝 네트워크는 어떻게 작동하나요?

우리는 라이트닝 네트워크가 노드 간 채널에 기반하는 방식에 대해 개괄적으로 살펴봤습니다. 이제 그 이면을 살펴보도록 하겠습니다.


다중서명 주소

다중서명(multisignature 또는 multisig) 주소에서는 다수의 개인 키를 사용할 수 있습니다. 다중서명 주소를 생성할 때, 여러분은 얼마나 많은 개인 키가 자금을 사용할 수 지와 더불어, 이 중 몇 개의 키가 트랜잭션 서명에 필요한지 지정합니다. 예를 들어, '1-of-5' 방식은 5개의 키가 유효한 서명을 생성할 수 있다는 것이며, 이 중 하나만 있어도 된다는 것입니다. '2-of-3' 방식은 세 개의 키를 사용할 수 있으며, 자금을 사용하기 위해서는 두 개의 키가 필요하다는 걸 의미합니다.
라이트닝 채널을 시작하기 위해 참여자는 '2-of-2' 방식에 자금을 동결시켜야 합니다. 서명을 할 수 있는 개인 키는 두 개뿐이며, 코인을 이동하려면 두 개의 키가 모두 필요합니다. 이쯤에서 우리의 친구 앨리스와 밥을 생각해 봅시다. 이들은 향후 몇 달간 서로에게 많은 지불을 할 것이기에, 라이트닝 네트워크 채널을 개설하기로 결정합니다.

둘 모두가 자금을 입금하면 채널을 개설할 수 있으며, 이들이 공동으로 소유한 다중서명 주소에 각 3 BTC 씩을 입금한다고 해보겠습니다. 앞서 말한 것처럼, 앨리스의 동의 없이는 밥이 주소에서 자금을 이동할 수 없으며, 그 반대의 경우도 마찬가지입니다.

이제 이들은 서로의 잔고를 조정하는 한 장의 종이를 보관할 수 있습니다. 둘의 초기 잔고는 3 BTC입니다. 앨리스가 밥에게 1 BTC를 지불하고자 한다면, 이제 앨리스가 2 BTC를 갖고 있으며 밥은 4 BTC를 갖고 있다고 단순히 적으면 어떨까요? 이들이 자금을 출금하기로 결정하기 전까지는 잔고는 이런 식으로 추적될 수 있습니다.

가능하지만 이게 무슨 재미가 있을까요? 더욱 중요한 것은 이러한 방식은 무척이나 간단하게 누군가를 비협조적으로 만들 수 있지 않을까요? 만약 앨리스는 6 BTC로, 밥의 잔고에 아무 것도 없는 것으로 끝난다면, 밥은 자금 동결 해제를 거부함으로써 아무런 손해를 보지 않을 수 있으니까요(아마도 앨리스와의 우정은 잃게 되겠죠).


해시 타임락 콘트랙트(HTLCs)

위의 시스템은 단조로울뿐더러, 신뢰할 수 있는 다양한 현대적인 설정들을 제공하지 않습니다. 우리가 앨리스와 밥 사이에 “계약”을 강제할 수 있는 메커니즘을 도입하면 이는 더욱 흥미로워집니다. 당사자 중 한 명이 규칙을 따르지 않기로 결정할 경우에도, 다른 이가 채널에서 자신의 자금을 구제할 수 있는 방법이 있습니다.

이러한 메커니즘을 해시 타임락 콘트랙트(HTLC, Hash Timelock Contract)라 합니다. 용어가 어렵게 들릴 수 있지만, 실제로는 무척 쉽게 이해할 수 있는 개념입니다. 이는 지불 채널에서 발생하는 비협조적인 행동을 해결하기 위해 두 개의 다른 기술(해시락타임락)을 결합합니다.
해시락은 비밀을 알고 있음을 증명하여 자금을 사용할 수만 있음을 지시하는 트랜잭션상의 조건입니다. 전송자는 데이터 조각을 해시화하고, 해시를 수신자의 트랜잭션에 포함시킵니다. 수신자가 이를 사용할 수 있는 유일한 방법은 해시와 일치하는 원본 데이터(비밀)를 제공하는 것입니다. 그리고 이들이 이러한 데이터를 제공할 수 있는 유일한 방법은 전송자가 이를 수신자에게 제공할 때입니다.
타임락은 특정 시간 이전에 자금을 사용하지 못하게 하는 것입니다. 이는 실제 시간 또는 특정 블록 높이로 지정됩니다.

해시 타임락 콘트랙트는 해시락과 타임락을 결합해 만든 것입니다. 해시 타임락 콘트랙트는 실제로 수신자가 특정 시간 이전에 비밀을 제공하고, 그렇지 못하면 전송자가 자금을 회수하는 조건부 지불을 생성하는 데 사용할 수 있습니다. 다음 부분에서 이를 예제와 함께 설명하는 것이 좋을 것 같습니다. 앨리스와 밥으로 돌아가 보겠습니다.


채널 열고 닫기

우리는 앨리스와 밥이 공유할 다중서명 주소에 자금을 입금하는 트랜잭션을 생성했다는 예를 들었습니다. 그러나 해당 트랜잭션은 아직 블록체인에 전송되지 않았습니다! 이를 위해서는 먼저 한 가지 일을 더 수행해야 합니다.


밥으로부터 세 개의 코인, 앨리스로부터 세 개의 코인.


코인을 다중서명 주소 밖으로 이동하는 유일한 방법은 앨리스와 밥이 공동으로 트랜잭션에 서명해야 한다는 것임을 잊지마시기 바랍니다. 앨리스가 여섯 개의 코인을 모두 외부 주소로 보내고자 한다면, 밥의 승인이 필요합니다. 앨리스는 먼저 트랜잭션(해당 주소로 여섯 개의 비트코인)을 준비하고 자신의 서명을 추가합니다. 

앨리스는 트랜잭션을 즉시 공개하고자 할 수도 있지만, 밥의 서명이 포함되지 않았기 때문에 이는 유효하지 않습니다. 앨리스는 불완전한 트랜잭션을 먼저 밥에게 전달해야 합니다. 밥이 서명을 추가한 다음부터, 해당 트랜잭션은 유효해집니다.

우리는 아직까지 모든 참여자들이 정직하게 행동할 수 있도록 하는 메커니즘을 마련하지 못했습니다. 앞서 말했듯, 여러분의 거래 상대방이 협력을 거부할 경우, 여러분의 자금은 실질적으로 묶이게 됩니다. 그러나 이에 대한 몇 가지 다른 움직임들이 있으니, 조금만 더 읽어봐주시기 바랍니다.

각 당사자는 하나의 비밀을 준비해야 하며, 이를 As와 Bs라 부르도록 하겠습니다. 앨리스와 밥이 이를 공개한다면 이는 보잘것없는 비밀이 될 것이므로, 지금부터 이들은 비밀을 숨겨둘 것입니다. 해당 쌍은 각각의 비밀인 해시 h(As)와 h(Bs)를 생성합니다. 즉, 밥과 앨리스는 비밀을 공유하는 대신, 해당 해시를 서로에게 공유합니다.


앨리스와 밥이 자신들의 비밀의 해시를 서로에게 공유합니다.


앨리스와 밥은 다중서명 주소에 첫 번째 트랜잭션을 공개하기 일련의 약속 트랜잭션(commitment transactions)을 생성해야 합니다. 이는 상대방이 자금을 무기로 삼으려 할 경우에 대비하는 하나의 해결책이 되어줄 것입니다.

하나의 채널을 우리가 앞서 언급한 작은 원장이라 생각할 수 있다면, 약속 트랜잭션은 해당 원장을 업데이트하는 것이라 할 수 있습니다. 여러분이 새로운 약속 트랜잭션 쌍을 생성할 때마다, 두 당사자 간의 자금이 재조정됩니다.

앨리스의 트랜잭션에는 자신의 주소에 지불하는 값과 새로운 다중서명 주소에 고정되어 있는 값이 포함됩니다. 앨리스는 이에 서명을 하고 밥에게 전달합니다.


두 개의 값이 포함된 앨리스의 트랜잭션으로, 하나는 자신의 주소를 위한 값이며 다른 하나는 새로운 다중서명 주소를 위한 값입니다. 앨리스의 트랜잭션이 유효하려면 여전히 밥의 서명이 필요합니다.


밥도 동일하게 하나는 자신을 위한 값을, 다른 하나는 또 다른 다중서명 주소를 위한 값을 생성합니다. 밥은 이에 서명을 하고 앨리스에게 전달합니다.


무척 유사한 두 개의 불완전한 트랜잭션이 존재하게 됩니다.


일반적으로 앨리스는 밥의 트랜잭션에 서명을 추가해 이를 유효한 것으로 만들 수 있습니다. 그러나 해당 자금은 우리가 아직 자금을 넣지 않은 '2-of-2' 다중서명 주소로부터 사용되고 있다는 것을 알 수 있습니다. 이는 현재 잔고가 없는 계좌에서 수표를 지출하려는 것과 유사한 부분이 있습니다. 따라서 부분적으로 서명된 해당 트랜잭션은 다중서명이 완료되고 실행될 때만 사용할 수 있을 것입니다. 

새로운 다중서명 주소들(3 BTC가 전송되도록 지정된 곳)에는 몇 가지 특별한 속성이 존재합니다. 앨리스가 서명을 하고 밥에게 전달한 불완전한 트랜잭션을 살펴보도록 하겠습니다. 다중서명 결괏값은 다음과 같은 조건 아래에서 사용할 수 있습니다.

  1. 두 당사자는 협조적으로 이에 서명할 수 있다.
  2. 밥은 일정 시간(타임락 때문에) 이후 혼자서 이를 사용할 수 있다.
  3. 앨리스가 밥의 비밀인 Bs를 알 경우 이를 사용할 수 있다.

밥이 앨리스에게 전송한 트랜잭션의 경우는 다음과 같습니다.

  1. 두 당사자는 협조적으로 이에 서명할 수 있다.
  2. 앨리스는 일정 시간(타임락 때문에) 이후 혼자서 이를 사용할 수 있다.
  3. 밥이 앨리스의 비밀인 As를 알 경우 이를 사용할 수 있다.

한 가지 알아둘 것은 어느 쪽도 상대방의 비밀을 알지 못하므로, 3)이 실현될 가능성은 없다는 것입니다. 또 다른 주의 사항은 여러분이 트랜잭션에 서명을 하면, 이들 값에 특정한 조건이 없기 때문에 거래 상대방이 이를 즉시 사용할 수 있다는 것입니다. 여러분은 홀로 자금을 사용하기 위해 타임락이 만료될 때까지 기다리거나, 이를 즉각적으로 사용하기 위해 상대방과 협력할 수 있습니다.

됐습니다! 이제 여러분은 해당 트랜잭션을 기존의 '2-of-2' 다중서명 주소로 전송할 수 있습니다. 여러분의 거래 상대방이 채널을 저버리더라도 자금을 회수할 수 있기 때문에, 이는 마침내 안전해졌습니다.

트랜잭션이 승인되면, 해당 채널이 작동하기 시작합니다. 첫 번째 트랜잭션 쌍은 작은 원장의 현 상태를 우리에게 보여줍니다. 이는 현재 3 BTC를 밥에게, 3 BTC를 앨리스에게 지불할 것입니다.

앨리스가 밥에게 새로운 지불을 하고자 한다면, 해당 쌍은 첫 번째 것들을 대체하기 위한 두 개의 새로운 트랜잭션을 생성합니다. 방식은 동일하며, 이는 절반만 서명된 것입니다. 그러나 앨리스와 밥은 기존의 비밀을 포기하고, 다음 트랜잭션을 위해 새로운 해시들을 교환합니다.


 예를 들어 앨리스가 밥에게 1 BTC를 지불하고자 한다면, 두 개의 새로운 트랜잭션은 2 BTC를 앨리스에게, 4 BTC를 밥에게 지급할 것입니다. 이런식으로 잔고가 업데이트 됩니다.


당사자 중 누구나 가장 최근의 트랜잭션 중 하나에 서명하고 이를 전송하여 이를 블록체인상에서 “정산”할 수 있습니다. 그러나 그렇게 하는 어느 당사자라도 타임락이 만료될 때까지 기다려야 하는 반면, 다른 당사자는 이를 즉시 사용할 수 있습니다. 밥이 앨리스의 트랜잭션에 서명하고 이를 전송할 경우, 앨리스는 조건이 없는 값을 갖게 된다는 것을 잊지 마시기 바랍니다.

두 당사자는 채널을 종료하는 데 동의할 수 있습니다(협동적인 종료). 이는 여러분의 자금을 가장 쉽고 빠르게 체인상에서 되찾는 방법일 것입니다. 그러나 한쪽 당사자가 응답하지 않거나 협조를 거부한다 해도, 다른 당사자는 타임락이 만료될 때까지 기다려 자금을 회수할 수 있습니다.



암호화폐 거래를 생각 중이신가요? 바이낸스에서 비트코인을 구매하세요!



라이트닝 네트워크는 어떻게 부정 행위를 방지하나요?

여러분은 여기서 공격 벡터를 식별하셨을 수도 있습니다. 밥이 현재 1 BTC 잔고를 갖고 있다면, 밥이 그보다 더 많은 잔고를 갖고 있던 이전의 트랜잭션을 전송하지 않게 할 수 있을까요? 밥은 이미 앨리스로부터 절반이 서명된 트랜잭션을 갖고 있으니, 이를 전송하기 위해 자신의 서명만을 추가하면 되지 않을까요?
밥이 자신의 모든 잔고를 잃게 될 수 있다는 사실 말고는 아무것도 그를 막을 수 없습니다. 밥이 이를 진행하기로 하고 앨리스에게 하나의 코인을, 우리가 앞서 언급한 다중서명 주소에 다섯 개를 지불하는 이전의 트랜잭션을 전송하기로 했다고 해보겠습니다.

앨리스는 즉시 자신의 코인을 받게 됩니다. 반면, 밥은 다중서명 주소에서 이를 사용하기 위해 타임락이 만료되기를 기다려야 합니다. 앨리스가 해당 자금들을 즉시 사용할 수 있는, 앞서 언급한 조건들을 기억하고 계신가요? 앨리스에게는 자신이 갖고 있지 않던 비밀이 필요합니다. 이제 앨리스는 이러한 비밀을 알게 되는데, 트랜잭션의 두 번째 라운드가 생성되자마자 밥이 해당 비밀을 전달하기 때문입니다.

밥은 타임락이 만료될 때까지 기다려야 무언가를 할 수 있는 반면, 앨리스는 해당 자금들을 이동시킬 수 있습니다. 이러한 처벌에 기반한 메커니즘은 참여자들이 부정 행위를 시도조차 하지 못하게 하는데, 상대방이 자신의 코인에 접근할 수 있게 되기 때문입니다.


라우팅 지불

우리는 앞서 채널이 연결될 수 있다는 것을 언급했습니다. 그렇지 않다면, 라이트닝 네트워크가 지불에 유용하지 않을 것입니다. 하루 한 잔의 커피를 마시기 위해 500달러를 카페의 채널에 몇 달간 정말로 동결해 두실 것인가요?

그렇게 하지 않아도 됩니다. 앨리스가 밥과 채널을 개설하고, 밥이 캐롤과 채널을 갖고 있다면 밥은 앨리스와 캐롤 사이의 지불을 라우팅할 수 있습니다. 이는 다수의 “홉(hops)”에 걸쳐 작동할 수 있으며, 앨리스는 경로상의 누구에게나 효과적으로 자금을 지불할 수 있다는 것입니다.


이 시나리오에서 앨리스는 여러 경로를 거쳐 프랭크에게 도달할 수 있습니다. 실제 상황에서 앨리스는 가장 간단한 것을 택할 것입니다.


이들은 라우팅의 중개자 역할에 대한 약간의 수수료를 취할 수도 있습니다(그러나 반드시 그래야하는 것은 아닙니다). 라이트닝 네트워크는 여전히 무척 새로운 것이며, 수수료 시장은 아직 구체화되지 않았습니다. 많은 이들이 기대하는 것은 유동성 제공에 기반한 수수료입니다.

기반이 되는 체인상에서 여러분의 수수료는 한 블록 내에서 여러분의 트랜잭션이 차지하는 공간만을 고려합니다. 전송되는 금액이 1달러이건 10,000,000달러이건 지불 비용은 동일합니다. 반면, 라이트닝 네트워크에서는 블록 공간과 같은 것이 존재하지 않습니다.

그 대신 근거리 및 원거리 잔고(local and remote balances)라는 개념이 있습니다. 근거리 잔고는 여러분이 채널 말단으로 “전송할 수” 있는 금액인 반면, 원거리 잔고는 거래 상대방이 여러분에게 전송할 수 있는 잔고입니다.
예시를 살펴볼 때인 거 같군요. 위의  앨리스 <> 캐롤 <> 프랭크 경로를 자세히 살펴보도록 하겠습니다.


앨리스로부터 프랭크에게 0.3 BTC가 전달되기 전과 후의 사용자들의 잔고.


앨리스 <> 캐롤캐롤 <> 앨리스의 전체 한도는 각 1 BTC입니다. 앨리스의 근거리 잔고는 0.7 BTC입니다. 만약, 이들이 블록체인상에서 지금 정산을 하게 될 경우, 앨리스는 0.7 BTC를 회수하며, 캐롤은 원거리 잔고를 받게 됩니다(예를 들면, 0.3 BTC).

앨리스가 프랭크에게 0.3 BTC를 보내고 싶다면, 0.3 BTC를 캐롤의 채널 쪽으로 전송합니다. 이후 캐롤은 채널 내 근거리 잔고에서 0.3 BTC를 프랭크에게 전송합니다. 캐롤은 앨리스로부터 0.3 BTC를 받고 프랭크에게 0.3 BTC를 전송하는데, 그렇게 상쇄된 결과 캐롤의 잔고는 동일하게 유지됩니다.

캐롤은 프랭크와의 연결고리 역할을 하면서 자금의 손해를 보지 않지만, 스스로의 유연성을 떨어뜨리게 됩니다. 캐롤은 자신의 채널에서 앨리스에게 0.6 BTC를 전송할 수 있지만, 프랭크와의 채널에서는 0.1 BTC만을 보낼 수 있습니다.

여러분은 앨리스가 캐롤하고만 연결되어 있는 반면, 프랭크는 훨씬 더 큰 네트워크와 연결되어 있는 상황을 상상해볼 수 있습니다. 캐롤은 이전에 프랭크를 통해 다른 사람에게 0.4 BTC를 보낼 수 있었지만, 이제는 자신의 한쪽에 있는 전부인 0.1 BTC 만을 채널 끝으로 전송할 수 있습니다.

해당 시나리오에서 앨리스는 사실상 캐롤의 유동성을 떨어뜨리고 있습니다. 어떠한 인센티브도 존재하지 않는다면, 캐롤은 자신의 기반이 악화되는 것을 원치 않을 수 있습니다. 그래서 캐롤은 0.01 BTC마다 10 사토시의 수수료로 라우팅 할 것이라 말할 수 있습니다. 이런 식으로 캐롤의 근거리 잔고가 보다 “규모가 큰” 과정에 지불될 경우, 캐롤은 더 많은 수익을 올리게 될 것입니다.

앞서 언급한 것처럼 사실상 수수료를 부과할 필요는 없습니다. 누군가는 유동성 감소를 걱정하지 않을 수도 있습니다. 다른 이들은 수신자와 직접 채널을 개설하기만을 원할 수도 있습니다.


라이트닝 네트워크의 한계

라이트닝 네트워크가 비트코인의 모든 확장성 문제의 해결책으로 입증된다면 정말 좋을 것입니다. 안타깝게도 라이트닝 네트워크 사용에는 단점들이 존재합니다.


사용성

비트코인은 초보자를 위한 가장 직관적인 시스템은 아닙니다. 주소, 수수료 등에 익숙해지기까지는 혼란스러울 수 있습니다. 그러나 지갑은 복잡한 사항들을 제거하여 현존하는 지불 시스템과 약간이나마 유사한 기능을 사용자에게 제공할 수 있습니다. 여러분은 누군가의 스마트폰에 지갑을 다운로드하게 하고, 코인을 전송할 수 있으며, 이들은 사용이 편리합니다.

현재까지 라이트닝 네트워크에서는 그런 것들이 불가능합니다. 스마트폰의 앱의 경우 선택지는 제한적인데, 일반적으로 라이트닝 노드를 완전히 사용하려면 비트코인 노드에 접근해야 합니다.

클라이언트가 세팅을 마친 후, 사용자 또한 지불을 진행하기 전 채널을 개설해야 합니다. 이는 시간이 많이 걸리는 과정일 수 있으며, 신규 사용자에게 인바운드/아웃바운드 용량과 같은 개념을 소개하는 것은 벅찬 것일 수 있습니다.

그렇긴 하지만, 진입 장벽을 줄이고 보다 간결한 사용자 경험을 제공하기 위해 지속적인 개선이 진행되고 있습니다.


유동성

라이트닝 네트워크에 대한 가장 큰 비판 중 하나는 트랜잭션 능력이 제한적이라는 것입니다. 여러분은 채널에 동결된 것 이상을 사용할 수 없습니다. 여러분이 자금을 모두 사용하여, 채널의 모든 잔고가 원거리 잔고가 된다면 채널을 닫아야만 합니다. 또는 누군가 이를 여러분에게 지불할 때까지 기다릴 수는 있지만, 이상적이지는 않습니다.

경로는 채널의 총 한도를 따라 제한될 수도 있습니다. 이전 예시 앨리스 <> 캐롤 <> 프랭크를 살펴보도록 하겠습니다. 앨리스와 캐롤이 자신들의 채널에 5 BTC의 한도를 갖고 있지만, 캐롤이 프랭크와 1 BTC 한도 밖에 갖고 있지 않다면, 앨리스는 1 BTC 이상을 절대 전송할 수 없습니다. 또한 캐롤 <> 프랭크 채널이 작동하기 위해서는 캐롤 측에 모든 잔고가 있어야 할 것입니다. 이는 라이트닝 네트워크 채널을 통해 전달할 수 있는 자금의 양을 심각하게 제한할 수 있으며, 사용성에도 여파가 미치게 됩니다.


중앙화된 허브

앞서 언급했던 문제 때문에 네트워크가 대규모 “허브”를 생성하게끔 할 것이다라는 우려가 존재합니다. 이는 상당히 많은 유동성과 더불어 규모가 큰 무척이나 긴밀하게 접속되어 있는 주체들입니다. 모든 중요한 지불은 해당 주체들의 일부를 거쳐 라우팅되어야 할 것입니다.

이는 분명 좋은 상황은 아닐 것입니다. 해당 주체들이 오프라인 상태가 되면 피어들 간의 관계에 큰 차질이 생기기 때문에, 이는 시스템을 약화시킬 것입니다. 또한 트랜잭션이 흘러갈 수 있는 지점이 몇 되지 않기 때문에 검열의 위험성도 증가합니다.


라이트닝 네트워크의 현 주소

2020년 현재 라이트닝 네트워크는 건강해 보입니다. 이는 12,000개 이상의 온라인 노드, 30,000개 이상의 활성 채널, 920 BTC 이상의 한도를 자랑하고 있습니다.


전 세계 라이트닝 네트워크 분포도. 출처: explorer.acinq.co


블록스트림의 c-라이트닝(c-lightning), 라이트닝 랩스의 라이트닝 네트워크 데몬(Lightning Network Daemon), ACINQ의 에클레어(Eclair)는 또 다른 노드를 구현한 것들 중 가장 잘 알려진 것들입니다. 이들과 함께 장치의 전원을 켜기만 하면, 라이트닝 네트워크를 시작할 수 있습니다.


마치며

2018년 메인넷이 출시된 이후 라이트닝 네트워크는 인상깊은 성장세를 보여왔습니다. 사람들이 여전히 라이트닝 네트워크를 베타 버전이라 생각했음에도 불구하고 말입니다.

현재 라이트닝 네트워크를 이용하려면 어느 정도 숙련된 기술이 필요하기에 사용성 문제는 여전히 극복해야 할 사항입니다. 그러나 개발이 진행됨에 따라 시간이 지나며 진입 장벽이 낮아지는 것을 보게 될 수 있습니다.

그러한 문제들이 해결될 수 있다면, 라이트닝 네트워크는 비트코인 생태계의 필수적인 일부가 될 것이며, 확장성과 트랜잭션 속도를 크게 증가시킬 것입니다.