brunch

11. 라이트닝 네트워크 이해하기

기록하지 않는 신뢰, 비트코인의 오프체인 진화

시리즈 1편부터 정주행 하기 -> [쉽게 배우는 비트코인 작동원리]




블록체인에 모든 걸 기록할 필요가 있을까?


비트코인은 탈중앙성을 극대화하기 위해 트랜잭션 처리량과 속도를 의도적으로 희생한 구조를 가지고 있다.


처리량과 속도를 증가시키기 위해 블록의 사이즈를 늘리면 장부를 검증하는 풀 노드들이 높아진 컴퓨팅 사양에 무리를 느껴 이탈할 수 있으며, 이렇게 검증 주체가 줄어들수록 네트워크의 탈중앙성을 해치기 때문이다.


그 결과, 네트워크가 붐빌 때면 블록 안에 들어가기 위한 경쟁이 치열해지고, 그에 따라 타 블록체인들에 비해 수수료가 크게 상승하는 편이다.

image source: wexopay

물론 거래는 일단 전송되며, 소액의 경우 상대방이 굳이 컨펌(컨펌 개념은 8-2 참고)을 기다리지 않고 신뢰에 기반해 물건을 내주는 일도 비일비재하다. 소액 결제 이중 지불을 위해 51% 공격을 실시하는 것은 매우 비경제적인 행동이기 때문이다.


그러나 이것은 어디까지나 ‘관행’ 일뿐, 구조적으로 빠르다고는 할 수 없다. 결국 누적된 문제는 하나로 귀결된다.

블록체인에 모든 걸 기록할 필요가 있을까?





라이트닝 네트워크는 어떻게 작동하는가



소액결제의 불편함


비트코인 네트워크에서 거래는 다음과 같은 과정을 거친다.


1. 유효한 거래를 만들어 전파한다.

2. 누군가 이 거래를 포함한 블록을 생성한다.

3. 이 블록이 다른 노드들로부터도 승인받는다.


즉, 어떤 비트코인 트랜잭션이 최종 확정되기 위해서는 전 세계 수천 개의 노드가 확인하고 동의하는 과정이 필요하다.


안정성과 무결성은 이로 인해 보장되지만, 일상적인 상거래의 관점에서 보면, 이런 방식은 지나치게 무겁다.


커피를 한 잔 샀을 뿐인데 커피에 대한 소유권 이전을 증명하기 위해 등기를 뗀다고 생각해 보자. 너무 비효율적이지 않은가?




온체인 vs 오프체인


여기서 한 가지 아이디어가 등장한다.


모든 거래를 블록체인에 올리지 않고, 참여자들끼리 서명을 주고받으며 채권관계를 정산한다면 어떨까?

image source: Theblock101

필요한 경우에만, 또는 분쟁이 생겼을 때만 비트코인에 기록해서 공증하는 편리함이 생길 것이다.


이것이 라이트닝 네트워크의 핵심 아이디어다.

라이트닝은 오프체인(Off-chain) 시스템으로, 트랜잭션을 블록체인 바깥에서 처리하고, 정산이 끝났을 때만 그 결과를 블록체인 내부인 온체인(On-chain)에 반영한다.


이 기술을 이용한다면, 거래 컨펌이 10분 정도 걸리는 비트코인과 달리 매우 적은 수수료로도 1000분의 1초 ~ 1초 이내로 거래를 완결시킬 수 있다.



지불 채널의 구조


라이트닝 네트워크는 결제 채널(Payment Channel)이라는 구조를 기반으로 한다.


A와 B가 라이트닝 네트워크를 이용하는 예시를 가정해 보자.

1. A와 B는 각자 1 BTC를 예치하여 공동 자금을 묶어두는 온체인 트랜젝션을 일으킨다. (결제 채널 생성)

2. 이후 A와 B는 별도의 수수료 없이 서로 비트코인을 오프체인에서 주고받는다.

3. 여러 번 소액결제를 하다 보니 A의 잔액은 0.5 BTC, B의 잔액은 1.5 BTC가 되었다.

4. 원하는 결제가 다 끝난 후 최신화된 잔액인 0.5 BTC와 1.5 BTC를 각자 가져가는 온체인 거래를 일으키면 결제 채널은 닫힌다.
image source: master the crypto

라이트닝 네트워크에서의 트랜잭션은 단지 서로 서명된 데이터일 뿐이다.


블록체인은 그저 마지막 공증만을 위한 도장이 된다.



안정성 보장


라이트닝 채널에서 거래가 이루어질 때, A와 B는 매 순간 잔고가 바뀐 영수증, 즉 새로운 거래 서명본을 서로 교환한다.


중요한 건 이 구조 안에 "배신 방지 장치"가 포함돼 있다는 점이다.


만약 예시에서 A가 4번 상황 중 예전 영수증을 꺼내 들면서, "원래 내 잔고가 더 많았지!"라며 과거의 거래 서명을 블록체인에 제출하려 하면, B는 그 서명이 위조라는 것을 증명할 수 있는 비밀 키를 이미 가지고 있다.


이 비밀 키를 제출하는 순간, A의 몫 전체가 B에게 넘어가게 된다.


결국 라이트닝은 신뢰 대신 속이려는 시도 자체를 비용으로 되돌리는 구조를 선택했다.


상대방을 속이면 곧바로 자기 손해가 되는 구조이므로 신뢰가 필요 없어진다.



친구의 친구에게 송금하기


라이트닝 네트워크는 단순히 1:1 거래만을 위한 구조는 아니다. 채널들이 엮여 있다면 중간 경로를 통해 제삼자에게 송금하는 것도 가능하다.


A — B — C라는 연결이 있다고 해보자.

A는 B와 채널이 있고
B는 C와 채널이 있을 때
A는 B를 경유하여 C에게 송금할 수 있다
image source: softblocks | Medium

아래는 A가 C에게 지불하는 상황이다.

1. C는 비밀 키 x를 만들고, 그 해시값 H(x)를 네트워크에 흘린다.

2. A는 이 H(x)를 조건으로 B에게 송금을 제안한다:
→ “B야, H(x)를 풀면 돈 줄게.”

3. B는 같은 방식으로 C에게 전달한다:
→ “C야, H(x)를 풀면 나도 돈 줄게.”

4. 이제 C는 x를 공개하며 돈을 받는다.

5. x가 공개된 순간, B도 A로부터 돈을 받을 수 있는 열쇠를 얻게 된다.
(B가 C에게 대신 지불하고, B는 A로부터 돈을 받는 구조)




라이트닝 네트워크는 비트코인의 강점을 유지하면서도, 결제 처리 속도와 비용 문제를 구조적으로 해결하려는 첫 번째 해법이었다.


모든 거래를 블록에 기록하지 않아도 된다는 발상은 신뢰를 줄이는 것이 아니라, 신뢰를 구조화하는 방식으로 작동한다.


탈중앙성과 신뢰 없는 보장을 지키면서도, 행위는 더 자유로워지고, 결제는 더 가벼워졌다.


라이트닝은 아직 실험 중이다. 하지만 이 실험은 블록체인이 더 이상 블록에만 머무르지 않는다는 사실을 보여준다. 앞으로 그 발전이 매우 기대된다.




keyword
매거진의 이전글10. 세그윗과 탭루트 기술