라이트닝 네트워크의 이해 (하)

지난 글 라이트닝 네트워크의 이해 (상) 에서 기초 지식을 다뤘고 이번엔 본격적으로 라이트닝 네트워크에 대해 이야기해보겠습니다.

monument-valley-1593318_640.jpg

결제 채널(Payment Channel)

채널 열기(Opening Channel)

나와 상대방이 공유하는 멀티시그 주소에 충분한 양의 비트코인을 우선 보내놓는 것이 채널을 오픈하는 것입니다. 수수료가 드는 온체인 트랜잭션이며 그만큼의 비트코인을 준비해놓고 채널을 닫을 때 까지 묶어둬야 한다는 부담이 있습니다.

오프체인 트랜잭션(Off-chain Transactions)

멀티시그 주소에 들어가 있는 코인은 한 사람의 서명만으로는 트랜잭션이 완료되지 않습니다. 이것을 이용해서 블록체인을 거치지 않는 오프체인 트랜잭션을 하는 겁니다.
예를 들어 채널을 열 때 2 BTC 를 멀티시그 주소에 보내놓은 상태에서
내가 0.1 BTC를 상대방에게 보내겠다는 신호를 서명해서 보내면 상대방의 서명이 없기 때문에 그 트랜잭션은 온체인에서 완료되지 않습니다. 그대신 라이트닝 네트워크 프로토콜이 그 신호를 감지해서 트랜잭션이 완료된 것으로 처리해 줍니다. 라이트닝 네트워크 사용자들 끼리는 이것만 가지고 전송이 완료된것으로 간주하자는 약속인 셈입니다.
블록체인에는 각각의 오프체인 트랜잭션이 기록에 남지 않으며 전송수수료는 무료가 되고 컨펌을 기다릴 필요가 없이 즉시 완료됩니다.
이렇게 되면 심지어 1사토시도 부담없이 보내줄 수가 있게 됩니다. 마이크로 트랜잭션이 실질적으로 가능해지는 것이죠.

채널 닫기(Closing Channel)

채널 오픈할 때 멀티시그에 보내둔 비트코인 중에서
그동안 오프체인으로 주고받은거 다 합산한 각자의 잔액을
나와 상대방 둘 다 자기자신의 개인 주소로 전송하면 그것이 채널을 닫는 것이 됩니다.
이때 블록체인에 기록이 되는 온체인 트랜잭션이 발생합니다.
블록체인 기록만 보면 멀티시그에 보낼때의 기록과
그것을 다시 개인주소로 보내는 기록만 남게 됩니다.

확장성

A와 B 사이에 채널이 있고
B와 C 사이에 채널이 있으면
A와 C 사이에도 서로 오프체인 트랜잭션을 주고받을 수 있습니다.
채널을 열고 닫는 것이 부담이라면 이런식으로 라이트닝 네트워크 끼리 확장해서 너무 자주 채널을 열고 닫지 않아도 됩니다.

Trustless

멀티시그에 들어있는 비트코인은 상대방이 먹튀할 수 없습니다. 양쪽이 서명해야 전송이 완료되니까요.
단지, 악의적으로 서명을 해주지 않아서 내가 나의 몫을 가져가는 것을 막을 수 있지 않을까 하는 걱정은 해볼 수 있습니다.
라이트닝 네트워크는 이런 경우에 대비해서 일정 시간이 지나도 상대방의 호응이 없으면 내가 내 몫을 자동으로 되찾아올 수 있는 기능이 기본 탑재 됩니다. (CheckLockTimeVerify)

H2
H3
H4
3 columns
2 columns
1 column
9 Comments