Lightning을 활용한 비트코인 즉시 결제 방법 — 튜토리얼
Lightning Network

Lightning을 활용한 비트코인 즉시 결제 방법 — 튜토리얼

Grubles

이 게스트 게시물은 Lightning에서 활발하게 활동하는 @notgrubles의 글이며, 원 게시물은 Grubles의 블로그에 게시되어 있습니다.

업데이트: 이 게시물에서 다음과 같이 중요한 메시지를 더 눈에 띄게 강조해 달라는 커뮤니티의 정말 감사한 피드백을 받았습니다.

시작하시기 전, 이 소프트웨어는 시험용이고 자금 손실을 초래하는 버그를 포함할 수 있다는 점을 주의하시기 바랍니다. 손실을 감당할 수 있는 소액의 비트코인만 사용하세요.

한눈에 보는 텍스트 및 동영상 튜토리얼

비트코인은 무신뢰 거래를 위해 전 세계에서 사용되는 분산형 P2P 결제 네트워크입니다. 이 시스템에서 채굴자는 서로 암호화되어 연결되는 블록들 안에 거래를 포함해야 하기 때문에 무신뢰 거래가 가능합니다. 그러나 이로 인해 거래 확인에 시간이 걸리는데, 누구나 시간적 여유가 있는 것은 아닙니다. 이러한 불편함은 Satoshi Nakamoto가 거래 확인을 위해 약 10분을 기다리는 대신 채널 파트너 간의 "고빈도 거래"를 가능하게 하는 방법이라고 설명한 결제 채널로 해결됩니다. Lightning은 이 아이디어를 수용하여 대대적으로 활용합니다. 채널 파트너에게만 지불할 수 있는 것이 아니라 결제 채널 네트워크인 Lightning Network에서 누구에게나 즉시 결제를 할 수 있습니다.

최근 Blockstream은 Blockstream Store라는 전자상거래 쇼핑 페이지를 출시했습니다. Blockstream Store는 Lightning Charge를 기반으로 구축되어 새로 출시된 Wordpress 전자상거래 플러그인을 사용합니다. 가장 흥미로운 점은 비트코인의 메인넷에서 Lightning Network 결제로 Blockstream Store에서만 물건을 구입할 수 있다는 것입니다. 이 튜토리얼은 Blockstream의 Lightning 구현인 c-lightning을 사용하여 물건을 구매하거나 Lightning 결제를 받기 위해 나만의 Lightning 노드를 설정하는 방법을 보여줍니다.

필수 조건

●     Linux (이 가이드에서는 Ubuntu 17.10이 사용됨)

●     비트코인의 블록체인을 위한 충분한 스토리지

●     기초부터 중간 수준의 명령어 지식

●     SegWit와 완전히 동기화된 비트코인 노드

●     약간의 비트코인

0단계: 빌드 도구 및 의존성 설치

첫 번째 단계는 apt를 통해 필요한 도구를 설치하는 것입니다:

sudo apt-get install -y autoconf automake build-essential git libtool libgmp-dev libsqlite3-dev python python3 net-tools tmux

1단계: 비트코인 PPA에서 bitcoind 설치

bitcoind를 소스에서 빌드하거나, bitcoin.org에서 바이너리를 다운로드하고 검증하거나 (추천 방법), 비트코인 PPA에서 설치합니다:

sudo apt-get install software-properties-common sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install -y bitcoind

2단계: lightningd 저장소 복제 및 빌드

이제 c-lightning 코드를 받고 빌드합니다:

mkdir builds && cd builds git clone https://github.com/ElementsProject/lightning.git cd lightning make

컴파일 속도를 높이려면 make -jn을 사용하세요. n은 빌드 전용 스레드(thread) 수입니다.

예: (Xeon 같이) 10개 이상의 스레드가 있는 프로세서는 make -j10 사용.

3단계: bitcoind, lightningd, lightning-cli를 실행하여 올바른 설치 확인

bitcoind를 시작한 뒤 lightningd, lightning-cli를 차례로 시작하여 모든 것이 올바르게 설치되었는지 확인합니다:

tmux를 사용하여 이 과정을 더 완벽하게 만듦으로써 한 터미널에 모든 것이 깔끔하고 잘 정돈되도록 유지하세요:

tmux

bitcoind를 시작하고 로그에서 bitcoind의 시작을 확인한 뒤 bitcoin-cli로 테스트합니다:

bitcoind tail -f ~/.bitcoin/debug.log bitcoin-cli getinfo

마찬가지로, lightningd를 시작하고 lightning-cli로 테스트합니다:

./lightningd/lightningd --network bitcoin --log-level debug ./cli/lightning-cli help

4단계: 원격 Lightning 피어에 연결

lightningd와 lightning-cli가 성공적으로 구축된 뒤 피어에 연결하고 채널 그래프를 동기화합니다. 여기에 사용되는 피어는 Blockstream의:

/cli/lightning-cli connect 02f6725f9c1c40333b67faea92fd211c183050f28df32cac3f9d69685fe9665432 104.198.32.198 9735

그래프가 자동으로 동기화됩니다 (lightningd 로그 출력):

5단계: 채널을 개설하기 위해 자금을 보낼 주소 생성

Lightning 결제 채널을 열기 위해서는 자금화된 UTXO가 필요합니다. lightning-cli를 사용하여 비트코인을 보낼 비트코인 주소를 생성합니다:

./cli/lightning-cli newaddr

생성한 주소로 비트코인을 보냅니다. 단 이 소프트웨어는 시험용이라는 점을 유의하세요.

6단계: BTC 수신 확인

lightning-cli를 사용하여 우리 주소로 비트코인이 들어왔는지 확인합니다:

./cli/lightning-cli listfunds

7단계: 앞서 연결한 피어로 채널 열기

결제 채널을 열기 위해 노드의 pubkey 또는 id(이 경우 Blockstream의 id)를 찾은 뒤 lightning-cli를 사용하여 채널 열기를 시작합니다:

피어의 노드 id를 프린트하려면:

./cli/lightning-cli listpeers

해당 id를 복사하고 약간의 사토시(satoshi)를 채널로 보냅니다:

./cli/lightning-cli fundchannel 02f6725f9c1c40333b67faea92fd211c183050f28df32cac3f9d69685fe9665432 amount_in_satoshis

8단계: 자금 거래 확인을 위한 lightningd 로그 모니터링

원하는 경우, tmux를 사용하여 lightningd 창으로 돌아가서 자금 거래가 확인되는지 관찰합니다:

9단계: 채널 개설 확인

채널을 열기 위해서는 세 번의 확인이 필요합니다. 자금 거래가 세 번 확인되면 lightning-cli를 사용하여 신규 결제 채널을 목록화합니다:

./cli/lightning-cli listchannels | grep your_nodes_pubkey

축하합니다! 여러분의 첫 Lightning 네트워크 결제 채널이 개설되었습니다!

이제 다른 사람에게 인보이스를 보내 즉시 결제를 받거나, 다른 사람이 보낸 인보이스를 결제하실 수 있습니다!

./cli/lightning-cli invoice amount_in_millisatoshis label description

또는

./cli/lightning-cli pay bolt11_string

c-lightning의 설치 설명서는 여기 여기에서 보실 수 있습니다.

읽어 주셔서 감사합니다!

– grubles