레이어 2 확장성 솔루션 시리즈 (1): 레이어 2 확장성 솔루션, 이제는 제대로 알자 !

by | Jan 23, 2020

1. 레이어 1 블록체인의 확장성 문제란 무엇인가요?

[그림 1. 레이어 1 확장성 문제 종류]

비트코인이나 이더리움과 같은 레이어 1 블록체인을 통해 사용자들은 신뢰할 수 없는 상대방과의 거래를 중개 주체 없이 안전하고 투명하게 진행할 수 있게 되었습니다. 이러한 장점에도 불구하고 블록체인의 상용화는 아직 미진한 수준입니다. 블록체인상용화의 주요한 걸림돌 중 하나로 레이어 1 블록체인의 ‘확장성 문제’를 들 수 있습니다.

레이어 1 블록체인의 확장성 문제는 크게 두 가지로 나눠볼 수 있습니다.

  • 수직적 확장성(Vertical Scalability)
  • 수평적 확장성(Horizontal Scalability)

수직적 확장성

수직적 확장성이란 TPS를 의미합니다. TPS(Transaction Per Second)란 블록체인이 초당 처리할 수 있는 거래(Transaction) 수를 의미합니다. 레이어 1 블록체인의 문제점은 바로 이 TPS가 매우 낮다는 점입니다.

TPS가 낮으면 거래 처리가 지연되어 블록체인 기반 서비스를 이용할 유인이 감소합니다. 통상 비트코인의 경우 7 TPS, 이더리움의 경우 20 TPS를 기록한다고 합니다. 이는 기존 결제 시스템인 VISA 카드의 24,000 TPS에 비하면 현저히 낮은 수준입니다. 동일한 시간 내에 VISA 카드가 비트코인에 비해 약 3000배 이상의 거래를 처리할 수 있다는 것입니다. . 이는 레이어 1 블록체인의 부족한 거래 처리 능력을 단적으로 보여줍니다. 실생활에서 비트코인으로 커피 한 잔을 사먹으려면 결제 확정까지 짧게는 수십 분, 길게는 하루가 넘게 기다려야 할 수도 있습니다. 이처럼 결제와 같은 일상수준의 거래 조차 기존 중앙화된 플랫폼들에 비해 처리속도가 현저히 떨어지기 때문에, 일반사용자나 기업들은 블록체인 기반 서비스를 사용할 유인이 감소합니다.

수평적 확장성

수평적 확장성이란 암호자산의 상호운용성을 의미합니다. 암호자산 상호운용성이란 레이어 1 블록체인 상호간 암호자산을 교환하는 것을 의미합니다. 결론부터 말하자면 현재 레이어 1 블록체인은 암호자산의 상호운용성이 부재합니다. 단적인 예로, 비트코인을 가지고 이더리움 게임 DApp 내 게임 아이템을 살 수 없습니다.

암호자산의 상호운용성이 부재하면 레이어 1 블록체인 기반 서비스의 확장이 제한됩니다. 유저는 다양한 레이어 1 블록체인의 서비스를 모두 이용하기 위해, 거래소 등을 통해 매 번 자산을 교환해야 하는 매우 불편한 UX를 거쳐야 합니다. 실생활에서 우리는 현금 혹은 카드와 같이 하나의 매개체를 통해 식당, 편의점, 병원 등 다양한 재화나 서비스를 이용합니다. 그러나 블록체인에서는 이 모든 서비스를 이용하기 위해서는 식당 코인, 편의점 코인, 병원 코인 등 각 서비스 코인을 보유해야만 사용 가능합니다. 이런 절차가 불편한 유저들은 블록체인 기반 서비스를 이용하지 않을 것입니다. 레이어 1 블록체인 내 서비스들의 유저들이 있다 하더라도, 해당 레이어 1 블록체인 서비스만을 이용하는 것으로 제한됩니다.

현재 레이어 1 블록체인의 ‘확장성 문제’에 대한 해결책으로 크게는 두 가지가 있습니다. 레이어 1 블록체인 자체적으로 이 문제를 해결하거나 레이어 2 확장성 솔루션을 이용하는 것입니다. 두 가지 해결책에 대해서 비트코인 핵심 개발자인 아담 벡은 ‘비트코인의 진화는 레이어 2에 주목해야 한다.’라고 말했고, 비탈릭 부테린 역시 ‘레이어 1’의 기본 단계 업그레이드를 수행해야 하고 호환성을 염두에 두고 개발되어야 하지만, 결국 시간이 지남에 따라 ‘레이어 2’의 혁신에 더 집중하게 될 것으로 보인다’라고 언급했듯이, 레이어 2 확장성 솔루션이 더 많은 주목을 받고 있습니다.

디콘은 이 글에서 레이어 2 확장성 솔루션이란 무엇이며, 라이트닝 네트워크, 플라즈마 등으로 대표되는 이들은 어떤 기술을 통해 ‘확장성 문제’를 해결하는지 알아보도록 하겠습니다.

2. 레이어 2 확장성 솔루션이란 무엇인가요?

Binance Academy에 따르면 “레이어 2란 기존 블록체인 시스템 위에 얹히는 프레임워크로, 오프체인(Off-chain) 솔루션이라고도 한다. 레이어 2의 주 목표는 주요 암호화폐 네트워크의 거래 속도 및 확장성 문제를 해결하는 것이다”라고 정의합니다. Consensys는 “레이어 2란 거래를 오프체인에서 처리하는 확장성 기술이다”라고 말합니다. 이외 다른 기관이나 전문가들도 레이어 2 솔루션에 대해 각자 정의를 내리면서 다소 차이는 있지만 공통적으로 “레이어 2란 오프체인에서 레이어 1 블록체인의 확장성 문제를 해결하는 솔루션”임을 언급합니다. 여기서 오프체인이란 레이어 1 블록체인 외부의 블록체인 혹은 연산 장치 등을 의미합니다. 그렇다면 레이어 2 확장성 솔루션은 오프체인을 통해 어떻게 레이어 1 블록체인의 확장성 문제를 해결하는지 알아보겠습니다.

[그림 2. 레이어 1 확장성 문제 해결을 위한 솔루션]

수직적 확장성 문제의 해결

레이어 1 블록체인 내 거래가 담기는 블록은 규정된 블록 크기가 있습니다. 이 블록 크기에 따라 하나의 블록에서 처리할 수 있는 거래의 수가 제한됩니다. 따라서 하나의 블록이 처리 가능한 거래 수를 초과하는 내용에 대해서는 다음 블록에서 처리되어 그만큼 거래가 지연됩니다.

그렇다면 레이어 2 확장성 솔루션은 이 문제를 어떻게 해결할까요? 예시를 통해 알아보도록 하겠습니다.

비트코인으로 음식값을 받는 식당에서 하루 100건의 주문을 처리하였습니다. 식당 주인인 Dylan은 당장 결제 대금을 받고 싶지만, 현재 비트코인은 하루 10건의 주문만 처리 가능합니다. 해당 문제를 어떻게 해결할까요?

해결책은 두 가지로 나눠볼 수 있습니다.

  1. 레이어 1 블록체인의 성능 향상 : 비트코인 블록 크기를 100건 처리할 수 있는 수준으로 높이거나, 합의방식을 단축시킨다.
  2. 레이어 2 확장성 솔루션 도입 : 100건의 주문을 10건 이내로 만든 후 처리한다.

첫 번째 방식은 100건의 주문을 처리할 수 있도록 레이어 1 블록체인 자체의 성능을 향상시키는 방법입니다. 이는 매우 명확하면서도 간편해보이지만, 실제로 이 방법이 구현되려면, 레이어 1 블록체인 내 이미 정해진 블록 크기 규격 또는 합의방식을 수정해야 하기 때문에 하드포크가 필수적입니다. 하드포크가 이루어졌다고 해도, 부가적인 문제점이 발생할 수도 있습니다. 예를 들어 비트코인의 블록 크기를 늘릴 경우 노드 중앙화, 보안 문제 등이 발생할 수도 있습니다.

두 번째 방식은 레이어 2 확장성 솔루션을 이용하는 방법으로 레이어 1 블록체인의 블록 크기 규격을 수정하지 않고도 이 문제를 해결합니다. 문제는 이게 어떻게 가능하냐는 건데, 위에서 언급한 오프체인을 활용하여 100개의 거래를 블록체인 상 10건 이내의 거래로 간소화하여 이를 구현합니다.

사례를 통해 설명하면, 식당에서 발생한 100건의 거래는 비트코인이 아닌 Dylan Pay(레이어 2 확장성 솔루션)에서 먼저 처리하고 그 결과값에 대해서만 비트코인에 기록하는 방식입니다. 먼저, Dylan Pay는 하루동안 식당에서 발생한 100건의 주문을 10개 이내의 새로운 주문으로 요약합니다. 이후 이를 비트코인에 등재하여 일일 주문을 모두 처리함으로써, 비트코인 내 성능 향상 없이 10건 이내로 해결이 되는 것입니다.

결론적으로 레이어 2 확장성 솔루션은 레이어 1 블록체인이 단위 시간당 처리할 수 있는 거래의 양을 증가시켜 TPS를 상승시키는 효과를 불러옵니다.

수평적 확장성 문제의 해결

레이어 1 블록체인은 각자 독자적인 블록 생성 방식, 해싱 알고리즘 등의 구조를 구축하여, 고유한 암호자산을 생성합니다. 하지만 해당 구조들이 다름에 따라 상호간의 암호자산을 직접 교환할 수 없는 트레이드 오프가 발생합니다. 따라서 비트코인으로 이더리움 내 서비스를 이용하기 위해서는 비트코인을 거래소에서 환전하여 이더리움을 구매한 이후 해당 서비스를 이용해야 하는 번거로움이 있습니다. 레이어 2 확장성 솔루션은 어떻게 이 문제를 해결할까요? 예시를 통해 알아보도록 하겠습니다.

“최근 이더리움에 재미난 유료게임을 개발되었습니다. 비트코인 보유자들 또한 해당 게임에 대한 많은 관심을 갖고 있으나, 해당 게임을 이용하기 위해서는 비트코인을 거래소를 통해 이더리움으로 환전하는 등에 복잡한 절차가 있어 게임 이용을 꺼리고 있습니다. 해당 문제는 어떻게 해결할 수 있을까요?

해결책은 두 가지로 나눠볼 수 있습니다.

  1. 레이어 1 블록체인 간 암호자산 교환 방식 통일 : 모든 레이어 1 블록체인의 블록 생성 방식, 해싱 알고리즘 등을 통일한다.
  2. 레이어 2 확장성 솔루션 도입 : 레이어 1 블록체인 간 자산 기록을 표준화하여 중개한다.

첫 번째 방식은 암호자산 교환 방식을 통일하는 방법입니다. 이는 매우 명확한 방법이지만, 실질적으로 특정 레이어 1 블록체인이 가지는 합의 알고리즘 등의 고유한 특성을 포기하는 방식이기 때문에 사실상 불가능합니다.. 만약 비트코인이 이더리움과 동일한 자산 교환방식을 채택하게 된다면, 더 이상 비트코인이 아닌 하나의 ERC 토큰이 될 것입니다. (물론 해당 하드포크 제안은 무수한 반대표를 맞아 기각될 것입니다)

두 번째 방식은 레이어 2 확장성 솔루션을 이용하는 방법으로 레이어 1 블록체인의 암호자산 교환방식을 수정하지 않고도 이 문제를 해결합니다. 수정하지 않아도 되는 이유는 암호자산을 레이어 1 블록체인 내 동결하여 레이어 2 확장성에 대응하는 암호자산을 발행하는 ‘양방향연결(Two-way Peg) 방식’을 사용하기 때문입니다. 이를 가능하게 하는 레이어 2 확장성 솔루션은 여러 레이어 1 블록체인 간 암호자산 기록을 중개합니다.

이번에도 사례를 살펴보면, 오프체인 솔루션(Lucia Pay)는 비트코인의 자산 기록을 특정 데이터 규격으로 변환하여 해당 기록을 이더리움에서 확인할 수 있도록 합니다. 이더리움 자산 역시 동일한 방법으로 비트코인에서 확인할 수 있습니다. 따라서 Lucia Pay를 통해 비트코인 자산 내역을 증명하고 이더리움에서 사용가능하게 함으로써, 사용자는 보다 편리하게 이더리움 게임을 이용할 수 있습니다.

결론적으로 레이어 2 확장성 솔루션을 이용하여 레이어 1 블록체인 간의 암호자산 교환방식을 통일하지 않으면서도, 안전하게 상호간의 자산 교환을 할 수 있게 됩니다.

3. 레이어 2 확장성 솔루션의 기술 구조적 분류

레이어 1 블록체인의 수직적, 수평적 확장성 문제를 해결하는 레이어 2 확장성 솔루션들은 3가지 기술 구조로 나뉘어집니다.

[그림 3.기술 구조에 따른 레이어 2 확장성 솔루션 분류]

State Channel

State Channel이란 채널이라는 오프체인 공간 내에서 수 많은 거래를 처리하고 그 결과값만을 레이어 1 블록체인에 올려 TPS를 높이는 기술입니다. 레이어 1 블록체인 내 참가자들이 특정 목적을 위해 오프체인 채널을 개설하여 활동을 하고 해당 채널 참가자의 채널 개설 전 상태와 폐쇄 후 상태만 레이어 1 블록체인에 등재합니다.

  • 상태란 블록체인 내 기록되어 있는 참가자의 데이터를 의미합니다.
  • 채널이란 오프체인에서 참가자 간 관계와 공유 상태를 의미합니다.

State Channel의 구현 방식은 최초 개설, 중간 거래, 최종 폐쇄 단계로 나눌 수 있습니다.

  1. 최초 개설: 레이어 1 블록체인 내 서로를 알고 있는 참가자들은 블록체인 내 자신의 토큰을 포함한 상태 중 일부를 동결하여 오프체인 State Channel을 생성합니다.
  2. 중간 거래: State Channel을 개설한 당사자들은 State Channel을 이용하여 거래를 합니다. 이때 매 거래에 대한 합의를 거쳐 거래 내역을 당사자들 모두 보관합니다. 보관한 거래 내역은 블록체인에 등재하지 않아도 체널 폐쇄 후 블록체인 내 성사 및 반영시킬 수 있습니다.
  3. 최종 폐쇄: 당사자 간 특정 목적 달성 후 채널 폐쇄 시, 거래 내역을 전부 시행 및 반영한 최종 상태만 레이어 1 블록체인에 등재하고 동결되었던 상태를 업데이트합니다.

이 중 중간 거래 단계는 당사자들간의 합의를 기반으로 하기 때문에, 중간 거래들의 신뢰가 보장됩니다. 이에 따라 최초 채널 생성, 최종 채널 폐쇄만 블록체인에 등재하더라도 안전하게 거래를 구현할 수 있습니다.

State Channel을 활용하면, 레이어 1 블록체인이 처리해야하는 거래 수가 감소함으로서 레이어 1 블록체인의 수직적 확장성을 향상시킵니다. 레이어 1 블록체인의 감소된 거래 처리 수로 인한 거래 수수료 절감 이외에도 중간 거래들이 오프체인 상에서만 기록되기 때문에 거래 내역이 보호되는 프라이버시 이점도 가집니다.

State Channel은 사용 용도에 따라 Payment Channel과 Generalized State channel로 나눌 수 있습니다. Payment Channel은 오직 토큰 거래 용도로 사용되며 Generalized State Channel은 토큰 거래 뿐만 아니라 블록체인 내 발생하는 모든 상태 변경 활동에 활용 가능합니다.

잘 알려진 Payment Channel은 Lightning Network 등이 있으며 Generalized State Channel은 이더리움 연구 및 투자기관인 L4 의 Counterfactual 등이 있습니다.

OFC (Off-chain Computation)

OFC란 연산 네트워크라는 오프체인에서 레이어 1 블록체인 내 스마트컨트랙트 구동을 위한 코드 실행을 하고, 코드 실행의 결과값만을 레이어 1 블록체인에 기록하여 TPS를 높이는 기술입니다.

  • 연산 네트워크란 연산 노드들이 활동하는 공간입니다.
  • 연산 노드란 연산 요청자가 전송한 코드 실행을 수행하는 노드로, 레이어 1 블록체인 노드와는 별개의 노드도 참가가 가능합니다.

OFC의 구현 방식은 연산 요청, 연산 수행, 연산 검증, 레이어 1 블록체인 기록 단계로 나눌 수 있습니다.

  1. 연산 요청: 연산 요청자는 레이어 1 블록체인 내 OFC 스마트컨트랙트에 실행이 필요한 코드를 전송하고, 연산 수수료를 예치하여 연산을 요청합니다.
  2. 연산 수행: OFC 스마트컨트랙트를 통해 연산을 진행할 노드를 선출하고, 선출 된 노드(들)이 연산을 수행하여 그 결과값을 OFC 스마트컨트랙트에 입력합니다.
  3. 연산 검증: 연산 노드들이 입력한 결과값은 검증 메커니즘을 거칩니다. 검증 메커니즘을 모두 거친 결과값은 최종 결과값이 됩니다.
  4. 레이어 1 블록체인 기록: 연산 요청자는 OFC 스마트컨트랙트를 통해 최종 결과값을 전달 받고, 메인 체인의 노드에게 해당 결과값 기록을 요청하여 최종적으로 메인 체인의 블록에 기록되도록 합니다.

이 중 연산 검증 단계에서 연산 노드 신뢰 Staking, 결과값 Challenge 등 OFC 프로젝트 별로 결과값에 대한 다양한 검증 메커니즘이 존재합니다. 이에 따라 레이어 1 블록체인 내 연산이 오프체인에서 진행되더라도 해당 결과값의 신뢰성이 보장됩니다.

OFC를 활용하면 레이어 1 블록체인의 수직적 확장성 문제를 해결할 수 있습니다. A와 B사이에 잦은 거래가 발생한다면 계약 당사자 중 아무나 지불 조건이 담긴 스마트계약을 생성하고, 해당 스마트컨트랙트의 코드를 OFC에 전송하여 스마트컨트랙트 내 담긴 모든 거래를 단 하나의 거래로 처리할 수 있습니다. State channel과 마찬가지로 레이어 1 블록체인 내 적은 수의 거래 처리를 통한 수수료 절감 및 오프체인 연산을 통한 프라이버시 효과도 함께 얻을 수 있습니다.

가장 잘 알려진 OFC 프로젝트로는 Truebit, STARKWARE, Enigma 등이 있습니다.

Sidechain

사이드체인(Sidechain)이란 레이어 1 블록체인에 연결되어 있는 별도의 블록체인(오프체인)으로, 레이어 1 블록체인 대신 레이어 1 블록체인의 자산 이동을 기록 및 처리하고 그 결과값만을 레이어 1 블록체인에 올려 TPS 상승 및 암호자산 상호운용을 가능하게 하는 기술입니다.

사이드체인은 주로 IBC 프로토콜을 기반으로 한 양방향연결을 통해 레이어 1 블록체인의 확장성 문제를 해결합니다.

  • IBC 프로토콜(Inter Blockchain Communication Protocol)이란 서로 다른 블록체인 간 정보 교환을 위한 통신 규약입니다. IBC 프로토콜을 이용하면 다른 레이어 1 블록체인으로부터 전송받은 블록 헤더의 검증이 가능합니다. 이를 통해 특정 블록체인에서 상대 블록체인의 상태를 확인할 수 있는 것입니다.
  • 양방향연결(two-way peg)이란 암호자산이 사이드체인 및 메인체인간 고정 혹은 사전에 결정된 환율로 이체되도록 하는 메커니즘입니다. 양방향 연결을 통해 특정 블록체인에서 암호자산을 동결하면, 다른 블록체인에서 동결 상태를 검증 후 해당 암호자산과 대응되는 자산이 발행됩니다.

하나의 레이어 1 블록체인상에 사이드체인의 구현 방식은 사이드체인 블록 생성, 사이드체인 블록 헤더 전송, 레이어 1 블록체인 블록 헤더 검증 및 기록 단계로 나눌 수 있습니다.

  1. 사이드체인 블록 생성: 사이드체인 노드는 레이어 1 블록체인 암호자산에 대한 거래를 사이드체인 내에서 발행 및 처리함으로써 사이드체인 블록에 해당 거래를 기록합니다. 사이드체인 노드는 자체 합의 메커니즘에 따라 블록을 생성합니다.
  2. 사이드체인 블록 헤더 전송: 사이드체인 노드는 생성된 블록체인의 블록 헤더를 주기적으로 레이어 1 블록체인에 전송하여 검증 및 기록을 요청합니다.
  3. 레이어 1 블록체인 블록 헤더 검증 및 기록: 레이어 1 블록체인 내 노드는 사이드체인으로부터 전송받은 블록 헤더를 검증하고 레이어 1 블록체인에 이를 기록하여 사이드체인에서 발생한 거래들의 검증을 완료합니다.

위 과정에 따르면 일정 기간동안 사이드체인에서 수 많은 거래가 발생하더라도 레이어 1 블록체인이 처리하는 거래는 단 하나(블록 해시 결과값 기록 거래)에 불과합니다. 결론적으로, 사이드체인을 활용하여 레이어 1 블록체인에서 처리해야 하는 거래의 수가 줄어들어 레이어 1 블록체인의 TPS가 상승하는 효과를 볼 수 있게 함으로써 레이어 1 블록체인의 수직적 확장성 문제를 해결합니다

이때 사이드체인에 여러개의 레이어 1 블록체인이 연결될 시, 사이드체인은 레이어 1 블록체인간 블록 헤더를 대신 검증 및 처리해주는 중개자 역할을 합니다. 사이드체인내 블록은 레이어 1 블록체인들의 암호자산 상태를 포함하고 있기 때문에, 레이어 1 블록체인들은 사이드체인의 블록헤더만을 검증함으로서 다른 레이어 1 블록체인의 상태를 확인할 수 있습니다. 이로 인해 서로 다른 블록체인간 암호자산 거래와 같은 상호운용이 가능하도록 함으로서 레이어 1 블록체인의 수평적 확장성 문제를 해결합니다.

따라서 사이드체인은 연결되어 있는 레이어 1 블록체인의 개수에 따라 단일 연결 사이드체인(single link Sidechain)과 다수 연결 사이드체인(multi link Sidechain)으로 구분됩니다. 단일 연결 사이드체인은 하나의 레이어 1 블록체인과 연결된 것이며, 다수 연결 사이드체인은 두 개 이상의 레이어 1 블록체인과 연결된 것입니다.

단일 연결 사이드체인 프로젝트로는 플라즈마(Plasma)를 기반으로 한 오미세고(Omisego) 등이며, 다수 연결 사이드체인은 프로젝트로는 코스모스(Cosmos) 등이 있습니다.

1.4 나가며

[그림 4. 레이어 2 확장성 솔루션 Overview]

핵심 요약

  • 레이어 1 블록체인은 수직적, 수평적 확장성 문제로 인해 상용화가 미진하다.
  • 레이어 2 확장성 솔루션은 오프체인을 활용하여 레이어 1 블록체인의 확장성 문제를 해결한다.
  • 레이어 2 확장성 솔루션은 기술 구조에 따라 State Channel, OFC, Sidechain으로 나뉜다.

Further Thoughts

이어지는 디콘의 레이어 2 확장성 솔루션 시리즈에서는 위 글에서 분류한 세 가지 레이어 2 확장성 솔루션들의 기술 구조를 좀 더 상세하게 분석해보고, 레이어 2 확장성 솔루션의 미래에 대해 다뤄보도록 하겠습니다. 이어질 시리즈 아티클들에도 많은 관심 부탁드립니다.