비트코인 라이트닝 네트워크 스터디(2): 구성 요소 및 동작 방식

비트코인 라이트닝 네트워크에 대한 간단한 설명에 관한 포스팅 이후, 이번에는 비트코인 라이트닝을 구성하고 있는 요소와 간단한 동작 방식에 대해서 살펴보도록 하겠습니다. 또한, 라이트닝 네트워크 결제의 간단한 동작 방식을 살펴보면서 라이트닝 노드 운영 시 어떤 부분에서 수익을 얻을 수 있는지 살펴보도록 하겠습니다. 그리고 라이트닝 노드를 운영하기 위해서는 라이트닝 네트워크의 구성 요소와 동작 방식을 이해하는 것이 매우 중요합니다.

비트코인 라이트닝 네트워크의 요소

먼저, 비트코인 라이트닝 네트워크를 구성하고 있는 요소에 대해서 간략하게 살펴보도록 하겠습니다.

비트코인 노드

비트코인 라이트닝 네트워크는 실제 비트코인 네트워크를 사용하는 2계층 기술이며, 라이트닝 노드를 운영하기 위해서는 비트코인 노드가 필요합니다. 비트코인 노드는 비트코인의 모든 비트코인 거래 기록을 저장하며, 비트코인 네트워크에서 생성되는 블록에 대한 검증 작업을 수행합니다.

다시 말해, 라이트닝 네트워크는 비트코인 네트워크 위에서 동작하므로, 라이트닝 노드를 운영하기 위해서는 비트코인 네트워크에 접근(Access)하여 채널 개설을 할 수 있도록 비트코인 노드가 필요합니다.

라이트닝 노드(Lightning Node)

라이트닝 노드는 비트코인 네트워크 위에서 결제 채널을 운영하고 거래를 수행하는 시스템을 말합니다. 라이트닝 노드는 다른 노드와 채널 개설을 통해 P2P 방식으로 연결하여 거래가 이루어 질 수 있습니다. 라이트닝 노드의 채널에서 비트코인 거래는 비트코인 네트워크에 기록되지 않고 Off-chain에서만 존재합니다.

다만, 라이트닝 노드가 다른 노드와 라이트닝 채널을 개설하고 닫을 때에는 비트코인 네트워크에 기록합니다. 이 부분에 대해서는 다음 포스팅에서 더 자세하게 다루도록 하겠습니다.

라이트닝 지갑

라이트닝 노드를 운영하고 라이트닝 네트워크를 사용하여 비트코인을 거래하기 위해서는 라이트닝 지갑이 필요합니다. 라이트닝 지갑은 비트코인을 사토시 단위의 거래 및 지불을 가능하게 하는 애플리케이션을 말합니다. 대표적으로 Wallet of Satoshi 등이 있습니다.

라이트닝 지갑으로는 다음과 같은 종류가 있습니다.

  • Lightweight 방식: 라이트닝 노드를 직접 운영하지 않는 방식의 라이트닝 지갑
  • 서드 파티 방식: 라이트닝 노드를 운영하는 서드파티에 의해서 제공되는 라이트닝 지갑(예, Wallet of Satoshi 등)
  • 비트코인 풀 노드 연결 방식: 비트코인 풀 노드에 연결된 라이트닝 노드에 의해 제공되는 라이트닝 지갑

라이트닝 네트워크를 통한 거래의 동작 방식

라이트닝 네트워크를 통한 거래는 다음과 같이 동작합니다. 라이트닝 노드를 운영자 입장에서 라이트닝 노드 간 사토시 거래가 어떻게 동작하는지 살펴보도록 하겠습니다. 이를 통해 라이트닝 노드 운영자가 받을 수 있는 라우팅 수수료는 어디서 발생하는지 알 수 있습니다.

라이트닝 결제 채널 개설(Openning Channel)

라이트닝 노드 운영자는 라우팅 수수료를 벌기 위하여 다른 라이트닝 노드와 채널을 개설(Openning Channel)해야 합니다. 라이트닝 노드 운영자가 다른 노드와 채널을 개설하기 위해서는 채널을 개설하는 노드 쪽에서 해당 채널에 대한 비트코인을 지불(펀딩)해야 합니다. 이러한 과정은 비트코인 네트워크에 기록됩니다(On-chain의 비트코인 거래와 동일).

아래는 라이트닝 노드를 사용해서 비트코인 채널을 개설했을 때, 비트코인 네트워크에 기록된 거래 내역입니다. 아래와 같이 Channel open이라는 정보가 표기되고, 일부 비트코인이 채널 개설 수수료로 지불된 것을 확인할 수 있습니다. 이때 채널 개설을 요청한 쪽에서 수수료를 부담하며 개설 요청을 받은 쪽이 해당 수수료를 지불받습니다. 

라이트닝 노드를 사용해서 채널 개설에 대한 비트코인 거래를 비트코인 네트워크에 요청하면, 채널에 대한 펀딩 비용과 채널 개설 수수료가 지불되고 비트코인 네트워크에서 컨펌이 될 때까지 기다려야 합니다. 기다리는 시간은 비트코인 네트워크 상황에 따라 다를 수 있습니다(비트코인 컨펌(Confirmations): 비트코인 거래 처리 얼마나 기다려야 할까요?).

비트코인 라이트닝 네트워크 채널 개설의 예
비트코인 라이트닝 네트워크 채널 개설의 예

라이트닝 네트워크의 결제 채널 사용

라이트닝 노드 운영자가 정상적으로 다른 노드와 채널 개설을 완료하였습니다. 이때 라이트닝 네트워크 사용자 중 한 명이, 우리가 개설한 라이트닝 채널을 사용하고자 합니다. 이 사용자는 음식점에서 식사 비용을 사토시로 결제하고자 하며, 음식점 사장에게 Wallet of Satoshi 지갑 앱을 사용해서 음식 비용을 지불합니다. 사용자가 음식 결제에 사용한 사토시가 음식점 사장의 Wallet of Satoshi 지갑까지 도달하기 위해서는 다음과 같은 과정을 거쳐야 합니다.

채널 사용의 예
채널 사용의 예

간략하게만 표현했지만, 실상은 더 많은 노드들 간의 연결이 있을 수 있습니다. 라이트닝 네트워크를 통한 사토시 전송은 채널이 개설된 노드만이 사토시를 전송할 수 있습니다. 그런데, 사용자와 음식점 사장이 결제를 처리해야 함에도 불구하고 P2P로 채널이 연결되어 있지 않다면, 사용자와 음식점 사장 간의 결제 채널을 이어줄 다른 채널을 사용해야 합니다. 쉽게 말해 노드 운영자가 다른 노드의 사토시 전송을 도와주는 것을 라우팅(Routing) 해준다고 하며, 이때 라우팅에 대한 수수료를 노드 운영자가 지불 받습니다.

라이트닝 결제 채널 종료(Closing Channel)

라이트닝 채널이 오픈되어 있는 동안 채널에 펀딩된 비트코인 잔액(balance)는 채널이 종료되기 전까지 사용할 수 없습니다. 라이트닝 노드 운영자가 채널을 닫을 때는 라이트닝 채널에 대한 최종 잔액을 결산하는 노드 간 합의 과정 이후 채널이 종료됩니다.

채널 종료시에는 비트코인 네트워크의 거래 처리에 대한 수수료가 부과되며, 일반적으로는 채널을 열고 종료하는 수수료는 채널 개시자가 부담하도록 되어있습니다.

결론

이번 포스팅에서는 비트코인 라이트닝 네트워크를 구성하는 요소와 동작 방식에 대해서 살펴보았습니다. 라이트닝 노드를 운영의 수익은 다른 라이트닝 노드와 채널을 개설하고 유지하면서 다른 사용자가 라우팅 수수료를 지불할 때 발생합니다. 또한, 자신이 채널을 개설하고자 할 때는 수수료를 부담해야 하지만, 다른 라이트닝 노드가 자신과 채널을 개설하고자 할 때에는 채널 개설 수수료를 받을 수 있으며 이에 따른 수익이 발생할 수 있습니다.

참고

  • Mastering the Lightning Network, 바로가기
  • 비트코인 라이트닝 네트워크 스터디(3): 결제 채널(Payment Channel), 바로가기
  • 비트코인 라이트닝 네트워크 스터디(1): 비트코인 2계층 기술, 바로가기
  • 비트코인 컨펌(Confirmations): 비트코인 거래 처리 얼마나 기다려야 할까요?, 바로가기
  • 나도 이제 비트코인 풀노더, 비트코인 노드 만들기(2), 바로가기

 

Leave a Comment