Buidler DAO 공동 창립자: 제가 이해하는 Layer0, Layer1 및 Layer2는 도대체 무엇인가요?
작성자: Buidler DAO 공동 창립자 Jason, 《Buidler DAO: 내가 이해하는 Layer0, 1, 2는 도대체 무엇인가?》
이것은 제가 처음으로 작성한 거시적 분석 유형의 글입니다. 이전의 글들은 특정 프로젝트를 분석하는 것이었고, 이번에는 더 거대한, 제가 덜 익숙한 분야에 대해 이야기해보려고 합니다. 또한, 이전에 트위터에 흩어져 있던 내용을 구조화하여 하나의 글로 정리했습니다. Web3는 항상 새로운 개념과 용어가 넘쳐나는 분야이기 때문에, 감히 제가 이해하는 Layer0, 1, 2에 대해 이야기해보려 합니다. 아마도 여러분은 왜 제목이 《Layer0, 1, 2를 한 문장으로 설명하기》가 아닌지 궁금할 것입니다. 한편으로는 제가 명확하게 설명할 자신과 능력이 없기 때문이고, 다른 한편으로는 많은 정의가 현재 매우 모호하며, 산업 표준이 없기 때문입니다. 예를 들어, 제 관점에서 Celestia는 Layer0에 해당하지만, Layer1에 속한다고 주장하는 사람들도 많습니다. 따라서 이 글은 개인적인 관점에서의 이해를 바탕으로 하며, 불완전하거나 여러분의 의견과 일치하지 않을 수 있습니다. 논의는 언제든지 환영합니다.
글 개요:
01/ Layer0: 크로스 체인 통신
02/ Layer0: 모듈화 블록체인
03/ Layer1 기본 블록체인
04/ Layer2 주류 솔루션: 롤업
Layer0: 크로스 체인 통신
Layer0는 현재 업계에서 정의가 가장 모호하고 이해하기 복잡한 층이라고 생각합니다. 그래서 좀 더 많은 시간을 할애하여 설명하겠습니다.
많은 사람들이 Layer0를 블록체인 인프라 서비스 층으로 정의하지만, 저는 이 개념이 너무 크고 모호하다고 생각합니다. 현재 제가 생각하는 Layer0의 키워드는 발체인, 다중 체인 및 크로스 체인으로, 핵심 내용은 크로스 체인 통신과 모듈화 블록체인에 있습니다. 따라서 크로스 체인 통신과 모듈화 블록체인을 명확히 이해하면 Layer0의 내용도 기본적으로 커버됩니다.
먼저 크로스 체인 통신에 대해 이야기해보겠습니다. 크로스 체인 통신과 크로스 체인은 다르다는 점에 유의해야 합니다. 크로스 체인 통신은 기술적 구현이며, 크로스 체인은 비즈니스 시나리오입니다.
크로스 체인은 블록체인의 매우 중요한 능력입니다. 각 체인을 은행이라고 가정할 때, 블록체인이 크로스 체인을 지원하지 않으면 은행 간의 송금이 불가능해집니다. 우리가 일반적으로 말하는 크로스 체인은 자산의 크로스 체인, 즉 A 체인의 aToken을 B 체인으로 이동시키고 싶을 때, 먼저 Token의 프로젝트 팀이 두 체인에서 자신의 네이티브 Token을 발행해야 하며, 그 후 크로스 체인 브리지를 사용하여 양쪽 Token의 "이전"을 수행해야 합니다. "이전"이라는 표현을 쓴 이유는 이전 과정이 우리가 이해하는 A에서 B로의 이동이 아니기 때문입니다. 그 작업 원리는 A 체인의 aToken을 잠그고, B 체인에서 해당 수량의 bToken을 발행하는 것입니다. A 체인이 자산을 잠그고 B 체인이 자산을 발행하는 과정에서 많은 문제가 발생할 수 있으며, 주로 통신 문제입니다. A 체인은 어떻게 B 체인에 "장삼이 방금 저에게 20개의 aToken을 잠갔으니, 지금 빨리 20개의 bToken을 만들어주세요"라고 알릴 수 있을까요?
체인은 본질적으로 폐쇄적이기 때문에 두 체인의 자산 변화 상황을 연결하기 위해 체인 외부의 모니터링을 통해서만 가능합니다. 예를 들어, 스크립트를 작성하는 등의 방법입니다. 하지만 이것은 충분히 네이티브하지도 않고, 안전하지도 않기 때문에 크로스 체인 브리지는 종종 문제가 발생합니다. 크로스 체인 통신은 다중 체인 간의 네이티브 정보 전송 문제를 주로 해결합니다.
크로스 체인 통신에 집중하는 LayerZero 프로토콜에 대해서도 이전에 관련된 글을 작성한 적이 있습니다. 《그 크로스 체인 Gh0stlyGh0sts가 다음 Azuki가 될 수 있을까?》라는 글입니다. 이는 LayerZero를 사용하여 네이티브 크로스 체인 통신을 구현하여 NFT 자산의 크로스 체인 효과를 달성한 첫 번째 프로젝트입니다. (추천 읽기: 《크로스 체인 통신 프로토콜 LayerZero 생태계 점검: 어떻게 "DeFi 레고"의 제0층이 될 수 있을까?》)
앞서 언급한 전통적인 크로스 체인 브리지는 두 체인을 모니터링하여 가짜 통신을 구현하는 방식입니다. 이는 실제로 두 체인이 정보를 전달하는 것이 아닙니다. 아래 그림의 왼쪽과 중앙의 패턴처럼, LayerZero는 두 체인 내부에 자신의 노드를 직접 배치하여 이러한 노드가 다중 체인 간의 통신을 수행합니다.
아래 그림과 같이, 저는 계약 코드에서 어떤 체인(chainId)으로 어떤 정보를 전달할지를 명확히 작성할 수 있습니다. 이것이 블록체인 네이티브의 크로스 체인 통신입니다.
저는 LayerZero 프로토콜에 대해 매우 긍정적으로 보고 있습니다. 이 프로토콜은 세쿼이아가 주도한 1억 3천 5백만 달러의 자금을 조달했습니다. 그 이유는 이것이 진정한 순수 네이티브 크로스 체인 솔루션이라고 생각하기 때문이며, 자산 크로스 체인은 그 중 하나의 응용 비즈니스 시나리오일 뿐입니다. 체인 간의 통신은 자산에 국한되지 않습니다. 은행 간의 통신도 송금에 국한되지 않듯이, 제가 공상은행에서 나쁜 신용 기록을 남기면, 공상은행은 그 정보를 건설은행에 전달할 수 있으며, 건설은행에서 대출을 받을 때 문제가 발생할 것입니다. 크로스 체인 통신 뒤에 있는 비즈니스 시나리오는 반드시 많은 것을 발굴할 수 있을 것입니다.
LayerZero에 대해 설명한 후, Layer0의 주요 내용인 크로스 체인 통신에 대해 이해하셨을 것입니다. 여기서 주의할 점은 Layer0는 개념이고, LayerZero는 이 개념 내의 특정 프로토콜이라는 것입니다. 이 두 가지를 혼동하지 마세요.
Layer0: 모듈화 블록체인
Layer0의 또 다른 중요한 내용은 모듈화 블록체인입니다. 크로스 체인 통신이라는 용어는 여러분이 이해하기에 꽤 기본적인 것이며, Layer0에 속하지만, 모듈화 블록체인이라는 용어는 처음 들으면 매우 "거대"하게 느껴질 수 있습니다. 이는 한 층의 개념이 아니라 "전체 세트"처럼 보입니다. 블록체인이 햄버거라면, Layer는 그 안의 상추, 패티, 빵 조각이지만, 모듈화는 전체 대햄버거처럼 들립니다.
광의의 개념에서 모듈화 블록체인은 일종의 "아키텍처"입니다. Layer2도 모듈화 블록체인으로, 계산 층을 모듈화하여 추상화한 것입니다. 하지만 현재 모듈화 블록체인에 대한 좁은 정의를 이해하기 위해서는 블록체인을 모듈화한 후의 목적이 무엇인지 이해해야 하며, 이를 통해 어느 층에 위치하는지를 정의해야 합니다. 제가 생각하는 가장 직접적인 목적은 더 간단하고 빠르게 체인을 발행할 수 있는 방법입니다. 모듈화의 효과는 블록체인 기술 아키텍처를 더 명확하게 분해하고, 더 완전하게 캡슐화하여, 조립식으로 사용할 수 있게 하는 것입니다. 즉, 모듈화 블록체인의 능력을 사용하여 더 낮은 비용으로 새로운 체인을 발행할 수 있습니다. 여러분은 모듈화 블록체인의 목적이 Layer1을 발행하는 것이라고 대략적으로 이해할 수 있습니다. 그래서 왜 그것이 Layer0에 위치하는지를 이해할 수 있습니다.
모듈화 블록체인의 두 대표인 Cosmos와 Celestia를 소개하여 그 의미를 더 명확히 이해할 수 있도록 하겠습니다. Cosmos에 대해서는 @Kasey_ibc에게 감사드립니다. 그는 Cosmos 생태계의 깊은 기여자이며, 그와 논의하고 그의 트위터에서 우수한 내용을 연구했습니다.
모듈화 블록체인 개념의 전도자는 Celestia입니다. 저는 이전에 모듈화 블록체인에 대해 분석한 트위터 글을 작성한 적이 있으며, 여기서 그 트위터의 내용을 인용하여 Celestia에 대해 이야기하겠습니다. 구체적인 내용은 제가 당시 작성한 트위터를 참조하시기 바랍니다. 링크는 다음과 같습니다: https://twitter.com/jason_chen998/status/1561576592337682434
공식 웹사이트에서 그 장점에 대한 설명의 첫 번째 포인트는 스마트 계약처럼 쉽게 블록체인을 배포할 수 있어 발체인의 문턱과 비용을 낮출 수 있다는 것입니다.
모듈화 블록체인의 반대편은 현재 대부분의 Layer1이 단일 블록체인에 해당합니다. 즉, 하나의 체인이 합의, 데이터 가용성 및 실행 작업을 모두 수행합니다.
합의: 전체 네트워크의 노드가 어떤 거래를 패키징할지, 어떤 순서로 패키징할지를 결정합니다.
데이터 가용성: 특정 블록이 이미 방송되어 체인에 기록되었는지를 검증합니다.
실행: 구체적인 거래 및 상태의 변경입니다.
하나의 체인이 이 세 가지를 모두 수행한다면, 그것은 단일 블록체인입니다. 현재 L1이 직면한 문제는 거래, 결제, 블록 생성이 모두 줄을 서서 완료된다는 것입니다. 따라서 설계 사고는 합의, 데이터 가용성 및 실행이라는 블록체인의 핵심 작업 책임을 분리하여 각 책임을 별도의 체인, 즉 한 층으로 만들어 각자 자신의 일을 잘 수행하고, 다시 조합하여 하나로 만드는 것입니다.
여기까지 말씀드리면, 여러분은 이것이 30년 소프트웨어 개발에서 따르는 모듈화 설계 원칙이라는 것을 깨달아야 합니다. 캡슐화, 다형성, 결합, 응집이라는 개념을 통해 복잡한 시스템을 기능별로 분해하고 각자 역할을 수행한 후 다시 조립하는 것입니다. 따라서 적어도 이 최상위 설계 개념은 항상 존재해왔으며, 이 설계 개념을 블록체인 설계에 적용한 것은 그리 새로운 개념이 아닙니다.
그런 다음 합의, 데이터 가용성 및 실행을 분리하여 하나의 체인이 되는 것을 언급했을 때, 여러분은 이것이 L2가 하는 일이라는 것을 깨달아야 합니다. 롤업 확장 사고는 실행 층을 별도의 서브 체인으로 분리하여 이더리움의 거래 처리 작업을 수행하고, 결과를 다시 이더리움 메인 체인으로 반환하는 것입니다. 따라서 롤업은 사실 모듈화 설계 원칙입니다. 위에서 언급한 바와 같이, 광의의 모듈화 블록체인은 특정한 것이 아니라 개념이나 설계 원칙입니다. 그러나 협의의 모듈화 블록체인은 블록체인의 합의 및 데이터 가용성의 기본 능력을 캡슐화한 것을 의미합니다. 이 두 층은 블록체인의 기초이며, 복잡성과 난이도가 가장 높습니다. 이 두 층의 능력이 갖춰지면 새로운 체인을 발행하는 문턱과 비용이 매우 낮아지며, 오로지 자신의 비즈니스와 계산에 집중할 수 있습니다.
따라서 Celestia는 데이터 가용성 능력을 모듈화합니다. 합의 메커니즘을 통해 거래 기록을 저장하고 데이터 가용성을 제공하며, 결제 및 실행 층의 일에는 참여하지 않고, 저장만 하며 저장된 것이 유효하다는 것을 보장합니다. 다른 개발자는 롤업 형태로 Celestia 위에 자신의 결제 층과 실행 층을 구축할 수 있습니다. 따라서 Celestia는 블록체인 분야의 AWS와 같습니다. 전통적으로 한 회사가 소프트웨어를 개발하려면 서버를 하나 구매하여 데이터 센터에 두어야 하며, 10개 회사는 10대의 서버가 필요합니다. 그래서 AWS는 여러분이 구매하지 말라고 하고, 제가 큰 서버를 하나 만들 테니 여러분은 소프트웨어 개발에만 집중하라고 합니다. 데이터 저장 및 접근이 필요하면 저에게 오세요. 제가 여러분의 데이터가 유효하다는 것을 보장할 수 있습니다(저장되고, 꺼낼 수 있습니다).
그렇다면 왜 Celestia는 데이터 가용성 층을 모듈화하려고 할까요? 만약 제가 체인을 발행하고 싶다면 가장 어려운 것은 가능한 많은 노드가 제 체인에 참여하여 합의와 데이터 가용성 과정을 완료하도록 하는 것입니다. 이렇게 많은 노드가 제 체인을 유지해야만 체인에서 더 많은 응용 프로그램 실행 작업을 수행할 수 있습니다.
따라서 먼저 L1 체인의 데이터 가용성이 어떻게 이루어지는지를 살펴봐야 합니다. 우리는 블록체인이 자유롭게 참여할 수 있는 많은 노드로 구성되어 있다는 것을 알고 있습니다. 노드가 많을수록 더 안전하고, 더 분산됩니다. 노드는 전체 노드와 경량 노드로 나뉩니다. 전체 노드는 완전한 데이터 장부를 유지해야 하므로 소수의 노드가 악의적으로 공격해도 전체에 영향을 미치지 않습니다. 이것이 블록체인의 근본입니다.
하지만 시간이 지남에 따라 데이터가 점점 많아지면 전체 노드를 유지하는 비용이 너무 높아집니다. 만약 모두가 전체 노드를 유지하고 싶지 않다면 블록체인은 중앙화되어 안전하지 않게 됩니다. 그래서 경량 노드가 존재하게 됩니다. 경량 노드는 전체 거래 데이터를 검증하지 않고 블록 헤드만 저장합니다. 데이터 가용성을 검증해야 할 때, 인접한 전체 노드에 도움을 요청하여 검증을 수행하고, 결과를 다시 반환합니다.
따라서 요약하자면, 체인을 만드는 가장 어려운 점은 많은 노드를 확보하여 제 체인의 합의와 데이터 가용성을 유지하는 것입니다. 이것이 바로 Celestia가 해결하고자 하는 문제입니다. 공식 웹사이트에서는 체인을 만드는 것이 스마트 계약을 만드는 것처럼 간단해지기를 희망한다고 말하며, 여러분은 데이터 문제를 걱정할 필요 없이 Celestia에 맡기고, 오로지 상위 실행 결제에 집중하여 "원클릭 체인 발행" 효과를 실현할 수 있습니다.
Celestia를 살펴본 후, 이제 Cosmos를 살펴보겠습니다. 사실 이 두 조직의 구성원들은 매우 겹치는 부분이 많으며, 많은 사람들이 이 두 조직에 동시에 기여하고 있습니다.
Cosmos의 목표는 블록체인의 인터넷이 되는 것입니다. 먼저, 각 커뮤니티가 자신의 주권 체인을 가질 수 있도록 "체인 발행" 능력을 제공합니다. 주권 체인은 독립적인 블록체인으로, 데이터의 생성과 기록이 내부적으로 폐쇄되어 있습니다. 둘째, 체인 간에 데이터 통신 및 상호작용이 가능하여 만체인 상호 연결을 실현합니다. 이 비전은 여전히 매우 매력적입니다.
그들이 커뮤니티가 자신의 체인을 발행할 필요가 있다고 생각하는 이유는 블록체인을 공공 체인과 전용 체인으로 나누기 때문입니다. 이더리움과 같은 공공 체인에서는 개발자가 두 층의 거버넌스, 즉 체인과 응용 프로그램을 다뤄야 하며, 응용 프로그램은 기본 체인에 의해 제한되므로 응용 프로그램의 가치를 발휘하기가 매우 어렵습니다. 그래서 그들은 각 응용 프로그램에 맞춤형 체인을 생성할 수 있도록 하려고 합니다.
따라서 이 목표를 달성하기 위해서는 먼저 새로운 체인을 발행하는 문턱과 비용 문제를 해결해야 하며, 다음으로 많은 체인 간의 통신 문제를 해결하여 눈덩이 생태계를 형성해야 합니다.
문턱과 비용에 대한 Cosmos의 해결책은 Celestia와 일치합니다. 즉, 기본 능력을 캡슐화하여 블록체인 아키텍처를 세 개의 큰 층으로 나누는 것입니다: 네트워크, 합의 및 응용 프로그램. 네트워크와 합의 층을 캡슐화하며, 계정, 거래, 서명 등의 원자 능력도 포함되어 있습니다. SDK를 제공하여 개발자가 이를 기반으로 주권 체인을 개발할 수 있도록 하며, 미리 설정된 모듈을 통해 블록체인을 사용자 정의하여 구축한 후 Cosmos 네트워크에 배포하고 다른 형제 체인과 상호작용할 수 있습니다. 상호작용은 크로스 체인 통신 프로토콜 IBC를 사용하여 허브 허브의 효과를 실현하며, 다른 체인들은 모두 IBC를 통해 이 허브에 연결되어 데이터 중계를 수행합니다.
따라서 Layer0의 개념을 요약하자면, 그 작업은 주로 체인 발행, 다중 체인 및 크로스 체인 이 세 가지 층에 집중되어 있으며, 체인 발행을 더 간단하게 만드는 것입니다. 하지만 이렇게 많은 체인이 서로 통하지 않으면 힘을 합칠 수 없으므로 크로스 체인 문제를 해결해야 합니다.
Layer1 기본 블록체인
Layer1은 기본 블록체인으로, 잘 알려진 비트코인, 이더리움, 바이낸스 체인 등이 Layer1에 해당하며, Avalanche, Near 및 Terra 등도 포함됩니다. 왜냐하면 이들은 모두 자신의 생태계에서 주요 네트워크로, 자신의 블록체인에서 거래를 처리하고 완료하며, 자체 네이티브 Token을 보유하고 있기 때문입니다. 최근에 새롭게 등장한 두 개의 공공 체인인 Aptos와 Sui도 Layer1입니다. 하지만 많은 사람들이 Layer1과 공공 체인을 혼동하기 쉽습니다. 공공 체인은 Layer1을 포함하지만, Layer1과 동일하지는 않습니다.
Layer1 공공 체인은 암호화 세계에서 가장 깊은 성벽을 가진 생물입니다. 점점 더 많은 노드, 개발자 및 프로젝트가 그 생태계에 참여하게 되면 눈덩이 효과가 매우 뚜렷해집니다. Luna가 Terra와 같은 기본 토큰이 직접 붕괴되지 않는 한, 생태계 내의 복잡한 이해관계는 서로 단단히 묶여 체인의 뿌리가 깊이 뻗어 나가게 됩니다. 따라서 성공적인 Layer1 공공 체인을 만드는 것은 암호화圈에서 수많은 조직이 앞다투어 시도하는 일입니다.
현재 응용 분야에서 가장 큰 Layer1 공공 체인은 이더리움입니다. 따라서 경쟁 체인들은 이더리움 생태계에서 개발자와 사용자를 확보하기 위해 다양한 방법을 모색합니다. 이더리움이라는 귀족 체인은 고점에서 수십 달러의 GAS 비용이 발생하기 때문에 저 같은 일반 소액 투자자에게는 매우 부담스러운 상황입니다. 그래서 현재 대부분의 경쟁 체인은 저가의 GAS와 높은 TPS 전략을 내세워 사용자 자원을 확보하려고 합니다. 예를 들어, 이번 주에 공중에 뜨거운 이슈가 된 Aptos가 있습니다. 간단히 언급하자면, Aptos가 메인넷을 출시한 후 많은 마케팅 계정들이 Aptos가 10KTPS를 자랑한다고 했지만 실제로는 4TPS밖에 되지 않는다고 비난했습니다. 그래서 많은 사람들이 이를 비웃으며 물타기했다고 생각하게 만들었습니다. 10KTPS는 이론적으로 최대 수용량이며, 4TPS는 당시 실제로 실행되고 있는 양입니다. 마치 홍콩-주하이-마카오 대교가 이론적으로 하루에 25만 대의 통과량을 자랑하지만, 실제로는 매일 몇 대의 차량만 통과하는 것과 같습니다. 하지만 홍콩-주하이-마카오 대교의 성능이 물타기라고 할 수 있을까요?
공공 체인을 만드는 것은 도시를 만드는 것과 같습니다. 도시의 번영을 위해서는 먼저 주택, 병원, 쇼핑몰, 철도 등 기본 인프라를 잘 구축해야 하며, 거주하기 좋은 환경을 만들어야 주민들이 이사 오게 됩니다. 만약 체인이 응용 프로그램이 없다면 사용자를 끌어오는 것도 소용이 없습니다. Aptos의 성능이 아무리 뛰어나고 이론적 TPS가 높더라도, 충분한 응용 프로그램이 없다면 차량이 없는 홍콩-주하이-마카오 대교와 같은 상태입니다. 따라서 공공 체인이 개발자를 유치하는 수단은 여러 가지로 나눌 수 있습니다.
- 공공 체인이 개발자에게 충분한 지원을 제공하여, 여기서 응용 프로그램을 개발하면 돈과 유동성을 제공합니다. 그래서 많은 공공 체인의 뒤에는 거래소가 서포트하고 있으며, 많은 자금을 지원받고 있습니다. 그래서 해커톤을 개최하고, 그랜트를 발행하여 투자 유치를 합니다.
- 새로운 공공 체인은 개발자에게 가장 큰 매력은 충분한 공백입니다. 왜냐하면 성숙한 이더리움 경쟁이 너무 치열하고 과열되었기 때문입니다. 새로운 공공 체인으로 가면 이더리움에서 이미 검증된 응용 프로그램을 그대로 가져올 수 있습니다. 최근에 여러분이 보았듯이 Sui에서 NFT 거래 플랫폼, 도메인 서비스 제공업체 등 이더리움에서 이미 잘 알려진 것들이 여전히 큰 자금을 유치했습니다. 그룹에서 많은 사람들이 "언어만 바꾸면 어떤 프로젝트든 다시 만들 수 있다"고 농담하곤 합니다.
- 제가 효과적이라고 생각하는 또 다른 방법은 EVM 이더리움 가상 머신 호환성입니다. 개발자에게 가장 큰 비용은 코드를 작성하는 것이 아니라 코드를 배우는 것입니다. 완전히 낯선 기술 스택을 처음부터 배우고, 실제 개발, 디버깅 등을 진행하는 과정은 많은 개발자를 포기하게 만들 수 있습니다. 그렇다면 이더리움 생태계의 개발자가 새로운 체인으로 원활하게 저비용으로 이전할 수 있는 방법이 있을까요? Mac 컴퓨터에서 Windows 응용 프로그램을 개발하고 디버깅할 수 있는 방법이 있을까요? 가상 머신을 설치하는 것입니다. 여러분 주변에도 Mac을 사용하지만 불편해하는 친구들이 있을 것입니다. 그들은 Windows 시스템으로 변경하거나, 사실상 가상 머신을 실행하는 것입니다. EVM은 이더리움을 위한 스마트 계약을 지원합니다. 따라서 EVM 호환성을 사용하면 개발자는 이더리움의 응용 프로그램을 호환 체인으로 원활하게 이전할 수 있습니다. 잘 알려진 BSC는 EVM 호환 체인입니다.
Layer2 주류 솔루션: 롤업
이제 Layer2에 대해 이야기해보겠습니다. 앞서 많은 Layer1의 경쟁 체인들이 이더리움의 "비쌈"과 "느림"을 겨냥하고 있다고 말씀드렸습니다. 그렇다면 이더리움 자체를 최적화할 방법은 무엇일까요? Layer2는 하나의 방법입니다.
Layer0 부분에서 단일 체인에 대해 언급했을 때, 모든 일을 한 체인에서 처리하면 막히지 않을까요? 이때 누군가는 이더리움의 거래를 외부에서 처리한 후, 결과를 이더리움으로 반환하여 데이터 가용성 처리를 수행할 수 있을까?라는 생각을 했습니다. 이러한 작업 방식이 롤업으로 불리며, Layer2의 주류 솔루션입니다. 마치 원래 한 도로가 매우 막히면, 고가도로를 수리하는 것과 같습니다. 물론 저는 또 다른 흥미로운 설명을 보았습니다. 핵산 검사를 10명 혼합하는 것이 롤업입니다.
따라서 거래를 체인 외부에서 처리하여 이더리움의 느린 합의 과정을 거치지 않고, 이더리움 메인넷의 계산량을 줄이고 전체 처리 속도와 처리량을 높이는 것입니다.
제가 학창 시절에 블록체인 확장에 대한 연구를 하던 중, 당시 작성한 논문에서 제안한 솔루션도 롤업과 유사한 방식이었습니다. 아래 그림과 같습니다.
앞서 언급한 롤업은 계산을 체인 외부에서 실행한 후 결과를 체인에 올리는 과정입니다. 이 과정에서 가장 큰 문제는 이 결과가 유효하다는 것을 어떻게 증명할 것인가입니다. 두 가지 증명 방식이 있으며, 이로 인해 두 가지 주류 롤업 솔루션이 발생했습니다: Optimistic 롤업과 zk 롤업입니다.
이름 그대로, Optimistic의 영어 의미는 낙관적입니다. 즉, Optimistic 롤업은 데이터 유효성을 검증하는 방식으로 사기 증명을 사용합니다. 체인 외부에서 계산한 결과를 이더리움 메인넷에 동기화한 후, 데이터가 올바르다고 낙관적으로 가정합니다. 만약 누군가 데이터가 올바르지 않다고 생각하면, 즉 사기가 존재한다고 생각하면, 질의 기간이라고도 불리는 창구 기간 내에 사기 증명을 통해 집계 거래의 결과를 이의 제기할 수 있습니다.
만약 사기가 존재한다는 것이 증명되면, 거래를 다시 실행하여 데이터 상태를 업데이트하고, 당시 거래를 패키징한 정렬 노드는 처벌을 받게 됩니다. 그들이 제출한 보증금이 삭감되며(정렬 노자가 되기 위해서는 보증금을 지불해야 합니다), 사기 증명을 제출한 검증 노드에게 분배됩니다.
이 과정에서 중요한 역할은 두 개의 노드: 정렬 노드와 검증 노드 외에도 두 개의 중요한 역할이 있습니다: CTC 거래 계약과 SCC 상태 계약입니다.
여기서 논리가 다소 복잡하므로 여러분이 인내심을 가지고 이해해야 합니다. 모든 Optimism의 거래 데이터 블록은 이더리움의 특별한 계약인 CanonicalTransactionChain에 저장됩니다. 약칭 CTC이며, 계약 주소는 다음과 같습니다:
0x5E4e65926BA27467555EB562121fac00D24E9dD2
정렬 노드인 Sequencer는 매 분마다 약 두 배치(배치의 전문 용어는 Batch)를 기록하며, 각 배치에는 수백 개의 거래 데이터가 포함될 수 있습니다. CTC 계약은 거래 데이터 요약을 저장합니다.
또한 거래 후 상태 루트 StateRoot를 StateCommitmentChain 계약에 저장합니다. 약칭 SCC이며, 계약 주소는 다음과 같습니다:
0xBe5dAb4A2e9cd0F27300dB4aB94BeE3A233AEB19
약 6분마다 한 배치를 기록하며, 검증 노드는 이 두 계약의 기록을 읽어 사기 거래가 존재하는지를 검증할 수 있습니다.
이상은 Optimistic이 데이터 유효성을 증명하는 방식입니다. 약간의 게임 이론적인 느낌이 있으며, 양측의 대립과 인센티브 모델을 통해 최소한의 악의적인 사기를 방지하는 효과를 실현합니다. 이제 zk가 어떻게 해결하는지 살펴보겠습니다.
zkSync는 zk 롤업의 주요 플레이어입니다. 그들의 공식 슬로건은 "수학에 의존하라, 검증자에게 의존하지 말라"입니다. 이는 Optimistic 사기 증명에 대한 언급으로, Optimistic에 대한 불만이 가득합니다.
zk 롤업에서는 각 거래의 유효성이 거래 발생 전에 검증됩니다. 정렬 노드는 악의적으로 행동할 수 없습니다. 그러나 Optimistic 롤업에서는 정렬 노드의 행동이 제약을 받지 않기 때문에, 사기 거래를 감시하기 위해 검증 노드가 존재해야 하며, 발견되면 메인넷에 사기 증명을 제출해야 합니다.
zk 롤업의 가장 큰 장점은 Optimistic 롤업에 비해 유효성을 검증하기 위해 순수한 수학적 계산을 사용하기 때문에, 자금을 이더리움으로 이전하는 데 지연이 없다는 것입니다. zk 롤업 계약이 유효성 증명을 완료하면 거래가 실행됩니다. 반면, Optimistic 롤업에서 자금을 인출하는 데는 지연이 발생합니다. 사기 증명을 위한 시간을 남겨두어야 하기 때문입니다.
zk 롤업의 핵심 구조:
체인 상 계약: 논리는 Optimistic과 같으며, 이더리움에 해당하는 스마트 계약을 배포하여 블록 요약 데이터, 검증 계약 등을 저장합니다. 그러나 Optimistic처럼 너무 많은 거래 데이터를 이더리움 체인 상 계약에 게시할 필요는 없습니다. 왜냐하면 그 유효성이 상장되기 전에 이미 증명되었기 때문입니다. 그러나 zk 롤업은 거래 데이터를 스마트 계약의 calldata에 저장할 수 있습니다. 이는 변경할 수 없지만 지속적이지 않은 임시 저장 영역으로, 메모리와 유사합니다. 따라서 필요할 경우 거래 데이터를 가져올 수 있습니다.
체인 외 가상 머신: zk 롤업은 이더리움에 의존하지만, 거래 실행 과정은 독립적인 EVM 가상 머신에서 이루어집니다. 즉, 실제 zk 롤업이 실행되는 환경입니다.
그 과정은 Optimistic과 유사합니다. 사용자가 거래에 서명한 후, zk 롤업의 Layer2 정렬 노드에 제출하여 처리하고 하나의 배치로 패키징한 후 이더리움에 제출합니다.
zkSync에서 사용하는 제로 지식 증명은 매우 복잡하여 많은 암호 수학이 포함되어 있어 이해하기 어려워서, 여기서는 복잡한 수학 공식을 붙여넣어 보이기보다는 제가 이해하지 못한 채로 넘어가겠습니다.