속도에 따른 확장: 비트코인 ​​라이트닝 네트워크 설명

게시 됨: 2022-03-11

비트코인 라이트닝 네트워크는 비트코인이 주류로 채택되는 것을 막는 모든 문제에 대한 솔루션으로 알려진 독립적인 솔루션입니다. 황량한 확장 문제를 해결하고, 즉시 거래를 하고, 거래 수수료를 최소화하고, 블록체인에서 거래를 제거한다고 주장합니다. 핵심 비트코인과 독립적인 시스템이 어떻게 이러한 개선 사항을 제공할 수 있습니까? 확인 없이 안전한 거래를 제공함으로써 어떻게 비트코인의 기존 규칙을 위반할 수 있습니까? 비트코인 라이트닝 네트워크란 무엇입니까?

이 기사에서 우리는 비트코인 ​​라이트닝 네트워크가 무엇인지, 어떻게 보장할 수 있는지, 그리고 현재 상태를 탐구할 것입니다.

참고: 이 기사는 Bitcoin에 익숙하다고 가정합니다. 암호 화폐의 작동 방식에 익숙하지 않거나 복습이 필요한 경우 입문자를 위한 암호 화폐: 비트코인 ​​및 그 너머를 읽으십시오.

전제 조건: 비트코인 ​​스케일링 문제

Bitcoin 스케일링 문제를 알고 있다면 이 섹션을 건너뛰어도 좋지만 그렇지 않거나 복습이 필요한 경우 계속 읽으십시오.

비트코인에는 스케일링 문제가 있습니다. 비트코인은 모든 거래를 블록이라는 데이터 구조에 저장하도록 설계되었습니다. 블록은 이전 블록에 대한 정보, 채굴 보상에 대한 기타 데이터를 포함하며 대부분의 블록은 거래 데이터일 뿐입니다. 블록 크기도 최대 1MB로 고정됩니다. 이 마지막 비트가 문제입니다.

블록의 크기는 1MB이고 블록은 10분마다 생성되기 때문에 트랜잭션이 SegWit(나중에 나올 예정)이 아니라고 가정하면 네트워크는 초당 최대 3.3~7개의 트랜잭션을 처리할 수 있습니다. 수십억 명의 인간과 기계가 대량으로 사용하도록 설계된 통화의 경우 초당 7건의 거래는 충분하지 않습니다. 반면 Visa는 초당 24,000건의 거래를 처리할 수 있다고 주장합니다.

트랜잭션 수가 증가하기 시작하면 개별 트랜잭션이 제한된 블록 공간에 포함되기 위해 서로 경쟁하므로 블록에 포함될 가능성이 감소하기 시작합니다. 채굴자가 블록에 포함할 거래를 임의로 결정할 수 있으므로 이러한 경우 채굴자가 거래를 포함하도록 장려하는 유일한 방법은 거래 수수료를 높이는 것입니다. 그러나 이것은 트랜잭션 수수료가 $14.86인 $92.98에 대한 이 192바이트 트랜잭션과 같이 트랜잭션을 엄청나게 비싸게 만들기 시작합니다.

그렇다면 비트코인을 어떻게 "확장"합니까? Great Scaling Bitcoin Flamewars에는 세 가지 주요 사고 학파가 있습니다.

  • 블록 크기 증가: 2X, 8X, …, ∞X
  • 소규모 거래: SegWit et al.
  • 사이드체인: 비트코인 ​​라이트닝 네트워크

비트코인 블록 크기 늘리기

이것은 이해하기 매우 간단합니다. 1MB의 블록 제한이 문제인 경우 더 크게 만드십시오! 이에 대한 논쟁은 치열했고 지금도 계속되고 있다. 결국 2017년 8월 1일 비트코인(BTC)이 포크되어 비트코인캐시(BCH)가 탄생했습니다. 둘 사이의 주요 차이점은 BCH에 8MB 블록이 있다는 것입니다. 이렇게 하면 블록이 대부분 비어 있고 수수료가 매우 저렴합니다.

그러나 8MB 블록은 총 BCH 블록체인 크기가 훨씬 더 빠른 속도로 증가할 가능성이 있음을 의미하므로 저장 비용이 광부 장면에 진입하는 데 훨씬 더 높은 장벽이 됩니다. 주장은 이것이 블록체인을 보호하는 총 채굴자의 수를 줄여서 비트코인 ​​네트워크의 탈중앙화와 전반적인 보안을 감소시킨다는 것입니다.

더 큰 블록에 대한 또 다른 비판은 문제 자체를 해결하지 못한다는 것입니다. 오히려 일시적으로 문제를 패치합니다. 더 큰 블록에는 항상 최대 제한이 있으며 최대 제한은 항상 우리가 달성하려는 목표 제한(초당 24,000건의 트랜잭션)보다 훨씬 작습니다. 더 큰 8MB 블록이 있더라도 BCH는 초당 61개의 트랜잭션으로 제한됩니다.

소규모 거래: 분리된 증인

다른 솔루션은 현재 트랜잭션 형식이 가장 효율적이지 않고 동일한 블록에 더 많은 트랜잭션을 포장하는 것을 목표로 한다고 지적합니다. 이들 중 가장 주목할만한 것은 BIP 91을 통해 제안되고 2017년 8월 25일 블록 481824에서 활성화된 Segregated Witness(SegWit)입니다. SegWit은 이제 Bitcoin의 일부입니다. 기뻐하십시오!

Non-SegWit 및 SegWit 블록 비교
David A. Harding의 일러스트레이션을 기반으로 한 Non-SegWit 및 SegWit 블록 비교

SegWit은 트랜잭션에서 서명 데이터를 가져와 트랜잭션 블록과 별도의 구조에 저장하므로 개별 트랜잭션을 더 작게 만들고 각 블록 내 제한된 공간을 더 잘 사용할 수 있습니다. 이 구조는 블록체인을 동기화할 때 선택 사항이므로 생략된 디스크 크기가 줄어듭니다.

이는 또한 트랜잭션 가단성 문제에 대한 솔루션으로 이어지며 SegWit 출력만 사용하는 트랜잭션은 더 이상 취약하지 않습니다.

비트코인 라이트닝 네트워크

라이트닝 네트워크는 서명되었지만 브로드캐스트되지 않은 피어 간의 거래를 전송하고 자금의 최종 결제에만 비트코인 ​​블록체인에 의존하는 두 번째 레이어 네트워크입니다. 이는 트랜잭션이 블록 크기에 전혀 제한되지 않고 확인 시간이 관련이 없으며 비트코인 ​​블록체인이 발생하는 모든 트랜잭션을 저장할 필요가 없음을 의미합니다.

누가 비트코인 ​​라이트닝 네트워크를 개발했습니까? Joseph Poon과 Thaddeus Dryja가 작성한 백서에 처음 설명되었지만 이후에 사양 및 구현에 기여하는 타사 개인 및 회사와 함께 커뮤니티 활동으로 발전했습니다.

자세한 정보는 나중에.

SegWit 대 증가된 블록 크기 대 Bitcoin 라이트닝 네트워크

그렇다면 어떤 것이 가장 좋습니까? 내 대답의 근거가 될 경험적 증거가 없으므로 이것이 의견입니다. 블록 공간(라 세그윗)을 더 잘 사용하는 것이 좋다고 생각하지만 블록 크기의 증가는 미래를 향한 골대. 비트코인 사용이 상당히 증가한다면 블록 크기의 또 다른 증가에 대해 토론하는 첫 단계에서 우리 자신을 발견하게 될 것입니다.

동의하지 않는다? 아래에 의견을 남겨주세요!

즉, Bitcoin Lightning과 같은 대체 결제 네트워크가 훌륭한 아이디어라고 생각하지만 실제 세계에서 어떻게 작동하는지 보고 싶습니다. 현재로서는 아버지와 제가 사용할 수 있는 상태가 아닙니다.

비트코인 라이트닝 네트워크 설명

나는 이미 라이트닝 네트워크가 서명되었지만 브로드캐스트되지 않은 피어 간의 거래를 전송하고 자금의 최종 결제를 위해서만 비트코인 ​​블록체인에 의존하는 두 번째 레이어 네트워크라고 언급했습니다.

이것이 실제 생활에서 어떻게 작동하는지 살펴보겠습니다.

라이트닝 노드 및 채널

라이트닝 노드는 네트워크 방식으로 작동하고, 거래를 검증하고, 다른 노드와 통신한다는 점에서 비트코인 ​​노드와 매우 유사하고 달리 실행되지만 비트코인 ​​노드가 역사적으로 하지 않았던 일을 수행합니다. 자금을 보유하고 자동화된 금융 중개자 역할을 합니다. , 악의적인 행동에 대해 Lightning "채널"을 적극적으로 모니터링하고 방어적으로 대응합니다(이는 나중에 자세히 설명됨).

이러한 기능을 수행하려면 노드에 돈이 필요합니다.

참고: 이 예에서는 처음에 모든 사람이 인터넷에 연결된 비트코인 ​​라이트닝 네트워크 노드를 24시간 연중무휴로 실행한다고 가정합니다. 이는 분명히 사실이 아닐 것입니다. 이 가정은 Lightning Wallet 대 Lightning Node 섹션에서 깨집니다.

라이트닝 채널 생성

당신과 당신의 친구 Bob이 상당한 양의 금융 거래를 포함하는 관계를 가지고 있다고 가정합니다. 당신은 점심을 먹거나 영화를 보기 위해 이따금 함께 어울리곤 합니다. 때때로 당신 중 한 사람은 현금이 부족하고 때로는 다른 사람과 당신은 대개 나중에 서로를 벤모잉하게 됩니다.

그러나 암호화 옹호자로서 둘 다 Lightning을 시도하고 각각 절반의 비트코인으로 균등하게 자금을 조달하는 새로운 상호 채널을 만들기로 결정합니다(많은 점심 식사).

비트코인 라이트닝 네트워크에서 채널을 생성하는 두 노드의 그림

새 라이트닝 채널을 만드는 것은 트랜잭션을 승인하기 위해 두 서명이 모두 필요한 다중 서명 비트코인 ​​지갑을 만드는 것과 같지만 한 가지 차이점이 있습니다. 귀하는 각각 라이트닝 네트워크 백서에 따라 서명되었지만 아직 공개되지 않은 "약정 거래"를 받고 초기 예치금을 돌려줍니다. 이렇게 하면 우정이 험난하거나 둘 중 한 사람이 돈이 필요한 경우 이 거래를 방송하여 일방적으로 채널을 닫을 수 있고 모든 사람이 정당한 금액을 받을 수 있습니다.

채널이 있는 사람들과 번개 거래 만들기

어느 날 다시 점심을 먹으러 나가서 결국 밥에게 8,000 사토시(이 글을 쓰는 시점에서 0.31 USD)에 해당하는 빚을 지게 되었다고 가정해 보겠습니다. 이때 비트코인을 사용하여 이 금액을 정산하면 0.10 USD를 지불하고 1시간을 기다려야 하므로 불가능합니다.

채널 상태를 업데이트하는 두 노드의 그림

그러나 Lightning을 사용하면 "약정 거래"를 두 사람 모두 보유할 수 있는 새 거래로 간단히 교체하여 이 작업을 무료로 수행할 수 있습니다. 이번에만 Bob은 8,000개의 사토시를 더 가지고 있고 당신은 더 적게 가지고 있습니다. (이 시점에서 이전 트랜잭션을 브로드캐스팅하여 부정 행위를 생각하고 있다면 채널 닫기 섹션까지 기다리십시오.)

거래를 브로드캐스트하고 채널을 닫을 수 있지만 채널을 닫으면 거래 수수료가 발생하고 어느 쪽도 즉시 금액이 필요하지 않으므로 채널을 보유하고 미래 부채를 청산하는 데 사용할 수 있습니다.

채널이 없는 사람들과 번개 거래하기

어느 날 Bob이 다른 친구인 Alice를 초대하고 샌드위치를 ​​먹으며 격렬한 시간을 보낸 후 상점에서 Coinye(Kanye West가 소송을 제기한 후 버려진 암호 화폐)만 수락했기 때문에 둘 다 Alice에게 빚을 졌습니다. 가지고.

다중 홉 번개 트랜잭션의 그림

이제 Bob이 Alice와 채널을 개설하고 Lightning을 사용한다고 가정하면 Bob을 통해 Alice에게 지불할 수도 있습니다. 귀하의 노드는 귀하와 Alice 사이의 최적 경로를 계산합니다. 이 경우에는 Bob이 금융 중개자입니다. 중개인은 모두 선불로 돈을 지불하고 원하는 경우 약간의 수수료를 받을 수 있습니다.

채널 폐쇄: 두 가지 좋은 방법과 나쁜 방법

라이트닝 채널을 닫는 방법에는 세 가지가 있습니다.

  1. 협력: 채널의 당사자 중 하나가 Bitcoin Lightning 채널 폐쇄를 시작하고 다른 당사자가 승인합니다. 시간 잠금이 없으며 승인이 확인되는 즉시 돈을 사용할 수 있습니다. 이것은 채널을 닫는 "최상의" 방법입니다.
  2. 일방적으로: 채널의 당사자 중 하나는 상대방이 승인하지 않더라도 당사자 중 하나가 원할 때 비트코인 ​​라이트닝 채널을 닫을 수 있습니다. 그 결과 상대방이 "Breach Remedy" 거래(아래 시나리오 3 참조)로 종료에 대해 이의를 제기할 수 있는 시간 잠금이 발생하지만, 그런 일이 발생하지 않는다고 가정해 보겠습니다. 시간 잠금이 만료되면 자금을 자유롭게 사용할 수 있습니다. 이것은 채널을 닫는 "허용되는" 방법입니다.
  3. 위반 구제: 번개 거래는 자금 분할이 다양한 서명된 거래의 타임스탬프 목록이므로 한 당사자가 더 많은 자금을 보유하고 있는 이전 거래로 채널을 일방적으로 폐쇄하여 속임수(신뢰 위반)를 시도할 수 있습니다(참조 시나리오 2). 이로 인해 시간 잠금이 발생하고 이 기간 동안 피해를 입은 당사자는 자신의 자금을 회수할 수 있을 뿐만 아니라 Bitcoin Lightning Network 백서에 설명된 대로 "Breach Remedy" 트랜잭션을 사용하여 채널의 전체 용량을 쓸어넘길 수 있습니다.

라이트닝 노드 대 라이트닝 지갑

위의 예에서는 Lightning "노드"라는 용어를 사용했는데, 이는 인터넷에서 24시간 연중무휴로 노드를 가동해야 한다고 생각하게 만들었습니다. 네, 맞습니다. 라이트닝 네트워크는 노드가 항상 온라인 상태가 되도록 설계되어 네트워크가 최대 용량에 가깝게 작동하도록 합니다. 그리고 부정 행위 시도를 모니터링하기 위해 온라인에 접속한 사람이 아무도 없고 성공하면 채널은 일반적인 일방적인 폐쇄와 매우 유사하게 폐쇄되어 자금이 부족하게 됩니다.

그러나 Lightning Network 백서는 이 문제에 대한 해결책을 설명합니다.

… 상대방이 무효화된 약정 거래를 브로드캐스트했는지 확인하기 위해 주기적으로 블록체인을 모니터링하거나 제3자에게 그렇게 하도록 위임해야 합니다. 이 제3자에게 침해 구제 거래를 제공해야만 제3자를 위임할 수 있습니다. 거래 상대방이 악의적인 경우 이러한 거래를 블록체인이 방송하는 것을 시청하도록 인센티브를 받을 수 있습니다. 제3자는 상대방이 악의적으로 행동할 때만 조치를 취할 수 있으므로 이 제3자는 채널을 강제로 폐쇄할 권한이 없습니다.

이러한 제3자는 종종 감시탑이라고 불리며 사용자의 상시 접속 부담을 제거해야 합니다.

라이트닝 네트워크의 상태

2019년 3월 27일 기준 비트코인 ​​라이트닝 네트워크:

  • 7.5,000개 이상의 노드 보유
  • 거의 40,000개의 열린 채널 보유
  • 1,000 BTC가 조금 넘는 용량

다음과 같은 속도로 성장하고 있습니다.

  • 시간당 25개 노드
  • 시간당 304개 채널

Play 스토어에 Eclair Lightning Wallet을 포함하여 많은 Lightning Network 노드 구현이 있습니다. 아직 실험적이고 세련되지 않고 자금을 받는 중요한 기능이 부족하지만 제 생각에는 생태계는 작지만 건강하게 성장하고 있습니다.

사양 및 구현

비트코인 라이트닝 네트워크 사양은 RFC(Request for Comments) 상태이며 BOLTS(Basis of Lightning Technology)라는 일련의 문서로 구성됩니다. BOLTS는 이 출판물과 환영 기고문을 기점으로 끊임없이 변화하고 있습니다.

Lightning Network 노드의 여러 BOLT 호환 구현도 있습니다.

  • LND: Lightning Network Daemon의 줄임말로 주로 Go 기반 구현입니다.
  • Eclair: 주로 Scala 기반 구현입니다.
  • C-lightning: 주로 C 기반 구현입니다.

더 많은 리소스는 이 기사의 결론을 참조하십시오.

조명 네트워크의 장점과 비판

그러면 라이트닝 네트워크로 무엇을 얻을 수 있습니까?

  • 진정한 소액 거래(센트 단위)
  • 상상할 수 있는 최저 수수료(센트 단위)
  • 개인 정보 보호 수준(블록체인 기록 없음)

그러나 앞서 말했듯이 라이트닝 네트워크에 대한 여러 비판이 있습니다. 이 중 일부는 라이트닝이 직면하고 있는 유효하고 현재 아직 해결되지 않은 과제입니다.

  • 라우팅 및 중앙 집중화: 라이트닝 네트워크는 채널 상태가 매일 바뀌고, 열리고 닫히면서 끊임없이 유동적이며, 대체할 역사의 중앙 저장소가 있기 때문에 지불 경로를 매번 새로 계산해야 합니다. 이것은 네트워크가 작을 때 훌륭하지만 충분히 커지면 작은 하드웨어에서 실행되는 작은 노드가 경로를 계산할 처리 능력이 없을 수 있습니다. 이 문제에 대한 해결책은 쿼리할 수 있는 고급 지식을 갖춘 중앙 집중식 슈퍼노드일 수 있습니다. 이것은 여기에서 더 자세히 설명됩니다.
  • 너무 많은 대출: 이 게시물에서 가장 잘 설명된 내용은 이더리움의 공동 설립자인 Vitalik Buterin도 참여했습니다. 기본적으로 이것은 10달러를 지불하기 위해 10개의 홉 체인이 모든 사람에게 10달러를 선불로 지불해야 하기 때문에 기본적으로 말합니다. 100달러의 자금을 옮기게 됩니다. 어느 순간 대량의 이동이 불가능해집니다. 이것이 현실 세계에서 사실인지 아닌지는 아직 결정되지 않았지만 그럼에도 불구하고 이것은 설득력 있는 주장입니다.

내가 어떤 비판을 놓쳤습니까? 아래 의견에 알려주십시오.

추가 읽을거리 및 리소스

마침내 라이트닝 네트워크가 무엇인지 이해하셨기를 바랍니다. 그 밑에는 암호화 토큰 교환에 기반을 둔 메시징 시스템일 뿐입니다. 아직 완벽하거나 널리 사용되지는 않지만 인상적인 엔지니어링 부분이 아니라는 의미는 아닙니다.

비트코인 라이트닝 네트워크 백서 원본을 읽는 것이 좋습니다. 추가 읽을거리와 응용 프로그램, 책, 논문 목록을 추천할 수도 있지만 GitHub 사용자 Ben Congdon은 이미 그렇게 했기 때문에 bcongdon/awesome-lightning-network 확인하는 것이 좋습니다. 고마워 벤! Bitcoin 개발자로서 이 새로운 기술에 대해 가능한 한 많이 읽어야 합니다.

너무 많은 정보였다면 재미있는 메모로 끝내자. 다음은 비트코인의 좋은 시절에 대해 이야기하려는 Satoshi Craig Wright의 재미있는 비디오입니다.