라이트닝 네트워크 이해하기 (2부)

 

두 사람 간의 라이트닝 네트워크

(The Lightning Network (Part 2)를 번역하여 글을 작성했습니다.)

1부3부

*Side note: I wanted to personally thank Jimmy Song for his insight in breaking down this series into three segments.

1부에서, 저희는 멀티시그 주소와 열린 채널 및 닫힌 채널을 통한 지불에 대해서 알아보았습니다. 이들은 라이트닝 네트워크 (LN)의 기본 구성요소이기도 하죠. 이제 두사람 사이에 LN이 어떻게 작용하는지 알아보도록 합시다: 고용주 앨리스와 그래픽 디자이너 캐롤를 통해서 말이죠.

두 사람 간의 라이트닝 네트워크

앨리스가 캐롤를 프로젝트 하나당 0.1 라이트코인을 지불하는 조건으로 고용했다고 합시다. 앨리스는 0.1 라이트코인을 줄 때 마다 전송 수수료를 내는걸 피하고 싶어서 캐롤와 라이트닝 네트워크(LN)을 쓰기로 했습니다. LN을 이용하면 앨리스는 캐롤에게 여러번의 지불을 할 수 있습니다. 이때 수수료는 지불 채널을 열고 닫을 때만 발생하게 됩니다.

LN을 이용하기 위해, 앨리스와 캐롤은 라이트코인을 보내기 위해 2개의 서명을 필요로 하는 멀티시그 주소를 만들어야 합니다 (다시 말해, 지불 채널을 닫기 위해서 말이죠). 이는 2 of 2 멀티시그 주소라고 합니다 : 2명이고, 2개의 서명을 필요로 하니까요.

cd407-1r1y5lkmkhxirmjta3uvjwa.png

앨리스와 캐롤의 라이트코인 주소가 둘다 멀티시그 주소에 연결되어 있습니다.

라이트닝 네트워크를 구성하기 위해, 앨리스는 먼저 멀티시그 주소로 1 라이트코인을 보냅니다. 이후에 앨리스는 이 라이트코인이 30일 후에 자기 자신한테 돌아온다는 것을 명시한 전자 계약서를 작성합니다.

추신: 라이트닝 네트워크 개발자 중 한명이 이 30일짜리 계약서가 더이상 필요 하지 않을 것이라고 연락해왔습니다. 대신에, 상대적인 락 시간 (Relative lock times)을 쓴다고 한다네요. 따라서, 앞으로 지불 채널을 열기 위해 소정의 수수료를 필요로 합니다. 이 수수료는 지불 채널이 닫힐 때 네트워크에 방송하게 됩니다. 지불 채널을 열면 앨리스와 캐롤이 둘 다 지불 채널을 닫는 것을 동의할 때 까지 라이트코인이 잠기게 됩니다. 이 과정에 대한 내용은 수정되어 있는 상태입니다.

e89ea-1hd_wmxwdnvvezhtwtxlqsa.png

복습한번 해볼까요?

  • 앨리스는 라이트닝 네트워크에 지불 채널을 열기 위해 작은 수수료를 냅니다.
  • 멀티시그 주소에 있는 라이트코인은 앨리스와 캐롤이 둘다 승인해야만 보낼 수 있습니다.
  • 지불 채널이 열리게 되면, 동시에 여러 다른 지불 채널을 열어 사용할 수 있습니다.
  • 하나의 지불 채널이 닫히게 되면, 다른 지불 채널도 닫힙니다.
  • 더 이해하기 쉽게 하기 위해, 지불 채널을 연다는 것을 라이트코인 지불에 대한 제안이라고 되겠습니다. 예를 들어, 앨리스가 캐롤에게 얼마 주기로 제안 하면 캐롤은 이에 대한 승인을 보류할 수 있습니다. 대신에, 이 제안을 서명하여 받아들일 수도 있구요.
  • 캐롤이 제안을 수용한다면, 승인과 함께지불 채널과 라이트닝 네트워크가 닫히게 됩니다. 음, 실질적인 예를 들어서 한번 와닿게끔 설명을 해보도록 하죠.

앨리스가 캐롤한테 하나의 프로젝트에 대한 돈을 주다

캐롤은 하나의 프로젝트를 완성하여 앨리스가 캐롤에게 0.1 라이트코인을 주려고 합니다. 앨리스는 멀티시그 주소로 들어가서 0.1 라이트코인에 대한 지불을 캐롤에게 제안합니다. 여기서 0.1 라이트코인은 멀티시그 주소에 잠겨있는 1 라이트코인을 쓰게 되는 것이죠. 앨리스가 지불을 생성하고 이에 대해 서명을 함으로써 모든 과정은 시작됩니다. 캐롤은 멀티시그 주소로부터 0.1 라이트코인이 전송 보류중에 있고 서명을 필요로 한다고 알림을 받게 됩니다. 캐롤이 제안을 받아들이면, 지불에 대한 서명을 하고 지불 채널이 닫히게 됩니다. 결과적으로 0.9 라이트코인이 멀티시그 주소에 남게 되고 0.1 라이트코인이 캐롤의 주소로 보내지게 됩니다. 이 정보는 블록체인에 기록이 되며 전송 수수료가 채굴자에게 가게 됩니다.

2b917-130delggstcqfv13q62dfjw.png

하지만! 캐롤은 이 제안을 일단 놔두기로 합니다. 따라서 0.1 라이트코인은 우선 쓰이지 않은 상태이며 열린 지불 채널은 그대로 열려있게 됩니다. 왜 그냥 놔두냐구요? 아직 9개의 프로젝트를 더 완성해야 하기 때문이죠.

프로젝트를 하나 더 끝내면요?

캐롤이 두번째 프로젝트를 끝내버리고 앨리스는 두 프로젝트에 대한 돈을 지불하기로 합니다. 앨리스는 다시 멀티시그 주소로 들어가서 캐롤에게 지불 제안, 또는 하나의 다른 지불 채널을 엽니다.

캐롤은 2개의 일에 대한 0.2 라이트코인을 새로 제안합니다. 이는 두개의 제안를 합치거나 두개를 따로 승인 할 수 없기 때문입니다. 캐롤이 하나의 지불 채널을 승인하면, 다른 모든 제안이 사라지게 됩니다. 캐롤에게 0.2 라이트코인에 대한 제안과 함께 서명 요청이 들어옵니다. 이제 그녀는 세 가지 선택지가 있습니다:

  1. 0.1 라이트코인만 받을 것인가?
  2. 0.2 라이트코인만 받을 것인가?
  3. 서명을 보류하고 앨리스를 위해 남은 8 개의 프로젝트를 마저할 것인가?

캐롤은 서명을 보류하기로 합니다.

bd83b-1udcgatkpfvtr5ez9ubdwzq.png

상대적인 타임락 (Relative Time Lock)

이제 상대적인 타임락에 대해 이야기할 때가 온 것 같습니다. 상대적 타임락은 가장 최근에 온 제안이 블록체인에 기록되는 것을 도와주는 역할을 합니다. 이게 왜 중요한지를 설명해주는 시나리오를 하나 소개하도록 하겠습니다:

  1. 앨리스가 캐롤에게 1개의 프로젝트에 대한 0.1 라이트코인을 제안합니다. 캐롤은 이 제안을 보류합니다.
  2. 앨리스가 캐롤에게 2개의 프로젝트에 대한 0.2 라이트코인을 제안합니다. 캐롤은 이 또한 보류합니다.
  3. 캐롤이 앨리스의 스테이플러를 부숴버렸기 때문에 0.05 라이트코인을 차감하여 0.15 라이트코인을 제안합니다.
  4. 3개의 제안이 아직 보류중에 있기 때문에 캐롤은 아직 0.2 라이트코인 제안을 승인할 수 있습니다.
  5. 상대적인 타임락은 0.15 라이트코인에 대한 제안이 가장 최근에 생성된 제안으로 인식합니다. 타임락은 나머지 제안이 받아들여질 경우 지갑주인이 설정한 만큼의 어느 시간동안, 블록체인에 방송되는 것을 지연시킵니다. 캐롤이 앨리스를 속이려고 하면, “체벌 계약서(Punishing contract)”를 블록체인에 방송하기 위한 요건이 갖춰집니다.
  6. 이 경우 앨리스가 다시 멀티시그 지갑을 접속하여 “처벌 계약서(Punishing contract)”을 방송하여 캐롤으로부터 라이트코인을 회수 할 수 있습니다.

지불 채널 닫기

캐롤은 아무것도 안하고 앨리스를 위해 계속 일하기로 합니다. 캐롤이 10개의 프로젝트를 모두 완성할 때 까지 이러한 과정은 반복됩니다. 앨리스는 마지막으로 1 라이트코인에 제안을 생성하고 서명을 합니다.

*추신: 지금까지 단 하나의 전송도 라이트코인 블록체인에 기록되지 않았기 때문에 단 하나의 전송 수수료도 내지 않았습니다.이것을 두고 바로 “오프체인 (offchain)” 거래라고 합니다. 하나의 제안도 블록체인에 기록되지 않았으며 채굴자에게 수수료가 지급되지 않았습니다.

캐롤은 1 라이트코인에 대한 앨리스의 제안을 보고 이에 서명을 함으로써 제안을 받아들입니다. 이로써 지불채널은 닫히게 되고 1 라이트코인이 멀티시그 주소로부터 캐롤의 개인 주소로 보내집니다. 마침내 거래내역이 블록체인에 기록이 되며 채널을 열고 닫는 것에 대한 수수료가 채굴자에 가게됩니다.

라이트닝 네트워크를 이용하여, 10개의 지불에 대한 수수료를 고작 한번 냈습니다. 또한, 10개의 지불의 결과를 블록체인에 오로지 1번만 기록이 되었죠. 이는 LN을 이용하여 더 큰 블록 크기에 대한 필요를 획기적으로 줄여주기 때문에 매우 중요하다고 할 수 있습니다.

캐롤도 지불을 제안할 수 있어요

하나 알아두어야 할 것이, 캐롤 또한 멀티시그 주소에 대한 권리가 있기 때문에 지불에 대한 제안을 할 수 있습니다. 하지만 앞선 경우와 똑같이, 지불은 2 개의 서명이 있어야 완료가 됩니다. 따라서 앨리스가 캐롤의 제안을 승인 해야 라이트코인이 전송됩니다.

요약

앨리스는 1 라이트코인을 라이트닝 네트워크를 이용하여 각 0.1 라이트코인, 10번에 걸쳐 지불하기를 제안했습니다. 캐롤은 이에 대해 서명을 함으로써 제안을 받아들였습니다. 총 10번의 지불에 대해서 오로지 하나만 블록체인에 기록이 되었으며 오직 한번의 전송 수수료만 있었습니다.

자, 이제 라이트닝 네트워크에 대한 기본 지식을 습득하였으니 3부: 라이트닝 네트워크의 큰그림 으로 넘어가시면 되겠습니다!

자료 출처:

https://lightning.network/

https://www.youtube.com/watch?v=8zVzw912wPo


 

비트코인 기부 주소: 1PAFbd1CQov2LxHzCfufmKDLcd58dPrF3J

라이트코인 기부 주소: LUkVNVzS5LX3Tw2aUHMvBDGwX858k6Z69o

모든 기부는 불쌍한 대학원생의 밥값에 이용됩니다… 하핫