비트코인 라이트닝 네트워크 스터디(3): 결제 채널(Payment Channel)

개인적으로 비트코인 라이트닝 네트워크의 핵심은 노드 간의 P2P 채널 구성이라고 생각합니다. 라이트닝 네트워크는 비트코인 네트워크에서 Off-Chain 방식으로 동작하도록 설계되어 있으며 Off-Chain에 존재하는 노드 간의 거래를 얼마만큼 위변조 또는 부정 행위 없이 잘 처리하느냐가 굉장히 중요한 것 같습니다.

이번 포스팅에서는 라이트닝 네트워크의 핵심인 결제 채널(Payment Channel)에 대해서 살펴보도록 하겠습니다.

결제 채널(Payment Channel)

결제 채널은 라이트닝 네트워크 위에서 두 노드가 서로 결제 가능한 채널을 만듦으로써 재정적 파트너 관계를 맺는 것으로, 결제 채널이 성사될 경우 두 노드를 채널의 파트너라고 부릅니다.

결제 채널이 성사될 경우 두 채널 파트너는 채널에 비트코인(사토시)를 펀딩(할당)합니다. 결제 채널은 재정적 파트너 관계이므로 신뢰의 문제가 상당히 중요합니다. 이를 해결하기 위해 라이트닝 네트워크의 결제 채널은 암호학적 프로토콜로 구성되어 있으며, 해당 프로토콜이 파트너 상호를 속일 수 없도록 관리합니다.

결제 채널의 구성

결제 채널은 암호학적 프로토콜로 구성되어 있으며, 결제 채널을 성사한 두 파트너가 2-of-2 다중 서명 주소에 자금을 투입하여 둘 중 어느 한 파트너도 자금을 단독으로 사용하는 것을 방지합니다. 여기서 2-of-2 다중 서명 주소는 두 명의 사용자가 결제 채널을 구성했을 때 각각의 노드마다 하나의 개인 키가 주어지며, 이 두 개인 키를 사용하여 공동으로 소유하는 새로운 주소를 생성하는 것을 말합니다.

지불 채널을 성사한 두 노드는 재정적 파트너로, 암호학적 프로토콜은 재정적 파트너 관계에 있는 두 노드 중 하나의 노드가 마음대로 채널의 자금을 사용할 수 없도록 제어합니다.

결제 채널에서의 거래

결제 채널에 존재하는 자금의 거래(Transaction)가 발생했을 경우 채널의 파트너는 해당 거래에 대한 협상을 진행합니다. 두 노드 간에 발생한 거래는 비트코인 네트워크에 거래 내역을 전송하는 것이 아니라 라이트닝 네트워크에서만 보유합니다(Off-Chain).

다시 말해, 결제 채널을 성사한 두 노드 간의 채널에서 발생한 두 노드 간의 거래는 결제 채널이 종료되기 전까지 해당 거래 내역을 두 노드가 보유한다는 의미입니다. 그리고 두 파트너 중 어느 하나의 파트너가 자신이 결제 채널에 할당한 자금 중 대부분의 자금을 거래에 사용하여 더 이상 결제 채널에서 거래가 발생할 수 없을 때, 두 노드는 결제 채널을 종료하기로 하고 최종적으로 결제 채널에 남은 잔액에 대하여 비트코인 네트워크에 전송하여 해당 잔액 내역을 기록합니다(On-Chain).

이러한 결제 채널에서의 거래는 비트코인의 스마트 컨트랙(Smart Contract)에 의하여 관리됩니다. 이 스마트 계약은 채널 파트너 중 하나가 이전 거래를 철회하려고 하면 벌금을 부과하는 등 패널티가 발생하도록 설계되어 있습니다.

결제 채널을 통한 라우팅(Routing)

이전 포스팅에서 말씀드렸다시피 라이트닝 네트워크는 결제의 라우팅이 가능합니다. 예를 들어, A와 B 노드 간 결제 채널이 구성되어 있고, B와 C 노드 간 결제 채널이 구성되어 있으면 노드 A는 라우팅을 통해 노드 C와 송금 및 거래가 가능합니다.

이러한 결제 채널의 라우팅은 비트코인 스마트 컨트랙과 2-of-2 다중 서명 지갑으로 설계되어 있으며, 결제 채널만 연결되어 있으면 노드 간 신뢰가 필요없이 자금을 전송할 수 있습니다.

라우팅 동작 방식

신뢰가 필요없이 라우팅으로 자신과 결제 채널로 연결되어 있지 않은 노드에게 자금을 전송할 수 있다는 것은 알 수 있지만, 다른 노드가 어느 노드와 연결되어 있고, 어떻게 찾아가는지 궁금하실 수 있습니다. 라우팅 동작 방식은 다음과 같습니다.

라우팅은 가십 프로토콜(Gossip protocol)이라는 것을 사용하여, 다른 노드와 연결점을 찾아냅니다. 가십 프로토콜은 P2P, 분산 환경에서 메세지를 전달하는 방식으로, 쉽게 말해 노드가 소문을 퍼트리는 방식으로 데이터를 전달합니다. 라이트닝 네트워크에서 노드가 자금을 전송할 다른 결제 채널에 있는 노드를 찾아내기 위해 가십 프로토콜을 사용해서, 인접한 다른 노드들에게 해당 노드의 위치 정보(Network topology) 등 데이터를 받아올 수 있습니다.

결제 채널의 특징

지금까지의 내용을 바탕으로 라이트닝 네트워크의 결제 채널의 특징을 요약하면 다음과 같습니다.

  • 빠른 거래 처리 속도: 결제 채널이 성사된 두 노드는 비트코인 네트워크에 거래 내역을 기록하지 않으므로, 블록 생성까지 대기(약 10분)할 필요없이 즉각적으로 거래를 처리할 수 있습니다(Off-Chain).
  • 신뢰가 필요하지 않은 거래: 암호학적 프로토콜, 2-of-2 다중 서명 주소, 비트코인 스마트 컨트랙트를 기반으로 채널 성사 및 거래가 이루어지므로 노드 간 상호 신뢰 없이도 거래가 처리 가능합니다. 또한, 이를 바탕으로 노드 간 합의된 사항에서만 거래가 가능하도록 하여 노드의 부정 행위를 방지합니다.
  • 개인 정보 보호: 결제 채널에서 이루어지는 거래는 거래 내역에 대한 정보를 비트코인 네트워크에 기록하는 것이 아니라 채널 파트너들만 보유하기 때문에 해당 거래 내역의 정보 보호가 가능합니다(Off-Chain). 또한, 결제 채널 내에서의 최종 잔액은 채널 종료 시 비트코인 네트워크에 기록됩니다(On-Chain).
  • 효율적인 라우팅: 채널이 상호 연결되어 있고, 결제를 위해 두 노드가 직접적으로 연결되어 있지 않더라도 라우팅을 통해 결제 당사자와 연결하여 거래를 처리할 수 있습니다.

결론

이번 포스팅은 비트코인 라이트닝 네트워크의 핵심이라고 할 수 있는 결제 채널에 대해서 살펴보았습니다. 라이트닝 노드를 운영하기 위해서는 알아두어야 할 것이 많이 있습니다. 아무것도 모른 채 결제 채널을 무턱대고 개설하게 되면 괜한 비트코인 수수료만 날리기 때문에, 라이트닝 네트워크의 동작에 대해서 이해할 필요성이 있습니다.

참고

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

Leave a Comment