상세 컨텐츠

본문 제목

[Mastering the Lightning Network] 2 - 시작하기

IT.About/라이트닝 네트워크

by zNine 2021. 12. 16. 11:36

본문

728x90
반응형

두 번째 장에서는 라이트닝 네트워크를 하기 위해 필요한 요소와 채널간 거래에 대해 간단하게 살펴본다.

  • 라이트닝 네트워크에서 결제를 하기위해서는 기본적으로 사용자가 쉽게 쓸수 있도록 결제 UI를 제공하는 지갑이 필요하고,
  • 지갑과 연동해 실제 라이트닝 네트워크를 통해 돈(사토시)를 보내는 일을 수행하는 라이트닝 노드,
  • 그리고 라이트닝 네트워크는 실제 비트코인을 할당(펀딩)해서 사용하기 때문에 비트코인 네트워크와 연동되는 비트코인 노드가 필요한다.

 

  • 라이트닝 노드
    • 다른 라이트닝 노드와 Peer-to-Peer로 연결되어, 비트코인 블록체인(온체인)과 별개(오프체인)로 채널간 거래가 가능하도록 구현된 소프트웨어(+하드웨어) 시스템을 말한다.
    • 지갑의 역할도 수행하며, 채널간 거래를 주고 받을 있다.
    • 다른 라이트닝 노드와 P2P 방식으로 통신.
    • 채널을 열고, 닫을 때에는 비트코인 블록체인에 브로드캐스트 해야하므로, 비트코인 블록체인에 엑세스 할 수 있어야 한다. 엑세스하는 방식은 여러가지.
    • Full block 노드 또는 SPV(단순 지불 검증) 클라이언트를 사용해 비트코인 블록체인과 상호 작용한다.
  • Lightning Explorers (라이트닝 탐색기)
  • 라이트닝 지갑 (Lightning Wallets)
    • 라이트닝 지갑은 라이트닝 네트워크를 사용해 비트코인(사토시)를 지불 가능하게 하는 소프트웨어(어플리케이션)을 말한다. 
    • 구성요소
      • 저장소(개인 )
      • 라이트닝 노드
      • 비트코인 노드
      • 라이트닝 노드 채널의 DB "map"
      • 라이트닝 채널 open/close 가능한 채널 관리자
      • 결제 소스부터 목적지까지 연결된 경로를 찾을수 있는 close-up 시스템
    • 지갑에서 사용되는 라이트닝 노드에 대한 분류
      • Lightweight
        • 라이트닝 노드를 운영하지는 않음.
      • None
        • 라이트닝 노드 지갑이 3rd-party 의해 운영되고, 사용자 UI를 제공.
      • Neutrino (뉴트리노)
        • 비트코인 노드 없이, 라이트닝 노드를 운영하고, 비트코인 노드와의 통신에 Neutrino 프로토콜을 사용.
        • Neutrino 프로토콜: 다른 사람이 운영하는 비트코인 노드에서 블록체인 정보를 검색하기 위한 프로토콜.
      • Electrum
        • 트코인 노드 없이, 라이트닝 노드를 운영하고, 비트코인 노드와의 통신에 Electrum 프로토콜을 사용.
      • Bitcoin Core
        • 비트코인 풀 노드운영
      • btcd
        • 비트코인 풀 노드운영
    • 아래 테이블에 서비스되고 있는 라이트닝 노드 지갑을 정리했다.
Application Device Lightning node Bitcoin node Keystore
Blue Wallet Mobile None None Custodial
Breez Wallet Mobile Full node Neutrino Self-custody
Eclair Mobile Mobile Lightweight Electrum Self-custody
lntxbot Mobile None None Custodial
Muun Mobile Lightweight Neutrino Self-custody
Phoenix Wallet Mobile Lightweight Electrum Self-custody
Zeus Mobile Full node Bitcoin Core/btcd Self-custody
Electrum Desktop Full node Bitcoin Core/Electrum Self-custody
Zap Desktop Desktop Full node Neutrino Self-custody
c-lightning Server Full node Bitcoin Core Self-custody
Eclair Server Server Full node Bitcoin Core/Electrum Self-custody
lnd Server Full node Bitcoin Core/btcd Self-custody
  • 라이트닝 결제 채널 열기
    • 지갑 어플리케이션 등에서 라이트닝 노드를 연결하고, 채널을 open 하려면, 해당 채널에 비트코인을 할당(펀딩)해야하며,
    • 블록체인 장부에 기록되기 때문에 펀딩 트랜젠셕에 대한 채널 오픈 수수료를 지불해야함.
    • 지갑은 채널 오픈에 대한 거래를 구성하고, 비트코인 네트워크로 전송 블록체인에 트랜젝션이 검증될 때 까지 기다려야 한다.(+-10분)
    • 채널 오픈(펀딩) 트랜젝션이 블록체인 네트워크에서 확인(검증)되면 채널이 오픈되고, 자금(사토시)가 할당된다.
  • 라이트닝 네트워크를 통한 거래
    • 카페에서 커피를 산다고 가정했을때,
    • 카페에 있는 POS기를 통해 커피를 선택,
    • POS기에 라이트닝 결제 인보이스에 결제 금액(사토시) 및 QR코드가 생성되고,
    • 라이트닝 지갑 어플리케이션의 결제하기를 선택, QR코드를 인식하고, 결재 내역을 확인한다.
    • 최종적으로 앱에서 결제하기를 선택하면 채널에 할당한 자금(사토시) 중 인보이스에 있는 금액이 카페 POS기 라이트닝 지갑으로 전송되고, 거래가 완료된다.
  • 결제 채널 종료
    • 라이트닝 결제 채널이 오픈되어 있는 동안 채널에 할당되어 지불된 잔액(balance)는 비트코인 지갑 등에서 사용 할 수 없다.
    • 라이트닝 결제 채널에서의 거래가 종료되거나, 할당된 잔액을 비트코인 지갑으로 받기 위해서는 채널을 닫아야하며,
    • 채널을 닫은 후 (비트코인 온체인에 최종 잔액에 대한 배분을 마친 후), 사용가능하게 된다.
    • 채널 종료에 사용되는 트랜젝션 또한 비트코인 거래 수수료가 부과되며,
    • 일반적으로 채널을 열고 닫는데에드는 수수료는 채널 개시자가 부담한다.
  • 사실 라이트닝 네트워크의 핵심 기능은 결제 채널 당사자간의 거래뿐만 아니라, 연결을 확장해 라우팅을 통해 다른 노드와의 거래를 가능하게 하는것에 있다.
    • 경로를 찾고(Pathfinding),
    • 부정행위를 방지,
      • 2-of-2 다중 서명주소(Multisignature address) 사용,
      • 타임락(Timelock)에 의한 지연,
      • 취소(Revocation) 키 매커니즘을 사용한 패널티 매커니즘으로 비트코인 시스템의 법원 역할 수행
    • 하는 등의 내용은 이후 다룬다.
728x90
반응형

관련글 더보기