[KO]누구보다 빠르게 남들과는 다르게, 레이어2 솔루션
DSRV Research는 더 많은 사람이 Web3를 이해하고 참여하는 데 기여하기 위해, 블록체인과 관련된 지식을 연재합니다.
Disclaimer: 이 글은 정보 전달을 위한 목적으로 작성되었으며, 특정 프로젝트에 대한 투자 권고, 법률적 자문 등 목적으로 하지 않습니다. 모든 투자의 책임은 개인에게 있으며, 이로 발생된 결과에 대해 어떤 부분에서도 DSRV는 책임을 지지 않습니다. 본문이 포괄하는 내용들은 특정 자산에 대한 투자를 추천하는 것이 아니며, 언제나 본문의 내용만을 통한 의사결정은 지양하시길 바랍니다.
Layer2 : 더 빠르고 저렴한 블록체인을 위하여
블록체인의 확장성 문제
블록체인의 확장성이란 일반적으로 블록체인이 트랜잭션들을 얼마나 많이, 빠르게 처리할 수 있는가에 대해 주로 이야기합니다. 우리가 블록체인에서 트랜잭션을 실행하기 위한 수수료, 즉 블록체인의 컴퓨팅 파워 및 저장공간을 사용하는 대가를 일반적으로 가스비(Gas Fee)라고 부르는데요, 블록체인의 제한적인 리소스(컴퓨팅 파워와 저장공간) 때문에 블록에는 허용할 수 있는 가스비의 최대치인 ‘Gas Limit’이라는 개념이 있습니다. 따라서 블록 하나에 포함될 수 있는 트랜잭션 수에는 제한이 있으며, 그 수는 각 트랜잭션의 가스비의 크기에 따라 결정됩니다. 즉 각 트랜잭션의 가스비가 전부 큰 규모로 구성돼 있다면 더 적은 수의 트랜잭션만을 블록에 담게 됩니다. 이더리움 등 일부 체인의 경우 트랜잭션이 가스비를 더 높게 지불한 순서대로 처리되기 때문에, 트랜잭션을 보내는 사람들이 많으면 서로 자신의 트랜잭션을 우선으로 처리하기 위해 가스비를 높이는 경쟁이 발생하게 됩니다. 블록체인의 사용량이 많아질수록 속도가 느려지고 비용이 비싸지는 이유인 것입니다.
아래의 그림은 이더리움 가스비의 변화를 보여주는 그래프입니다. 해당 그래프에서 2020년 6월경부터 가스비가 급격하게 증가하는 모습을 확인할 수 있는데요, 이 시기는 이더리움의 대출 플랫폼인 Compound가 대출을 위한 유동성을 공급한 사용자들에게 보상으로 거버넌스 토큰을 지급하는 일드파밍(Yield Farming)이라는 개념을 최초로 도입하기 시작하며 이더리움의 디파이(Decentralized Finance, 탈중앙화 금융, 이하 디파이) 서비스들이 전성기를 맞이했던 시기입니다.[1] 이 시기부터는 디파이가 블록체인의 명확한 사용 사례로 자리 잡아감에 따라, 사용자와 트랜잭션의 양이 폭발적으로 증가하며 자연스레 가스비 또한 매우 높아지는 상황이 자주 나타났습니다. 바로 확장성 문제가 본격적으로 대두되기 시작한 시점이었던 것입니다.
이더리움의 설립자 비탈릭 부테린(Vitalik Buterin)은 ‘확장성 트릴레마(Scalability Trillema)’라는 개념을 제시하며[2], 왜 블록체인을 빠르게 만드는 것이 어려운지 그 이유를 블록체인의 속성을 통해 설명하기도 하였습니다. 확장성 트릴레마란, 블록체인이 갖는 탈중앙성, 보안성, 확장성의 3가지 속성을 한 번에 만족시키기 매우 어렵다는 개념입니다. 이는 확장성을 높이기 위해서는 탈중앙성이나 보안성의 희생이 수반돼, 탈중앙성 또는 보안성을 같은 수준으로 유지하면서 확장성을 개선하는 것이 매우 어렵다는 점을 짚고 있습니다. 더 자세한 내용은 이전에 DSRV Research에서 다루었던 확장성 트릴레마 아티클에서 확인하실 수 있습니다.
블록체인 씬에서는 확장성을 개선하는 것이 주요한 과제로 자리 잡았으며, 이를 해결하기 위한 논의들이 지속해서 이루어지고 있습니다. 그 결과 다양한 확장성 솔루션(Scaling Solutions)이 등장하기 시작하였는데요. 그 중에서도 우리는 오늘 ‘레이어 2 솔루션’에 집중하여 이들이 어떻게 문제를 해결하고 있는지 한번 살펴보도록 하겠습니다.
레이어 2 솔루션이 뭔가요?
레이어 2(이하 L2)가 무엇인지 알아보기 전에 확장성 솔루션은 조금 큰 범주에서 온체인(on-chain, 체인 내부를 의미) 솔루션과 오프체인(off-chain, 체인 외부를 의미) 솔루션으로 분류해 볼 수 있습니다.
- 온체인 솔루션
온체인 솔루션이란 블록체인 자체의 트랜잭션 처리 능력을 높이는 것인데, 대표적으로는 블록체인의 노드들을 더 작은 규모의 부분집합인 샤드로 나누어 트랜잭션을 병렬 처리하는 샤딩(Sharding)이라는 방법이 있습니다. - 오프체인 솔루션
오프체인 솔루션이란 블록체인의 외부에서 트랜잭션을 대신 처리하는 방법을 말하는데, 더 세부적으로는 1) 자체적인 보안성을 갖춘 개별적인 블록체인을 구성하여 처리하는 사이드체인(Sidechain)과, 2) 확장성 개선 대상의 블록체인을 지칭하는 레이어 1(이하 L1)의 보안을 차용하는 L2 솔루션으로 구분할 수 있습니다.[3] L2는 L1에 더해진 또 다른 계층의 체인, 즉 L1을 기반으로 보안성을 유지하며 이와 통신할 수 있지만 L1과는 별개로 동작하는 블록체인을 지칭합니다.
오프체인 솔루션 중에도 사이드체인은 자체적인 합의 알고리즘과 검증인을 구성하여 트랜잭션의 유효성을 검증합니다. 반면 L2 솔루션은 오프체인에서 트랜잭션을 처리하지만, 이를 다시 L1에 기록하기 때문에 자체적인 보안성을 높이기보다 L1의 합의 알고리즘과 검증인으로부터 보장되는 보안성을 차용할 수 있게 됩니다. [3] L2 솔루션이란 결국 트랜잭션을 L1의 외부인 L2에서 대량으로 트랜잭션을 실행하고 그 결과를 L1에 기록하는 방식입니다. L2에서 트랜잭션을 실행하는 것은 자연스레 L1이 처리할 트랜잭션의 수를 줄여 확장성을 개선할 뿐만 아니라, 값비싼 L1의 저장공간 사용비용을 줄일 수 있습니다.
온체인 솔루션은 L1의 구조 자체를 크게 변경하는 대규모 업그레이드(하드포크)가 필요하기 때문에 시간이 오래 걸리는 반면, 오프체인 솔루션인 L2는 상대적으로 단기간 내에 L1의 확장성을 개선할 수 있어, L2에 대한 관심이 커지고 있습니다. L2 솔루션에도 상태 채널(State Channels), 플라즈마(Plasma), 롤업(Rollups), 밸리디움(Validium) 등 다양한 솔루션들이 존재하는데요, 오늘 우리는 각각의 솔루션이 구체적으로 어떤 것인지, 무슨 장점과 단점을 지니고 있는지 등을 살펴보고자 합니다.
상태 채널(State Channel)
상태 채널이란 두 거래 당사자 간에 생성되는 채널을 통해 서로 즉각적이고 저렴하게 거래를 할 수 있는 솔루션입니다. 여기서 채널(Channel)이란 거래 당사자들의 서명으로 관리되는 다중서명(MultiSig) 계정으로, 참여자의 잔액을 관리하고 이러한 자금이 사용될 수 있는 조건을 정의하는 스마트 컨트랙트로 이해할 수 있습니다. 따라서 채널을 생성하는 참여자는 스마트 컨트랙트에 자금을 예치하며 채널을 열고, 채널을 연 사람들 간 양방향으로 거래를 진행 합니다.
A와 B의 거래과정을 한번 따라가 보겠습니다.
- A와 B는 먼저 L1의 스마트 컨트랙트에 10 달러씩 자금을 예치하여 채널을 엽니다.
- 채널을 연 후 A는 B에게 0.1 달러를 보내기 위해서, 오프체인으로 자신의 서명을 포함한 메세지를 B에게 보냅니다. 다중서명 계정에서는 거래의 확정을 위해 둘의 서명이 모두 필요하기 때문에 B는 A의 메세지에 자신의 서명을 추가하여 거래가 발생한 새로운 상태를 공유합니다. 이러한 과정을 통해서 채널이 열려있는 동안 예치한 자금 내에서 둘은 오프체인으로 계속해서 돈을 주고 받을 수 있습니다.
- 더 이상의 거래를 하지 않는다면 A와 B는 상호 동의 하에 상태 채널을 닫게 되는데요, 채널을 닫을 시에는 가장 최신의 메세지를 L1에 트랜잭션으로 제출하여 그동안 이루어진 거래를 한 번에 정산한 뒤, 자금을 돌려받게 됩니다. A가 B에게 0.1달러를 10번 보낸 후, L1에 트랜잭션을 보내 채널을 닫으면 A에게는 9달러, B에게는 11달러가 반환될 것입니다.
이처럼 상태 채널은 채널을 열고 닫을 때에만 L1에서 트랜잭션이 발생하며, 그 외에 채널 내에서 이루어진 거래들은 L1의 블록에 포함되지 않고 오프체인에서 메세지를 통해 이루어지기 때문에, 빠르고 저렴하게 반복적인 거래들을 처리할 수 있습니다. 사용자 채널을 연결하여 네트워크를 구성하면 다자간 거래도 가능합니다. 하지만 상태 채널은 모든 상태 변화에 대한 당사자의 서명이 필요하기 때문에, 참여자가 모두 온라인 상태일 때만 거래를 할 수 있습니다. 또한 스마트 컨트랙트 사용이 제한적이며 채널이 연결된 참여자간의 거래만 가능하다는 한계가 있기도 하여 대중화되지는 못했지만, 이 같은 한계에도 불구하고 소액 반복 거래 등 특정 상황에서는 다른 솔루션들보다 효과적으로 사용될 수 있기도 합니다.[4]
💡 DSRV's Tip: 악의적인 참여자가 있다면?
보통의 L1 트랜잭션들이 블록체인에 기록되는 것과 달리, 모든 거래들이 오프체인 메세지로 이루어지게 되면, 의도적으로 이미 발생했던 거래를 '수행한 적이 없다'고 거짓말 할 수 있지는 않을까요? A가 돈을 보냈는데 B가 오프라인 상태(의도 혹은 의도하지 않고)이거나 서명을 할 수 없게 되어 A가 손해를 보게될 수 있습니다. 이러한 경우 A는 B의 동의 없이 일방적으로 채널을 닫을 수 있습니다. 정상적으로라면 둘의 동의를 통해 채널을 닫지만, 일방적으로 채널을 닫게 된다면 반대로 A가 B에게 정상적으로 돈을 보냈음에도 돈을 보내기 전 상태로 채널을 닫으려고 하여 B가 손해를 보는 상황이 발생할 수도 있는데요. 따라서 이와 같이 한 당사자가 일방적으로 채널을 닫으려고 하면 채널의 다른 당사자는 이에 대한 이의를 재기할 수 있는 약 1주간의 챌린지(Challenge) 기간 동안 올바른 최신 상태를 제출하여 사기가 시도되었음을 증명할 기회를 갖게 됩니다.[4]
플라즈마(Plasma)
플라즈마는 비트코인 라이트닝 네트워크를 만든 조세프 푼(Joseph Poon)과 비탈릭 부테린이 작성한 ‘Plasma: Scalable Autonomous Smart Contracts’에서 처음 제안되었습니다.[6] 사실 플라즈마는 커밋 체인(Commit chain)이라는 정식 명칭을 가진 L2 솔루션의 이더리움 구현체의 이름이지만 플라즈마라는 용어가 더욱 널리 알려져 해당방식을 대표하는 용어로 사용되고 있습니다. [5]
플라즈마란 L1의 외부인 플라즈마 체인(L2)에서 다수의 트랜잭션들을 실행한 뒤, L1에 배포해둔 스마트 컨트랙트에 플라즈마 체인의 상태를 요약한 머클트리의 루트(이하 스테이트 루트, State root)만을 업데이트 하는 방식입니다. 플라즈마 체인은 L1에 있는 스마트 컨트랙트와 머클트리를 사용하여, 자식 체인인 플라즈마 체인의 정보가 부모 체인인 L1에 담기며 아래 그림과 같이 계층적인 트리 구조로 생성됩니다. 상위 계층의 체인 아래 다수의 자식 체인들을 생성할 수 있어, 이론적으로는 체인을 무한히 확장하여 트랜잭션을 처리할 수 있습니다.
❗️ 용어정리: 머클트리(Merkle Tree)란?머클트리는 나무 형태로 데이터를 저장하는 자료구조의 하나입니다. 데이터를 두 개씩 묶은 뒤, 해시함수를 거쳐 해시값으로 만들고, 앞선 과정에서 만든 해시값을 같은 방식으로 만들어낸 또다른 해시값과 묶어 이를 다시 해시값으로 만들어 결국 마지막에는 머클트리의 루트(Root)라고 하는 모든 데이터를 요약한 하나의 해시값으로 나타내는 방법입니다. 머클 트리는 데이터가 변경되었을 때 트리의 해시값이 연쇄적으로 변화하여 위변조를 쉽게 알아차릴 수 있으며 데이터의 존재를 증명할 수 있다는 이점이 있습니다.
각 플라즈마 체인에는 운영자(Operator)라는 역할이 존재하는데, 이 운영자들은 트랜잭션을 실행하고, 실행 결과인 스테이트 루트를 L1에 제출하는 동시에, 실행한 트랜잭션 데이터들을 플라즈마 체인에 저장하고 있습니다. 트랜잭션 데이터를 플라즈마 체인, 즉 오프체인에 저장한다는 것은 L1의 저장공간을 절약하여 확장성을 더욱 높일 수 있으며, 상대적으로 L1보다 저렴한 수수료로 트랜잭션을 처리할 수 있다는 것을 의미합니다.
플라즈마 체인을 사용하기 위한 과정을 알아볼까요? 플라즈마 체인을 사용하기 위해선 먼저 L1에 배포되어있는 ‘플라즈마 스마트 컨트랙트’에 자금을 예치하여 플라즈마 체인으로 자금을 입금받아야 합니다. 플라즈마 체인을 더이상 사용하지 않을 예정(혹은 해당 플라즈마 체인의 운영자를 믿을 수 없는 경우)이라면, 자금을 다시 L1으로 출금하기 위해 ‘탈출(Exit)’ 과정을 수행합니다.
탈출 과정에서 사용자는 요청한 출금이 거짓이 아님을 검증받아야 합니다. 만약 누군가 유효하지 않은 출금을 시도했다면 이에 대하여 이의를 제기할 수 있습니다. 만약 거짓 출금이 실행되었다면, 이의 제기를 위한 약 1–2주의 챌린지 기간동안 해당 출금이 유효하지 않다는 증명을 L1의 플라즈마 컨트랙트에 제출하여 이를 막을 수 있습니다. 이와 같은 증명을 사기 증명(Fraud Proof)이라고 부르며, 검증에 필요한 트랜잭션 정보를 바탕으로 특정 트랜잭션이 올바르게 실행되었는지 재연산하는 과정을 거쳐 만들어집니다.
데이터 가용성(Data Availability) 문제
L1에서 트랜잭션을 처리하는 경우, 트랜잭션이 온체인에 기록되기 때문에 누구나 데이터의 유효성을 검사할 수 있으며, 특정 주체가 악의적인 목적으로 허위 트랜잭션을 발생시키기 매우 어렵습니다. 하지만 플라즈마 방식에서는 데이터가 오프체인에 저장되기 때문에, 만일 운영자가 잘못된 상태를 제공하거나, 사기증명을 생성하기 위해 필요한 데이터를 일부러 보여주지 않을 경우(block-withholding) 문제가 될 수 있습니다. 운영자가 의도적으로 유효하지 않은 트랜잭션을 실행했음에도 이를 검증하기 위한 사기 증명을 만드는데 필요한 정보를 공개하지 않는 것은 큰 문제입니다. 이와 같이 블록이나 거래를 검증할 때 증거를 만들기 위해 필요한 거래정보에 접근할 수 없는 문제를 데이터 가용성(Data Availability) 문제라고 부릅니다. 결국 데이터 가용성 문제는 운영자들이 트랜잭션들을 검열하고, 악의적으로 자금을 탈취 및 동결할 위험성이 있음을 의미합니다.
따라서 플라즈마의 사용자들은 운영자들이 만들어내는 모든 데이터 생성 과정을 지켜봐야 합니다. 또한 더 이상 운영자를 믿을 수 없어진다면 모든 사용자가 플라즈마 체인에서 자금을 출금하려 하는 상황(Mass Exit)이 발생할 수도 있습니다. 이러한 경우 플라즈마 체인의 전체 상태가 한번의 챌린지 기간 내에 L1에 게시되어야 하기 때문에 L1을 매우 혼잡하게 만들 수 있으며, 출금이 실패할 수도 있다는 문제점이 있습니다.[7]
플라즈마는 이더리움의 주요한 확장성 솔루션으로 주목받기도 하였는데요, 하지만 플라즈마가 제공하는 높은 확장성에도 불구하고 플라즈마가 가진 고유한 한계들로 인하여 새로운 확장성 솔루션인 롤업(Roll-up, 이하 롤업)에 대한 관심이 높아지게 되었습니다. [8]
롤업(Roll-up)
롤업은 L2에서 트랜잭션을 실행한 뒤, 실행한 트랜잭션 데이터들의 요약본과 변경된 상태를 같이 L1에 저장하는 솔루션입니다. 플라즈마와 유사하게 롤업 체인(L2)에서도 실행되는 트랜잭션들의 상태는 L1에 배포된 스마트 컨트랙트로 관리하게 됩니다. L1 상의 롤업 컨트랙트에는 롤업 체인 상 계정 상태들의 요약본인 스테이트 루트가 저장되어 있습니다. 롤업 체인에서 트랜잭션이 실행되면 이를 통해 특정 계정의 잔고(Account Balance)가 바뀌게 되고, 이로 인해 롤업 체인의 스테이트 루트 또한 바뀌게 됩니다. 롤업은 L2에서 다수의 트랜잭션을 처리한 후 각 계정의 상태를 바꾸고, 그 결과로 바뀌게 된 스테이트 루트의 최종값을 L1의 롤업 컨트랙트에 전송하여 L1에 기록된 롤업 체인의 상태도 업데이트 하도록 요청합니다.
데이터 가용성 문제의 해결
하지만 플라즈마에서는 트랜잭션에 대한 정보는 오프체인에 저장하고 이를 실행한 결과로 변경된 상태만을 L1에 제출하였기 때문에 업데이트된 상태의 옳고 그름을 증명할 수 없는 데이터 가용성 문제가 발생하였는데요, 이에 비해 롤업의 경우 상태 변경을 요청할 때, 트랜잭션을 실행한 결과뿐만 아니라 요약된 트랜잭션 데이터 자체를 L1, 즉 온체인에 보관하여 누구든 이를 사용하여 데이터의 유효성을 검증할 수 있게 하여 데이터 가용성 문제를 해결하였습니다.
롤업에서도 운영자(혹은 시퀀서)로 불리는 노드가 사용자가 제출한 트랜잭션의 순서를 정하여 실행 및 저장하며, 롤업 체인의 상태를 업데이트하여 블록을 생성합니다. 그 후 운영자는 L1에 기록된 롤업 체인의 상태를 변경하기 위한 정보의 묶음인 ‘batch’를 L1의 롤업 컨트랙트에 보내게 됩니다. 일반적으로 batch에는 이전 롤업 상태의 스테이트 루트값, 변경된 롤업 상태의 스테이트 루트값, 블록에서 실행된 트랜잭션 데이터의 요약본이 담겨 있습니다. 운영자가 제출한 트랜잭션을 통해 요청을 받은 롤업 컨트랙트는 저장되어 있던 스테이트 루트와 batch에 포함된 롤업 체인의 이전 상태의 스테이트 루트가 일치하는지 확인한 후, 일치한다면 기존에 저장되어 있던 스테이트 루트를 롤업의 현재 상태를 나타내는 새로운 스테이트 루트로 교체합니다.
롤업 체인에서 batch로 제출하는 트랜잭션 데이터들에는 압축 트릭이 사용됩니다. 예를 들어 간단한 이더리움 트랜잭션(ETH 전송)에 본래 약 112byte가 사용된다면, 압축 트릭을 사용한 롤업은 약 12byte만을 사용하더라도 가능합니다.[9] 이와 같이 압축된 트랜잭션 데이터들은 콜데이터(calldata) 형태로 L1에 저장됩니다. 콜데이터(calldata)는 L1의 컨트랙트에 전달되는 입력값으로, L1의 상태에 저장하는 것보다 적은 비용으로 데이터를 저장할 수 있습니다. 따라서 롤업은 더욱 적은 리소스를 사용하며, 여러 트랜잭션을 한 번에 처리함으로서 저렴하고 빠른 거래를 가능하게 합니다. 하지만 이와 같은 방법으로 압축된 트랜잭션 데이터를 온체인에 저장하여 데이터 가용성 문제를 해결하였다고 하더라도, 기본적으로 롤업 체인에서 실행되는 모든 트랜잭션 데이터 내용을 L1에 저장한다는 것은 롤업 솔루션이 스테이트 루트만을 L1에 저장하는 플라즈마에 비해 확장성을 일부 희생한 것으로 이해할 수 있습니다.
플라즈마와 유사하게 롤업 체인에서도 트랜잭션을 생성하고 토큰을 사용하기 위해서는 L1에서 롤업 체인으로 토큰을 예치하는 과정을 거쳐야 합니다. 사용자가 L1의 롤업 컨트랙트에 암호화폐를 예치하게 되면, 롤업 솔루션의 운영자는 해당 암호화폐를 L2로 옮겨주게 됩니다. 만약 다시 L1으로 암호화폐를 보내고 싶다면, 사용자는 롤업에서 암호화폐를 출금하는 트랜잭션을 실행시켜야 합니다. 때문에 롤업에서도 출금 트랜잭션이 올바르게 실행될 수 있는가가 중요합니다.
롤업의 종류
롤업은 온체인에 저장된 트랜잭션 데이터를 바탕으로 트랜잭션의 유효성을 증명하는 방식에 따라 옵티미스틱(Optimistic) 롤업과 ZK(Zero-Knowledge, 영지식) 롤업으로 구분됩니다. 옵티미스틱 롤업은 플라즈마와 같이 사용자 혹은 제3자가 온체인 데이터를 바탕으로 사기 증명을 제출하며 이 사기 증명 절차를 수행하기 위한 지연기간이 존재합니다. 이와 다르게 ZK 롤업은 영지식 증명이라는 암호학적 방법으로 생성된 트랜잭션들에 대한 “유효성 증명(Validity Proof)”을 batch와 함께 제출합니다. L1의 롤업 컨트랙트는 유효성 증명을 통해 트랜잭션에 사용자의 서명이 있는지를 등을 확인하여 사용자의 자금이 탈취당하는 것을 막을 수 있고, 즉각적으로 유효성을 판별할 수 있어 별도의 지연기간을 필요로 하지 않습니다. 또한 옵티미스틱 롤업은 L1의 스마트 컨트랙트를 거의 대부분 호환하여 처리할 수 있으나, ZK 롤업은 영지식 증명의 복잡성으로 인해 어플리케이션별 구현이 필요하며 범용적인 스마트 컨트랙트를 실행할 수 있도록 개발중입니다. (옵티미스틱 롤업과 ZK 롤업은 별도의 글을 통해 더욱 자세히 다룰 예정입니다.)
밸리디움(Validium)
이후 ZK 롤업과 유사하게 영지식 증명을 통해 트랜잭션의 유효성을 검사하는 밸리디움(Validium)이라는 솔루션도 등장하였는데요. 밸리디움은 ZK와 유사하지만 한가지 차이점이 있습니다. 바로 밸리디움이 플라즈마처럼 트랜잭션 데이터를 온체인에 저장하지 않는다는 것입니다. 이를 통해 밸리디움은 ZK 롤업보다 높은 확장성을 가질 수 있지만, 데이터 가용성 문제가 다시금 발생하게 되는데요, 플라즈마와 마찬가지로 밸리디움의 운영자가 만약 사용자에게 공개하지 않고 상태를 변경하게 된다면 사용자는 자신의 자금에 대한 증명을 생성할 수 없고 자금을 동결당할 수 있습니다.
따라서 밸리디움은 구현에 따라 밸리디움의 운영자로 구성된 DAC(데이터 가용성 위원회)와 같은 조직을 두어 온전한 데이터 제공을 보장하고 잘못된 상태가 업데이트되지 않도록 최소한의 장치를 마련합니다. 하지만 DAC도 중앙화될 위험성이 있는 운영자들에 대한 일방적인 신뢰를 요구한다는 점에서 우려의 목소리가 나오기도 합니다.[10]
마무리
상태 채널을 제외한 나머지 솔루션들을 위의 이미지와 같이 분류해보면 각 방식들의 유사점과 차이점을 보다 잘 구조화 해볼 수 있습니다. 데이터를 저장하는 장소가 온체인(L1)인지 오프체인(L2)인지에 따라 데이터 가용성 문제의 유무를 생각해 볼 수 있습니다. 온체인 데이터 가용성은 롤업의 운영자를 포함하여 아무도 악의적으로 사용자의 자금을 동결할 수 없다는 것을 보장해 줍니다. 또한 트랜잭션이 올바르게 처리되게 하기 위해 사기 증명 및 유효성 증명 중 무엇을 사용하느냐에 따라 사기 증명을 생성해야 하는 제 3자의 존재와 지연기간의 필요성을 생각해 볼 수 있습니다.
L2가 가장 활발히 사용되고 있는 이더리움에서는 L2가 점차 대중화 되면서 약 4B 달러의 자금이 L2를 통해 거래되고 있습니다.[11] 무신뢰성(Trustless, 제3자에 대한 신뢰가 필요 없음)을 중시하는 블록체인답게, 현재는 L2의 운영자에 대한 신뢰를 최소화하고 데이터 가용성 문제를 해결할 수 있는 롤업이, 그중에서도 범용적인 스마트 컨트랙트를 모두 지원하는 옵티미스틱 롤업이 가장 많이 채택되고 있는 모습을 확인할 수 있었습니다.
L2 솔루션들은 각자마다의 장점과 단점을 지니고 있습니다. 현재 옵티미스틱 롤업은 데이터 가용성을 중시하고 L1의 스마트 컨트랙트를 활용하고자 하는 사용자의 니즈를 충족하여 가장 주목을 받고 있습니다. 하지만 ZK 롤업 또한 옵티미스틱 롤업보다 저렴한 거래, 즉각적인 출금을 하고자하는 사용자들에게 이점을 제공하고 있으며 L1의 스마트 컨트랙트를 범용적으로 호환할 수 있도록 노력하며 옵티미스틱 롤업의 뒤를 쫓고 있습니다. 이뿐만 아니라 ZK롤업을 사용하던 프로젝트가 확장성을 더욱 높이고자 한다면 밸리디움을, 데이터 가용성에 대한 우려는 있지만 롤업보다 높은 확장성이 중요하다면 플라즈마를, 현재는 사용량이 미미하기는 하지만 반복 거래를 매우 빠르고 저렴하게 사용하고 싶다면 상태 채널을 사용할 수 도 있을 것입니다. 사용자 및 프로젝트들은 각각의 장점과 단점을 살펴보고, 필요에 따라 가장 잘 어울리는 L2 솔루션을 선택할 수 있습니다. 하지만 다양한 L2 솔루션들마다 다양한 프로젝트들이 존재하고 있는 만큼 유동성 파편화가 일어나기도 하여 [12], L2 솔루션간 통신과 자금의 이동에 대한 필요성이 대두되고 있기도 합니다.[13]
지금까지 다양한 L2 확장성 솔루션들에 대해 알아보았는데요, 앞으로 L2는 블록체인이 더 범용적인 인프라로 거듭나기 위해 꼭 필요한 퍼즐 조각으로 보입니다. 독자분들께서 그동안 확장성을 개선하고자하는 어떤 노력들이 있었는지 살펴보는데 이 글이 도움이 됐길 바라며 마치겠습니다. 긴 글 읽어주셔서 감사합니다.
Written by
Youngbin Park, DSRV Researcher (Twitter @bin0_0bin)
Reviewed by
Owen Hwang, DSRV Research Manager (Twitter @journeywith_eth)
Seokjoong Yoon, DSRV Researcher (Twitter @imlearning_eth)
Illustrations by
Heeyoung Moon, Brand Designer
💊 Key Takeaways
- L2 솔루션이란 L1의 바깥(오프체인)인 L2에서 트랜잭션을 실행하고 그 결과를 L1에 저장하여 더 저렴하고 빠른 거래를 가능하게 하는 방법으로 상태채널, 플라즈마, 롤업 및 밸리디움 등이 존재합니다.
- 상태채널은 거래 당사자간 채널을 통해 빠르고 즉각적인 거래를 할 수 있는 솔루션입니다.
- 플라즈마는 플라즈마 체인(L2)에서 트랜잭션을 실행하고 데이터를 저장하며, 트랜잭션 실행 후 트랜잭션 데이터는 L1에 기록하지 않고 플라즈마 체인의 상태만을 기록하는 방식입니다.
- 옵티미스틱 및 ZK 롤업은 롤업 체인(L2)에서 트랜잭션을 실행하고, 실행한 트랜잭션 데이터의 요약본과 실행 후 롤업 체인의 상태를 함께 L1에 기록하는 방식입니다.
- 밸리디움은 ZK 롤업과 같이 트랜잭션 검증에 영지식 증명을 사용하나, 트랜잭션 데이터는 플라즈마와 같이 온체인에 저장하지 않는 방식입니다.
Reference
[1] https://www.coindesk.com/learn/what-is-yield-farming-the-rocket-fuel-of-defi-explained/
[2] https://vitalik.ca/general/2021/04/07/sharding.html
[3] https://ethereum.org/en/layer-2/
[4] https://blog.statechannels.org/do-we-still-need-state-channels/
[5] https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/commit-chains/
[6] https://plasma.io/plasma.pdf
[7] https://medium.com/onther-tech/플라즈마는-죽지-않았다-part-1-248caebcd38d
[8] https://medium.com/dragonfly-research/the-life-and-death-of-plasma-b72c6a59c5ad
[9] https://vitalik.ca/general/2021/01/05/rollup.html
[10] https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263
[11] https://www.theblockcrypto.com/data/scaling-solutions/scaling-overview/value-locked-of-ethereum-scaling-solutions
[12] https://l2beat.com/
[13] https://sin7y.org/l2-interoperability-a-comparison-between-starkex-loopring-hermez-and-connext-33fa3e720c94