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

 

3명 간의 라이트닝 네트워크, 아토믹 스왑, 그리고 큰그림

1부2부

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

2부에서, 라이트닝 네트워크 (LN)이 두사람 간에 어떻게 작용하는지에 대해 알아보았습니다. 3부에서, LN이 세사람 사이에서 어떻게 작용하고, 아토믹 스왑이란 무엇이고, 라이트닝 네트워크의 큰그림에 대해 알아보도록 하겠습니다.

3명 간의 라이트닝 네트워크

2부에서의 시나리오와는 다르게, 앨리스가 캐롤을 그래픽 디자이너로 채용하고 싶다고 합시다. 앨리스는 캐롤에게 2개의 일거리에 대해 1 라이트코인을 제안합니다. 둘 사이에 멀티시그 주소를 만드는 일은 귀찮기 그지 없습니다. 대신에 앨리스는 공통의 친구 “봅” 이 있다는 것을 알아차립니다. 앨리스는 봅과 같이 쓰고 있는 멀티시그 주소가 있습니다. 그런데 이럴수가, 캐롤도 봅과 같이쓰는 멀티시그 주소가 있네요. 두 멀티시그 주소는 2 of 2 입니다. 앨리스는 봅을 통해 캐롤에게 임금 지불을 하기로 결정합니다.

84707-1vfkzjvdtpt1irn8hyfk2_g.png

앨리스와 봅 / 캐롤과 봅은 2:2 멀티시그 지갑을 각각 가지고 있습니다.

이걸 해내기 위해, 저희는 “해싱(hashing)” 이라는 것을 해야 합니다. 해싱이란 암호학적으로 글자와 숫자로 이루어진 글자 (R)을 “해시(Hash)”라고 불리는 다른 글자 및 숫자로 바꾸는 작업을 말합니다. 해시의 멋짐 점은 초기 데이터 셋 (R)만 가지고 있어도 해시를 재생성 가능하다는 것입니다. 하지만, 해시를 가지고 초기 데이터 셋 (R)을 복구하지는 못합니다. 이 독특한 특성을 이용하면 해시가 앨리스의 1 LTC에 대한 “잠금장치”로 작용할 수 있습니다. 키 (R)을 가져야만 암호를 풀 수 있기 때문이죠.

1단계

캐롤이 라이트코인 지갑을 통해 임의의 숫자 및 글자로 이루어진 문자열 (R)을 만들고 해시를 생성합니다. 이후 이 해시를 앨리스한테 보내는데, 해시는 두가지 역할을 하게됩니다: 1) 영수증 2) 잠금장치

1. 영수증 역할

라이트닝 네트워크 전송은 “오프 체인”에서 일어납니다. 이는 블록체인에 전송 내역이 기록되지 않는다는 것을 뜻하죠. 이 때문에, 캐롤이 앨리스가 라이트코인을 보내는지에 대한 유무를 알 수 없습니다. 해시를 보면, 캐롤은 앨리스가 보냈다는 것을 알 수가 있습니다. 이 때문에, 해시는 영수증의 역할을 한다고 할 수 있습니다.

2. 잠금장치 역할

앨리스가 1 라이트코인을 보낼 때, 라이트코인이 (R)이 재생성 될 때만 라이트코인을 출금할 수 있다는 조건을 달 것입니다. 따라서, 캐롤이 초기 문자열 (R)을 제공할 때 까지 라이트코인이 잠겨있다고 볼 수 있습니다. 이는 “Pay to Contract” 거래라고 합니다. 마지막으로, 앨리스가 지불 채널 생성 비용을 내게 됩니다.

2단계

c0bc8-1qld19z3mvs2iuh232ewy5a.png

2단계

앨리스가 해시를 받은 다음에, 1 라이트코인을 해시와 함께 봅과 같이 소유하고있는 멀티시그 지갑으로 보냅니다. 다음으로 앨리스는 지불 채널을 열기 위해 소정의 수수료를 냅니다. 봅 또한 캐롤과 공동 소유하고 있는 멀티시그 주소에 해시와 함께 1 라이트코인을 보내고, 지불채널을 열기 위해 소정의 수수료를 지불합니다.

3단계

fe3c8-14jmpst0oov6zerzzj18mwq.png

3단계

캐롤은 프로젝트 하나를 완료했기 때문에, 앨리스는 해시와 함께 봅에게 0.5 라이트코인의 지불을 제안합니다. 이때 (R)이 재생성 되어야만 출금할 수 있다는 조건을 내겁니다. 봅은 (R)이 없기 때문에 앨리스의 라이트코인을 가져가거나 훔쳐갈 수 없습니다. 따라서 이를 받기위해 캐롤에게 0.5 라이트코인을 보냅니다.

4단계

캐롤은 해시를 보고 앨리스로부터 왔다는 것을 확인합니다. (R)을 생성하는 대신에, 캐롤은 두번째 프로젝트를 완료합니다. 앨리스는 봅에게 해시와 함께 2 프로젝트에 대한 1 라이트코인을 보내고, 봅 또한 똑같이 캐롤에게 해시와 라이트코인을 보냅니다. 이번에는 캐롤은 봅에게 (R)을 보여줌으로써 라이트코인을 가져갑니다. 봅 또한 앨리스에게 (R)을 보여줌으로써 자신의 라이트코인을 가져갑니다. 이제 지불 채널 비용은 완전히 해결이 되고 거래는 블록체인에 기록이 됩니다. 짜잔! 믿거나 말거나, 이걸로 모든 과정이 끝났습니다!

아토믹 스왑 (Atomic swap)은 무엇인가요?

아토믹 스왑은 사용자로 하여금 거래소를 거치지 않고도 두개의 암호화폐를 교환할 수 있는 수단을 제공합니다.

2 사람 간에 이렇게 작용합니다:

  • 라이트코인이 앨리스 -> 캐롤 에게 보내집니다.

  • 동시에, 비트코인이 캐롤 -> 앨리스 에게 보내집니다.

  • 이를 위해, 라이트코인과 비트코인 멀티시그 지갑을 둘 다 필요합니다.

3 사람 간에 이렇게 작용합니다:

  • 먼저, 라이트코인이 앨리스 -> 봅 -> 캐롤 에게 보내집니다.

  • 동시에, 비트코인이 캐롤 -> 봅 -> 앨리스 에게 보내집니다.

  • 이를 위해, 라이트코인과 비트코인 멀티시그 지갑을 둘 다 필요합니다.

라이트닝 네트워크의 큰 그림

봅을 2사람뿐만 아니라 5, 10 사람이 연결되어 있는 허브라고 한번 생각해봅시다. 봅은 봅대로 10 사람이 연결되어 있는 다른 허브랑 연결할 수 있습니다. 이것이 바로 라이트닝 네트워크의 큰 그림입니다: 사람대사람 (peer-to-peer), 수수료가 들지 않는 거래, 코인 간 아토믹 스왑, 그리고 수개의 허브에 연결된 수백개 또는 수천개의 멀티시그 주소입니다.

a4947-1v887ydzkphteec-uvnwrha.png

마지막으로:

  • 한가지 주목해야할 것은, 수많은 라이트코인 / 비트코인 아토믹 스왑을 다 처리하기 위해서는 봅은 “큰손” 이거나 거래소이어야 한다는 것이죠.

  • LN은 각각의 지불 제안에 대해 감소하는 nLockTime을 걸 수 있는 등 다른 여러 기능이 있기 때문에 제가 설명 한 것 보다 다소 더 복잡할 수 있습니다. 이는 앨리스가 새로운 제안을 하면 그 제안은 그 전의 제안보다 더 빨리 유효기간이 끝난다는 것을 뜻합니다. 이는 이전의 제안을 무효화하는 효과를 가집니다. 또한 어느 누가 코인을 훔치려고 시도하면 이를 처벌할 수 있는 처벌 계약서도 있을 것입니다.

  • 라이트닝 네트워크 개발에 있어서 한가지 흥미진진한 것은 Elizabeth StarkBlockstack Summit 2017 에서 발표한 레이어 3 의 가능성입니다. 여기서, 레이어 1은 블록체인, 레이어 2는 LN, 레이어 3은 2와 1에 접속하여 스마트 계약 기능을 수행하는 앱을 말합니다.

  • 너무 복잡하다 싶더라도 두려워하지 마세요! 라이트닝 개발자 팀은 이 모든 과정을 알아서 처리하는 사용자 인터페이스 (UI)를 만들 고 있습니다. 예를 들어, Jack Mallers 는 최근에 ZAP: A Lightning Network Wallet 를 발표했습니다. 이는 두 사람간의 라이트닝 네트워크를 이용한 지불을 가능하게 합니다. 소스코드를 한번 봐보시면 알겠지만, 간단하고 사용자 친화적입니다.

  • 마지막으로, 라이트닝 네트워크 개발에 관심이 있으면, 어떻게 하면 개발에 참여할 수 있는지 다음의 웹사이트에서 한번 알아보시기 바랍니다: https://github.com/lightningnetwork/lnd/

여기 까지 다 읽으셨네요! 축하드리고 저랑 같이 라이트닝 네트워크에 대해 같이 여기까지 와주셔서 감사합니다! 다음에는 LN이 어떻게 스케일 할지에 대해 알아보도록 하겠습니다.

생각해봅시다:

  1. LN 에 대한 우려가 있나요? 있으면 어떤 우려가 있나요?

  2. 세그윗이 활성화된 코인 중에, 어느 두개를 먼저 아토믹 스왑하고 싶으신가요?

  3. 암호화폐의 세계에서 어떤 기술에 대해 더 알아보고 싶으신가요?

자료 출처:

https://lightning.network/

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

 


비트코인 기부 주소: 1PAFbd1CQov2LxHzCfufmKDLcd58dPrF3J

라이트코인 기부 주소: LUkVNVzS5LX3Tw2aUHMvBDGwX858k6Z69o

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