쉽게 설명하는 블록체인, 라이트닝 네트워크(Lightning Network)란?

in #kr6 years ago

비트코인은 초당 몇개의 거래가 가능할까?

비트코인의 장부인 블록의 용량은 1MB 정도이다.

1개의 거래를 기록하는데 필요한 용량은 250바이트 정도.

블록은 10분에 1개가 생성되도록 설정되어 있으므로

1초에 7개의 거래가 가능하다.

Visa, Master Card의 거래는 1초에 수백만건의 거래가 가능한 걸 봤을때 터무니 없는 숫자.

이를 토대로 계산을 해보면, 1년에 2억2천만개의 거래가 가능한데, 이는 조그마한 하나의 시골마을 거래량도 커버가 불가능한 정도.

비트코인이 국경없이 유통되는 화폐인 점을 고려했을때는 더더욱 존재 자체가 어불성설일 정도.

그렇다면, 블록 크기를 늘리면 되지 않나?

  • 가장 단순하게 생각하면 10분에 블록이 1개가 생성되므로, 블록의 용량을 크게하면 그 안에 들어갈 수 있는 거래가 많아져서 초당 거래량이 더욱 늘어날 수 있다고 볼 수 있다.

그러면 하루에 10억개의 거래를 할 수 있게 만드는 블록사이즈인 1.6GB로 블록 크기를 크게한다고 가정하자. (블록 자체의 크기를 바꾸는 On-chain scaling)

그렇게 된다면, 대도시 하나의 거래량이 수용 가능해 질 수 있다. (전 세계의 거래량은 아직 한참못따라감)

여기서 문제는 1.6GB의 용량에 들어오는 거래량을 10분에 한개씩 연산할 수 있는 컴퓨터는 거의 없다는 점.

이렇게 되면 '분산화'라는 개념 자체가 사라지고 이를 수용할 수 있는 자본가들만 거래를 처리하는 '중앙화'로 남게 된다.

이것이 비트코인이 가장 골머리를 앓고 있는 '확장성(scalability)' 문제이다.

라이트닝네트워크1.jpg

이 극소량의 거래처리 문제를 해결하기 위해 나온 것이 Lightning Network(라이트닝 네트워크)이다.

라이트닝 네트워크는 블록 내부의 크기를 키워서 대량의 거래를 가능케하는 'On-chain Scaling'이 아닌 블록체인 바깥에서 결제 채널을 따로만들어 낮은 수수료로 다량의 소액거래를 처리할수 있게 만드는 'Off-chain Scaling'이다.

블록체인 바깥에 결제 채널을 만든다니 이게 무슨 말이야....?

블록체인 바깥에 결제 채널을 만든다는 것은 거래의 내용을 빠르게 기록하기 위한 거래기록소를 따로 만든다는 것이고 그것이 결제채널이라 부르는데, 이 결제채널은 거래 당사자들의 ‘공개키’가 있으면 형성이 가능하다.

이 결제 채널이 형성되는 과정을 살펴보면

  1. ‘Funding Transaction’이라는 거래기록을 생성하는데 이 ‘Funding Transaction은 거래 당사자 간 거래 내용이고 블록체인에 직접 기록되는 내용이다.

  2. ‘Commitment Transaction’을 형성하는데 이 거래기록은 블록체인 내부에 저장되지 않은 상태로 기록이 진행된다.

  3. 생성된 Commitment Transaction 기록에 대하여 서명이 완료가 되면 이 기록은 Funding Transaction에 기록될 수 있는 상태가 되는 것이다.

  4. 생성된 Funding Transaction에 Commitment Transaction 기록이 들어오고 이 Funding Transaction 또한 서명이 완료되면 결제채널 형성이 완료된 것이다.

이렇게 기록된 Funding Transaction은 블록체인 상에 통보되어 기록되는 것이다.

결국 Commitment Transaction이 다량의 거래를 빠르게 처리할 수 있는 핵심인데,

Commitment Transaction은 거래당사자들의 잔고를 블록체인 바깥에서 기록하고 있으며 당사자들이 원할 때 언제든 블록체인에 기록할 수 있기 때문에 빠른 처리가 가능한 것이다.

쉽게 예를들면, 블록체인 네트워크는 하나의 법원이고 라이트닝 네트워크의 Commitment Transaction 기록은 요점만 간단히 쓴 계약서라고 볼 수 있는데,

우리가 일상생활에서 계약한 내용들은 대부분 법원까지 가지 않고 지켜지는 경우가 대부분이듯이 블록체인이 그 법원의 역할을 해주는 것이고, Commitment Tx는 계약서로서 빠른 일처리를 진행하도록 해주는 셈인 것이다.

그렇기 때문에 비트코인 거래를 라이트닝 네트워크로 하던 중 문제가 발생한다면 블록체인 기록에서 그 진위여부를 가리면 된다.

그런데 여기서 문제가 발생할 수 있다.

만일 A가 B에게 1BTC를 전송했는데 A의 입장에서 유리하도록 1BTC를 전송하고도 1BTC를 전송하지 않은(그렇게 되면 A는 1BTC를 보내고도 1BTC를 이득볼 수 있음) Commitment Tx 기록을 블록체인에 기록하게 될 수 있는데,

이 때 블록체인 상에서는

  1. 이전 Commitment Tx와 1BTC 전송 후 Commitment Tx 기록 중 어느 것이 유효한지 구분하고
  2. 이전의 거래를 무효화 시킬 수 있어야한다.

그렇다면 이전 Commitment Tx를 어떻게 무효화 시킬 것인가?

  1. 비트코인의 타임스탬프 기능을 사용하여 Commitment Tx 기록을 취소할 수 있는 거래로 만드는 것이다. 예를 들면 블록체인 상에 기록된지 3일이 되지 않은 Commitment Tx들은 거래를 취소할 수 있도록 하는 것이다.

  2. 특정 거래 당사자가 이전 Commitment Tx를 블록체인에 공개한 경우 해당 당사자를 식별하고 취소할 수 있는 거래를 취소한 후 해당 당사자에게 벌금(penalty)을 부과 하는 방식으로 진행한다.

이러한 원리로 블록체인 바깥에 결제 채널을 만들어 블록체인에 기록될 때 까지 기다릴 필요 없이 대량의 소액거래를 빠른 시간 내에 성사시킬 수 있게 되는 것이다.

라이트닝 네트워크는 현재도 논의중인 기술이지만 비트코인의 확장성 문제를 해결할 수 있는 가장 현실적인 방법으로 떠오르고 있다.

Sort:  

우어 정말 오랜만에 글 올리셨네요 ㅎㅎ 반갑습니다~~~

아넵~ 반갑습니다!