라이트닝 네트워크 작동 방식을 이해하기 위한 기사
BFTF技术社区联盟
2018-08-23 01:16
本文约4558字,阅读全文需要约18分钟
기본적으로 라이트닝 네트워크는 비트코인 ​​사용자가 비트코인 ​​블록체인에서 금전적 가치를 교환하는 방법입니다.

이 기사는 BFTF Technology Community Alliance, 저자: BFTF Technology Community Alliance, 편집자: Fangyuan, 승인을 받아 게시한 기사입니다.

소개: 라이트닝 네트워크는 비트코인 ​​네트워크의 혼잡 문제를 해결하기 위해 제안된 비트코인 ​​네트워크의 개선 방안입니다. 라이트닝 네트워크의 본질은 비트코인 ​​네트워크를 결제 네트워크로 사용하는 것이며 두 노드 사이에 채널이 설정되면 모든 거래가 오프체인에서 완료될 수 있습니다. 이 기사의 저자는 블록체인 실무자가 읽기에 매우 적합한 라이트닝 네트워크에 대한 포괄적인 소개를 제공합니다.

Bitcoin을 사용해 본 적이 있다면 아마도 최대 1시간(또는 최악의 경우 최대 하루)의 거래(확인) 시간을 경험했을 것입니다. 거래량이 많은 시기에 비트코인 ​​네트워크는 한때 150,000건 이상의 미확인 거래의 백로그를 보유했으며 이제는 표준이 되었습니다. 이러한 긴 거래 확인 시간과 높은 수수료의 조합은 소액 결제 시나리오에서 비트코인을 사용하기 어렵게 만듭니다(예를 들어 정오에 식사를 위해 30위안을 지출하는 경우 광부들이 거래를 패키지하기 위해 요구하는 수수료는 이보다 훨씬 높을 수 있습니다) 숫자).


Lightning Network는 이 문제를 해결하는 데 도움이 될 수 있습니다. 라이트닝 네트워크는 2015년 라이트닝 네트워크에 대한 백서를 제출한 Thaddeus Dryja와 Joseph Poon의 발명품입니다. 긴 논문 읽기에 관심이 없다면 이 글에서 라이트닝 네트워크의 원리와 프로세스를 간략하게 소개하겠습니다.

라이트닝 네트워크란 무엇입니까?

기본적으로 라이트닝 네트워크는 비트코인 ​​사용자가 비트코인 ​​블록체인에서 금전적 가치를 교환하는 방법입니다. 이것은 비트코인 ​​블록체인과 상호 작용하는 일부 복잡한 스크립트를 통해 달성되며 소액 거래(및 낮은 거래 수수료)에 대한 빠른 지불을 허용합니다. 라이트닝 네트워크는 비트코인이 미래에 실행 가능한 결제 수단이 되려면 비트코인 ​​블록체인의 확장성을 개선하는 데 필요한 도구입니다. 이 관행은 교차 체인 트랜잭션으로 확장될 수 있습니다. 이러한 가치 교환은 두 개의 서로 다른 통화/블록체인 간에 발생한다는 점을 제외하고는 실제로 유사합니다. 여기에서 아토믹 스왑에 대해 자세히 설명합니다.

이상으로 라이트닝 네트워크의 역할과 소개를 마치며, 다음으로 라이트닝 네트워크의 세부사항을 소개하는 단계로 들어가겠습니다.

라이트닝 네트워크는 어떻게 작동합니까?

양방향 결제 채널 열기

라이트닝 네트워크를 사용하려면 결제 채널을 설정해야 합니다. 결제 채널은 라이트닝 네트워크를 통해 가치를 이전하기 위한 거래 경로입니다. 결제 채널을 열려면 비트코인 ​​블록체인에서 새로운 트랜잭션을 생성해야 합니다.

"그런데 이 모든 일이 오프체인에서 일어났다고 말씀하신 줄 알았어요?" 걱정하지 마세요. 라이트닝 네트워크는 오프체인이지만 먼저 거래를 하고 있다는 사실을 비트코인 ​​네트워크에 알려야 합니다. 이 작업이 완료되면 트랜잭션의 양 당사자는 대차대조표를 채널에 유지합니다. 자금이 이동할 때마다 거래 및 업데이트된 계정 잔액이 이 원장에 기록되고 채널에서 결제한 후 최종 결과를 블록체인으로 방송할 수 있습니다.

멀티시그 지갑

그렇다면 지불 채널이 오프체인에서 발생한다면 자금은 어디에서/어떻게 관리되고 비트코인 ​​블록체인에 어떻게 기록됩니까? 결제 채널을 사용하려면 양 당사자가 자금을 다중 서명 지갑 주소로 보내야 합니다.

몰리와 스티브가 슈퍼볼의 결과에 내기를 걸었다고 가정해 봅시다. 그들은 각각 1 BTC를 베팅하고 상대방이 자신의 거래를 보유하고 있는지 확인하기를 원하므로 자금을 다중서명 지갑에 예치합니다. 다중 서명 지갑은 예금 금고와 같은 기능을 하며 거래를 위한 개인 키 세트를 통해 양쪽 당사자가 자금에 액세스할 수 있습니다. 자금은 다음까지 지갑에 잠겨 있습니다.


  • Molly와 Steve 모두 최종 계약에 서명했습니다.

  • 한 당사자가 최종 거래를 완료하거나

  • 시간 제한에 도달하고 트랜잭션이 자동으로 제출됩니다. 이런 일이 발생하면 자금은 양 당사자의 개인 지갑으로 다시 전송됩니다.


다중서명 지갑을 성공적으로 설정하기 위해 Molly와 Steve는 둘 다 값(본질적으로 트랜잭션을 잠금 해제하는 키)을 생성한 다음 해시를 생성하고 서로에게 보내는 데 사용합니다. 이를 마스터하는 것은 나중에 약정 트랜잭션이 작동하는 방식을 이해하는 데 중요합니다.

Molly와 Steve가 각자의 자금을 다중서명 지갑에 예치하면 결제 채널을 생성하여 비트코인 ​​블록체인에 브로드캐스팅할 수 있습니다. 일단 방송되면 자금은 일련의 약정 트랜잭션을 사용하여 관리됩니다.

약정 트랜잭션을 통한 송금

결국 Molly가 내기에서 이겼고 그녀는 0.5 비트코인을 얻었습니다. 이 부를 이전하기 위해 Molly와 Steve는 약정 거래에 서명하여 지불 채널에서 각각의 잔액을 업데이트합니다. 약정 트랜잭션은 상호 합의에 따라 두 참가자 간에 자금을 나눕니다.본질적으로 이러한 트랜잭션은 결제 채널이 닫히면 실제로 지불되는 차용증과 같습니다(비트코인 블록체인에서 참조).

예를 들어 Molly는 자신에게 1.5 BTC를 전송하고 새 다중서명 주소로 0.5 BTC를 전송하는 트랜잭션에 서명합니다. 그런 다음 그녀는 이 트랜잭션에 서명하고 해시를 Steve에게 보냅니다. 차례로 Steve는 0.5 BTC를 자신에게, 1.5 BTC를 다른 다중서명 주소로 보냈다는 점을 제외하면 Molly와 유사한 약정 트랜잭션에 서명했습니다. 그런 다음 거래에 서명하고 이 거래의 해시를 Molly에게 보냅니다.

a) 원래 다중서명 지갑의 2 BTC, b) 다중서명 지갑의 0.5 BTC, Steve에게 지급, c) 다중서명 지갑의 1.5 BTC를 Molly에게 지급. 실제로 당사자가 각자의 트랜잭션 해시를 전송하면 결제 채널의 대차대조표가 업데이트됩니다. 그래서 이런 식으로 우리는 비트코인 ​​블록체인을 사용하지 않고 거래를 합니다.

지갑에 있는 돈은 다음 세 가지 조건에서만 잠금 해제될 수 있습니다.

  • 잠금 시간이 다 되었습니다

  • 어느 쪽이든 가치(키)를 통해 설정한 다중서명 지갑에서 자금을 잠금 해제하거나

  • 양 당사자는 거래에 함께 서명합니다.

당사자가 결제 채널을 닫고 별도로 거래에 서명하기로 결정한 경우, 거래가 서명될 때 설정된 미리 결정된 시간(계약에 지정된 시간)까지 기다려야 자금을 받을 수 있습니다. 이는 과도하게 들릴 수 있지만 그러한 수단을 통해 부정 행위를 방지해야 합니다.

반복 결제/갱신 채널

Molly와 Steve가 채널을 계속 업데이트하거나 여러 교환을 원하면 어떻게 합니까?

Steve가 이발과 같은 반복적인 서비스에 대해 Molly에게 비용을 지불한다고 가정합니다. Steve는 0.2 BTC를 다중서명 지갑에 입금하고 헤어컷을 할 때마다 Molly에 대한 약정 트랜잭션에 서명하여 0.001 BTC를 새 다중서명 주소로 보냅니다. 이를 위해 그는 우리가 블록체인에서 새로운 트랜잭션을 열면서 방금 했던 것을 반복해야 합니다.

따라서 반복 결제를 처리하려면 다중 서명 주소의 계정 잔액을 매번 업데이트해야 합니다. 이를 위해 Steve는 이발을 할 때마다 자신이 설정한 다중서명 지갑에 새 금액을 넣어 Molly에게 지불합니다. 그러나 그렇게 함으로써 그는 이 새로운 트랜잭션에 대한 새로운 가치와 새로운 해시를 생성했습니다. Molly는 동일한 작업을 수행하여 두 당사자가 새 해시를 교환할 때 이전 트랜잭션의 이전 값도 교환합니다(해시를 교환하는 대신 이전 트랜잭션의 해시가 마지막으로 교환됨).

이렇게 하면 어느 쪽도 상대방을 속일 수 없습니다. Steve가 결제 채널이 닫혀 있을 때 이전 거래를 방송하여 Molly를 속이려고 하면 문제가 발생합니다.

예를 들어 Steve가 채널을 닫을 때 원래 상태를 브로드캐스트하면 원래 거래에 서명한 것입니다(Molly와 Steve에 대해 각각 BTC 1개). Molly는 이전 거래에 대한 키를 가지고 있기 때문에 Steve를 처벌할 수 있습니다. 더 중요한 것은 Steve가 잠금 시간까지 기다려야 돈을 받을 수 있는 반면 Molly는 즉시 돈을 받을 수 있다는 것입니다. 따라서 그녀가 Steve가 원시 데이터를 브로드캐스트한 것을 알게 되면 다중 서명 지갑에서 2 BTC를 가져갈 수 있습니다(그녀는 이 거래에 대한 키를 가지고 있으므로 자금을 잠금 해제할 수 있기 때문입니다).

따라서 한 당사자가 다른 당사자를 속이려고 하면 상대방이 모든 돈을 가져갑니다. 이 페널티는 나쁜 행위자가 지불 채널에서 자금 할당을 남용하는 것을 막기 위한 것입니다.

또한 Molly가 온라인 상태가 아닌 경우 그러한 반칙 행위를 발견한 노드 운영자와 채굴자가 그녀를 대신하여 조치를 취할 수 있습니다. 보상으로 그들은 일정한 현상금을 받게 될 것입니다.

결제 채널 닫기

Molly와 Steve가 채널을 닫을 준비가 되면 개인 키로 트랜잭션에 서명하고 최종 계정 잔액을 블록체인에 브로드캐스팅합니다. 이 시점에서 채굴자는 이를 확인하고 블록체인에 저장합니다. 채널 개설 거래와 마찬가지로 이 폐쇄 채널 거래는 비트코인 ​​블록체인과 상호 작용해야 합니다.

또는 당사자는 계약 기간 만료일을 설정할 수도 있습니다. 예를 들어, nLockTime 알고리즘을 사용하여 지불 채널이 30일 동안 열려 있음을 보장할 수 있으며, 그 후 채널이 닫히고 최종 잔액이 블록체인으로 전송됩니다. 그러나 당사자가 잔액을 업데이트하려고 할 때마다 기한이 줄어듭니다. 따라서 Molly와 Steve가 한 시즌 동안 여러 축구 경기에 베팅하는 경우 nLockTime 계약은 베팅을 할 때마다 새롭고 단축된 만료일을 갖게 됩니다(예: 첫 번째 커밋된 거래가 30일 이내에 완료되면 두 번째 거래는 29일에 만료되면 세 번째 트랜잭션은 28일에 만료됩니다.

nLockTime 계약의 목적은 간단합니다. 계정 잔액을 최신 상태로 유지하고 한 당사자가 청구서를 위조하는 것을 방지합니다. 앞에서 논의한 바와 같이 약정 트랜잭션이 합의될 때마다 이전 계정 잔액이 새 계정 잔액으로 교환되고 각 당사자는 이 새 잔액을 이전 개인 키와 함께 기록합니다. 어느 한 쪽이 상대방을 속이려고 시도하면 사기를 친 쪽이 처벌을 받습니다.

다중 채널 결제 및 HTLC

"몰리와 스티브가 서로에게 비트코인을 보내고 싶지만 그들 사이에 열린 결제 채널이 없다면?" 그들은 중개인을 통해 갈 수 있습니다.

Molly와 Steve 모두 Chuck과 결제 채널이 열려 있으므로 새 채널을 열 필요 없이 Chuck을 통해 거래할 수 있습니다.

이제 이것은 이론적으로 신뢰할 수 있는 거래이며 비결은 안전한 방식으로 거래하는 것입니다. 이를 위해 라이트닝 네트워크는 HTLC(Hashed Time Lock Contracts)를 구현합니다.

Molly는 Steve에게 0.5 BTC를 지불하려고 합니다. 이를 위해 Steve는 값(기본적으로 확인 코드 또는 키)을 생성해야 합니다. 그런 다음 이 값의 해시를 생성하여 Molly에게 보냅니다. 이 서면 설명을 단순화하기 위해 값에 V를 사용하고 해시에 H를 사용합니다.

Molly가 H를 받으면 Chuck과 공유합니다. Chuck이 V를 공개하면 Molly는 Chuck에게 0.5 BTC를 보낼 것입니다. V를 얻기 위해 Chuck은 V와 교환하여 Steve에게 자신의 BTC 0.5를 보냅니다. 일단 그가 이 가치를 갖게 되면 그는 V를 Molly에게 보내고 0.5BTC를 받습니다. 이것은 Molly에서 Steve에게 0.5 BTC를 효과적으로 전송합니다.

구체적인 프로세스는 다음과 같습니다.

스티브가 V와 H 생성 → 스티브가 H를 몰리에게 전송 → 몰리가 H를 척에게 전송 → 척이 BTC를 스티브에게 전송 → 스티브가 V를 척에게 전송 → 척이 V를 몰리에게 전송 → 몰리가 BTC를 척에게 전송

따라서 값(V)은 트랜잭션의 수신/잠금을 의미하는 해시(H)에 대한 확인 코드/키로 사용됩니다.

"하지만 Molly는 Chuck이 그녀에게 준 V가 합법적이라는 것을 어떻게 압니까? Chunck이 돈을 지불한 후 스티브가 도망쳤다면?"

nLockTime이 모든 사람이 양방향 결제 채널에서 정직해야 하는 것을 의무화하는 것처럼 해시된 타임락 계약은 모든 당사자가 이에 대한 책임을 지게 합니다.

HTLC를 사용하면 거래되는 비트코인 ​​자금이 다중서명 지갑에 다시 잠기며 값(V)과 해시(H)가 a) 또는 b) 제한 시간 후 계약이 만료된 후에만 잠금 해제될 수 있습니다.

사실상 이것은 Molly와 Chuck이 Molly가 Steve에게 지불하기로 합의할 때 그녀가 HTLC를 사용하여 Chuck에게 빚진 비트코인을 다중서명 지갑에 잠그는 것을 의미합니다. Chuck이 Steve에게 돈을 지불하고 V를 받으면 HTLC에 V와 H를 입력하여 Molly가 지불한 비트코인을 받을 수 있습니다. 또는 Chuck이 거래를 완료하지 못하고 일주일 후에 계약이 만료되면 Molly의 비트코인이 해제되어 그녀의 개인 지갑에 다시 입력됩니다.

Chuck과 Steve의 자체 결제 채널에서도 동일한 작업이 발생합니다. Chuck은 Steve가 V를 공개할 때까지 자신의 비트코인을 Steve에게 넘길 수 없습니다. Steve가 V를 공개하면 Chuck은 Molly의 자금에 접근할 수 있고 Steve는 Chuck의 BTC를 받게 됩니다.

이론적으로 이 프로세스는 여러 지불 채널과 여러 사람과 함께 실행할 수 있습니다.

요약: 라이트닝 네트워크가 중요한 이유


복잡한 주제이고 쉽게 설명하기는 어렵지만 이것을 읽는 것은 진정한 사랑입니다.

개요: 라이트닝 네트워크는 개인이 모든 트랜잭션을 온체인에 기록하지 않고도 비트코인을 여러 번 교환할 수 있는 오프체인 시스템입니다. 블록체인에는 두 개의 트랜잭션(열림과 닫힘)만 기록되고 다른 모든 트랜잭션(최대한 많이)은 오프라인 노드를 통해 처리됩니다.

이 모델에는 몇 가지 주요 이점이 있습니다.

  • 효율적인 소액 결제: 라이트닝 네트워크는 소액 결제에 맞춰져 있습니다. 전송된 가치를 초과하는 과도한 수수료를 지불하는 대신 라이트닝 네트워크를 통해 사용자는 비트코인 ​​네트워크를 직접 거치지 않고도 소량의 통화를 서로 보낼 수 있습니다. 그들은 여전히 ​​노드 운영에 대한 수수료를 지불해야 하지만 이는 비트코인 ​​네트워크 수수료에 비하면 미미합니다.

  • 확장성 및 대기 시간 솔루션: 이전 주장과 일관되게 라이트닝 네트워크는 비트코인 ​​네트워크 부풀림을 줄일 것입니다. 온체인 트랜잭션의 수를 줄이면 채굴자의 작업이 줄어들어 트랜잭션 시간이 단축되고 수수료가 낮아집니다. 모든 거래가 블록체인의 공개 원장에 기록되지 않아도 된다면 네트워크는 더 원활하게 운영될 것입니다. 또한 라이트닝 네트워크 트랜잭션은 온체인 트랜잭션보다 훨씬 빠릅니다.

현재 Lightning Network는 Bitcoin, Litecoin 및 Vertcoin을 지원합니다. 라이트닝 네트워크는 아직 베타 버전이며 게시 시점에 메인넷 출시가 확인되지 않았습니다.


BFTF技术社区联盟
作者文库