목차
들어가며
라이트닝 네트워크란 무엇인가요?
여러분이 첫 번째 트랜잭션을 통해 실제로 하는 일은 다른 사용자와 함께 일종의 스마트 콘트랙트를 구성하는 것입니다. 이에 대해서는 곧 자세히 살펴볼 것이며, 여기서는 다른 사용자와 함께 비공개 원장을 보유하고 있는 스마트 콘트랙트를 생각하시면 됩니다. 여러분은 다수의 트랜잭션을 해당 원장에 기록할 수 있습니다. 이는 여러분과 거래 상대방에게만 공개되지만, 고유한 설정 기능들로 인해 서로를 속일 수는 없습니다.
누구나 언제든 현 채널 상태를 블록체인에 공개할 수 있습니다. 해당 시점에 채널 양측의 잔고는 각 온체인 당사자에게 할당됩니다.
라이트닝 네트워크가 필요한 이유는 무엇인가요?
여러분이 이러한 실험을 블록체인 밖에서 진행한다면, 더 많은 유연성이 생깁니다. 무언가 잘못되어도, 이는 실제 비트코인 네트워크에 영향을 주지 않습니다. 레이어 2 솔루션은 지난 10년 이상 프로토콜을 보호해 왔던 어떠한 보안 가설들도 위협하지 않습니다.
이를 위해 기존의 방식을 바꿀 필요도 없습니다. 온체인 트랜잭션은 최종 사용자를 대상으로 정상적으로 계속 작동할 것이지만, 이제 이들은 오프체인 거래를 선택할 수도 있습니다.
라이트닝 네트워크를 사용하면 여러 장점이 있습니다. 아래에서 몇 가지 주요 장점들을 살펴보도록 하겠습니다.
확장성
비트코인 트랜잭션 수수료 평균(USD)
이는 수천 달러에 해당하는 비트코인을 전송하는 트랜잭션에서는 중요하지 않은 문제처럼 보일 수 있지만, 이보다 작은 규모의 지불에서는 지속 가능한 것이 아닙니다. 커피에 3달러를 지불하며 5달러의 수수료를 내고 싶은 사람이 있을까요?
라이트닝 네트워크를 사용할 때도 채널을 개설하고 종료하는 두 번의 수수료를 내야 합니다. 그러나 채널이 개설된 다음부터는 여러분과 거래 상대방은 수천 번의 트랜잭션을 비용 없이 생성할 수 있습니다. 지불이 최종적으로 완료된 이후, 마지막 상태를 블록체인에 전송하기만 하면 됩니다.
종합적인 관점에서 볼 때, 더 많은 사용자가 라이트닝 네트워크와 같은 오프체인 솔루션을 기반으로 삼을 경우, 블록 공간은 더욱 효과적으로 사용될 것입니다. 결제 채널을 통해 적은 금액을 빈번하게 전송하는 일을 처리할 수 있으며, 블록 공간은 더 큰 트랜잭션을 처리하고 채널을 개설/종료하는 데 사용될 수 있습니다. 이렇게 되면 훨씬 큰 사용자들이 시스템에 접근할 수 있고, 장기적으로 확장되어 갈 수 있습니다.
소액결제
라이트닝 네트워크는 소액 결제에 훨씬 더 매력적입니다. 일반적인 트랜잭션에 부과되는 수수료 때문에 메인 체인상에서 적은 금액을 전송하는 것은 실용적이지 않습니다. 그러나 채널 내에서는 아주 적은 양의 비트코인이라도 무료로 전송할 수 있습니다.
소액결제는 다양하게 활용될 수 있습니다. 일부는 사용자가 서비스를 사용할 때마다 소정의 금액을 지불하는 구독 중심의 모델의 실현 가능한 대안이 될 수 있다고 추측하기도 합니다.
개인 정보 보호
앨리스가 밥과 채널을 갖고 있고, 밥이 캐롤과 채널을 갖고 있다면, 앨리스와 캐롤은 밥을 통해 자금을 주고 받을 수 있습니다. 댄이 캐롤과 접속하게 되면, 앨리스는 댄에게도 자금을 전달할 수 있습니다. 여러분은 상호 연결된 지불 채널 네트워크로 이것이 확장되어 가는 것을 상상해 볼 수 있습니다. 이러한 구조 속에서 채널이 닫히게 되면 앨리스가 누구에게 자금을 전송했는지 여러분은 확신할 수 없을 것입니다.
라이트닝 네트워크는 어떻게 작동하나요?
우리는 라이트닝 네트워크가 노드 간 채널에 기반하는 방식에 대해 개괄적으로 살펴봤습니다. 이제 그 이면을 살펴보도록 하겠습니다.
다중서명 주소
둘 모두가 자금을 입금하면 채널을 개설할 수 있으며, 이들이 공동으로 소유한 다중서명 주소에 각 3 BTC 씩을 입금한다고 해보겠습니다. 앞서 말한 것처럼, 앨리스의 동의 없이는 밥이 주소에서 자금을 이동할 수 없으며, 그 반대의 경우도 마찬가지입니다.
이제 이들은 서로의 잔고를 조정하는 한 장의 종이를 보관할 수 있습니다. 둘의 초기 잔고는 3 BTC입니다. 앨리스가 밥에게 1 BTC를 지불하고자 한다면, 이제 앨리스가 2 BTC를 갖고 있으며 밥은 4 BTC를 갖고 있다고 단순히 적으면 어떨까요? 이들이 자금을 출금하기로 결정하기 전까지는 잔고는 이런 식으로 추적될 수 있습니다.
가능하지만 이게 무슨 재미가 있을까요? 더욱 중요한 것은 이러한 방식은 무척이나 간단하게 누군가를 비협조적으로 만들 수 있지 않을까요? 만약 앨리스는 6 BTC로, 밥의 잔고에 아무 것도 없는 것으로 끝난다면, 밥은 자금 동결 해제를 거부함으로써 아무런 손해를 보지 않을 수 있으니까요(아마도 앨리스와의 우정은 잃게 되겠죠).
해시 타임락 콘트랙트(HTLCs)
위의 시스템은 단조로울뿐더러, 신뢰할 수 있는 다양한 현대적인 설정들을 제공하지 않습니다. 우리가 앨리스와 밥 사이에 “계약”을 강제할 수 있는 메커니즘을 도입하면 이는 더욱 흥미로워집니다. 당사자 중 한 명이 규칙을 따르지 않기로 결정할 경우에도, 다른 이가 채널에서 자신의 자금을 구제할 수 있는 방법이 있습니다.
해시 타임락 콘트랙트는 해시락과 타임락을 결합해 만든 것입니다. 해시 타임락 콘트랙트는 실제로 수신자가 특정 시간 이전에 비밀을 제공하고, 그렇지 못하면 전송자가 자금을 회수하는 조건부 지불을 생성하는 데 사용할 수 있습니다. 다음 부분에서 이를 예제와 함께 설명하는 것이 좋을 것 같습니다. 앨리스와 밥으로 돌아가 보겠습니다.
채널 열고 닫기
우리는 앨리스와 밥이 공유할 다중서명 주소에 자금을 입금하는 트랜잭션을 생성했다는 예를 들었습니다. 그러나 해당 트랜잭션은 아직 블록체인에 전송되지 않았습니다! 이를 위해서는 먼저 한 가지 일을 더 수행해야 합니다.
밥으로부터 세 개의 코인, 앨리스로부터 세 개의 코인.
앨리스는 트랜잭션을 즉시 공개하고자 할 수도 있지만, 밥의 서명이 포함되지 않았기 때문에 이는 유효하지 않습니다. 앨리스는 불완전한 트랜잭션을 먼저 밥에게 전달해야 합니다. 밥이 서명을 추가한 다음부터, 해당 트랜잭션은 유효해집니다.
우리는 아직까지 모든 참여자들이 정직하게 행동할 수 있도록 하는 메커니즘을 마련하지 못했습니다. 앞서 말했듯, 여러분의 거래 상대방이 협력을 거부할 경우, 여러분의 자금은 실질적으로 묶이게 됩니다. 그러나 이에 대한 몇 가지 다른 움직임들이 있으니, 조금만 더 읽어봐주시기 바랍니다.
각 당사자는 하나의 비밀을 준비해야 하며, 이를 As와 Bs라 부르도록 하겠습니다. 앨리스와 밥이 이를 공개한다면 이는 보잘것없는 비밀이 될 것이므로, 지금부터 이들은 비밀을 숨겨둘 것입니다. 해당 쌍은 각각의 비밀인 해시 h(As)와 h(Bs)를 생성합니다. 즉, 밥과 앨리스는 비밀을 공유하는 대신, 해당 해시를 서로에게 공유합니다.
앨리스와 밥이 자신들의 비밀의 해시를 서로에게 공유합니다.
하나의 채널을 우리가 앞서 언급한 작은 원장이라 생각할 수 있다면, 약속 트랜잭션은 해당 원장을 업데이트하는 것이라 할 수 있습니다. 여러분이 새로운 약속 트랜잭션 쌍을 생성할 때마다, 두 당사자 간의 자금이 재조정됩니다.
두 개의 값이 포함된 앨리스의 트랜잭션으로, 하나는 자신의 주소를 위한 값이며 다른 하나는 새로운 다중서명 주소를 위한 값입니다. 앨리스의 트랜잭션이 유효하려면 여전히 밥의 서명이 필요합니다.
밥도 동일하게 하나는 자신을 위한 값을, 다른 하나는 또 다른 다중서명 주소를 위한 값을 생성합니다. 밥은 이에 서명을 하고 앨리스에게 전달합니다.
무척 유사한 두 개의 불완전한 트랜잭션이 존재하게 됩니다.
새로운 다중서명 주소들(3 BTC가 전송되도록 지정된 곳)에는 몇 가지 특별한 속성이 존재합니다. 앨리스가 서명을 하고 밥에게 전달한 불완전한 트랜잭션을 살펴보도록 하겠습니다. 다중서명 결괏값은 다음과 같은 조건 아래에서 사용할 수 있습니다.
- 두 당사자는 협조적으로 이에 서명할 수 있다.
- 밥은 일정 시간(타임락 때문에) 이후 혼자서 이를 사용할 수 있다.
- 앨리스가 밥의 비밀인 Bs를 알 경우 이를 사용할 수 있다.
밥이 앨리스에게 전송한 트랜잭션의 경우는 다음과 같습니다.
- 두 당사자는 협조적으로 이에 서명할 수 있다.
- 앨리스는 일정 시간(타임락 때문에) 이후 혼자서 이를 사용할 수 있다.
- 밥이 앨리스의 비밀인 As를 알 경우 이를 사용할 수 있다.
한 가지 알아둘 것은 어느 쪽도 상대방의 비밀을 알지 못하므로, 3)이 실현될 가능성은 없다는 것입니다. 또 다른 주의 사항은 여러분이 트랜잭션에 서명을 하면, 이들 값에 특정한 조건이 없기 때문에 거래 상대방이 이를 즉시 사용할 수 있다는 것입니다. 여러분은 홀로 자금을 사용하기 위해 타임락이 만료될 때까지 기다리거나, 이를 즉각적으로 사용하기 위해 상대방과 협력할 수 있습니다.
됐습니다! 이제 여러분은 해당 트랜잭션을 기존의 '2-of-2' 다중서명 주소로 전송할 수 있습니다. 여러분의 거래 상대방이 채널을 저버리더라도 자금을 회수할 수 있기 때문에, 이는 마침내 안전해졌습니다.
트랜잭션이 승인되면, 해당 채널이 작동하기 시작합니다. 첫 번째 트랜잭션 쌍은 작은 원장의 현 상태를 우리에게 보여줍니다. 이는 현재 3 BTC를 밥에게, 3 BTC를 앨리스에게 지불할 것입니다.
앨리스가 밥에게 새로운 지불을 하고자 한다면, 해당 쌍은 첫 번째 것들을 대체하기 위한 두 개의 새로운 트랜잭션을 생성합니다. 방식은 동일하며, 이는 절반만 서명된 것입니다. 그러나 앨리스와 밥은 기존의 비밀을 포기하고, 다음 트랜잭션을 위해 새로운 해시들을 교환합니다.
예를 들어 앨리스가 밥에게 1 BTC를 지불하고자 한다면, 두 개의 새로운 트랜잭션은 2 BTC를 앨리스에게, 4 BTC를 밥에게 지급할 것입니다. 이런식으로 잔고가 업데이트 됩니다.
당사자 중 누구나 가장 최근의 트랜잭션 중 하나에 서명하고 이를 전송하여 이를 블록체인상에서 “정산”할 수 있습니다. 그러나 그렇게 하는 어느 당사자라도 타임락이 만료될 때까지 기다려야 하는 반면, 다른 당사자는 이를 즉시 사용할 수 있습니다. 밥이 앨리스의 트랜잭션에 서명하고 이를 전송할 경우, 앨리스는 조건이 없는 값을 갖게 된다는 것을 잊지 마시기 바랍니다.
암호화폐 거래를 생각 중이신가요? 바이낸스에서 비트코인을 구매하세요!
라이트닝 네트워크는 어떻게 부정 행위를 방지하나요?
앨리스는 즉시 자신의 코인을 받게 됩니다. 반면, 밥은 다중서명 주소에서 이를 사용하기 위해 타임락이 만료되기를 기다려야 합니다. 앨리스가 해당 자금들을 즉시 사용할 수 있는, 앞서 언급한 조건들을 기억하고 계신가요? 앨리스에게는 자신이 갖고 있지 않던 비밀이 필요합니다. 이제 앨리스는 이러한 비밀을 알게 되는데, 트랜잭션의 두 번째 라운드가 생성되자마자 밥이 해당 비밀을 전달하기 때문입니다.
밥은 타임락이 만료될 때까지 기다려야 무언가를 할 수 있는 반면, 앨리스는 해당 자금들을 이동시킬 수 있습니다. 이러한 처벌에 기반한 메커니즘은 참여자들이 부정 행위를 시도조차 하지 못하게 하는데, 상대방이 자신의 코인에 접근할 수 있게 되기 때문입니다.
라우팅 지불
우리는 앞서 채널이 연결될 수 있다는 것을 언급했습니다. 그렇지 않다면, 라이트닝 네트워크가 지불에 유용하지 않을 것입니다. 하루 한 잔의 커피를 마시기 위해 500달러를 카페의 채널에 몇 달간 정말로 동결해 두실 것인가요?
그렇게 하지 않아도 됩니다. 앨리스가 밥과 채널을 개설하고, 밥이 캐롤과 채널을 갖고 있다면 밥은 앨리스와 캐롤 사이의 지불을 라우팅할 수 있습니다. 이는 다수의 “홉(hops)”에 걸쳐 작동할 수 있으며, 앨리스는 경로상의 누구에게나 효과적으로 자금을 지불할 수 있다는 것입니다.
이 시나리오에서 앨리스는 여러 경로를 거쳐 프랭크에게 도달할 수 있습니다. 실제 상황에서 앨리스는 가장 간단한 것을 택할 것입니다.
이들은 라우팅의 중개자 역할에 대한 약간의 수수료를 취할 수도 있습니다(그러나 반드시 그래야하는 것은 아닙니다). 라이트닝 네트워크는 여전히 무척 새로운 것이며, 수수료 시장은 아직 구체화되지 않았습니다. 많은 이들이 기대하는 것은 유동성 제공에 기반한 수수료입니다.
기반이 되는 체인상에서 여러분의 수수료는 한 블록 내에서 여러분의 트랜잭션이 차지하는 공간만을 고려합니다. 전송되는 금액이 1달러이건 10,000,000달러이건 지불 비용은 동일합니다. 반면, 라이트닝 네트워크에서는 블록 공간과 같은 것이 존재하지 않습니다.
앨리스로부터 프랭크에게 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 만을 채널 끝으로 전송할 수 있습니다.
앞서 언급한 것처럼 사실상 수수료를 부과할 필요는 없습니다. 누군가는 유동성 감소를 걱정하지 않을 수도 있습니다. 다른 이들은 수신자와 직접 채널을 개설하기만을 원할 수도 있습니다.
라이트닝 네트워크의 한계
라이트닝 네트워크가 비트코인의 모든 확장성 문제의 해결책으로 입증된다면 정말 좋을 것입니다. 안타깝게도 라이트닝 네트워크 사용에는 단점들이 존재합니다.
사용성
현재까지 라이트닝 네트워크에서는 그런 것들이 불가능합니다. 스마트폰의 앱의 경우 선택지는 제한적인데, 일반적으로 라이트닝 노드를 완전히 사용하려면 비트코인 노드에 접근해야 합니다.
클라이언트가 세팅을 마친 후, 사용자 또한 지불을 진행하기 전 채널을 개설해야 합니다. 이는 시간이 많이 걸리는 과정일 수 있으며, 신규 사용자에게 인바운드/아웃바운드 용량과 같은 개념을 소개하는 것은 벅찬 것일 수 있습니다.
그렇긴 하지만, 진입 장벽을 줄이고 보다 간결한 사용자 경험을 제공하기 위해 지속적인 개선이 진행되고 있습니다.
유동성
라이트닝 네트워크에 대한 가장 큰 비판 중 하나는 트랜잭션 능력이 제한적이라는 것입니다. 여러분은 채널에 동결된 것 이상을 사용할 수 없습니다. 여러분이 자금을 모두 사용하여, 채널의 모든 잔고가 원거리 잔고가 된다면 채널을 닫아야만 합니다. 또는 누군가 이를 여러분에게 지불할 때까지 기다릴 수는 있지만, 이상적이지는 않습니다.
중앙화된 허브
앞서 언급했던 문제 때문에 네트워크가 대규모 “허브”를 생성하게끔 할 것이다라는 우려가 존재합니다. 이는 상당히 많은 유동성과 더불어 규모가 큰 무척이나 긴밀하게 접속되어 있는 주체들입니다. 모든 중요한 지불은 해당 주체들의 일부를 거쳐 라우팅되어야 할 것입니다.
이는 분명 좋은 상황은 아닐 것입니다. 해당 주체들이 오프라인 상태가 되면 피어들 간의 관계에 큰 차질이 생기기 때문에, 이는 시스템을 약화시킬 것입니다. 또한 트랜잭션이 흘러갈 수 있는 지점이 몇 되지 않기 때문에 검열의 위험성도 증가합니다.
라이트닝 네트워크의 현 주소
2020년 현재 라이트닝 네트워크는 건강해 보입니다. 이는 12,000개 이상의 온라인 노드, 30,000개 이상의 활성 채널, 920 BTC 이상의 한도를 자랑하고 있습니다.
전 세계 라이트닝 네트워크 분포도. 출처: explorer.acinq.co
마치며
현재 라이트닝 네트워크를 이용하려면 어느 정도 숙련된 기술이 필요하기에 사용성 문제는 여전히 극복해야 할 사항입니다. 그러나 개발이 진행됨에 따라 시간이 지나며 진입 장벽이 낮아지는 것을 보게 될 수 있습니다.
그러한 문제들이 해결될 수 있다면, 라이트닝 네트워크는 비트코인 생태계의 필수적인 일부가 될 것이며, 확장성과 트랜잭션 속도를 크게 증가시킬 것입니다.