로인 CTO 스티브 궈: 어떤 종류의 2층 네트워크가 진정한 미래인가?

BeWater
2021-09-09 23:57:47
수집
미래의 진정한 이층 네트워크는 어떤 모습일까요?

출처: BeWater Community

image

9월 4일 BeWater DevCon 2021 글로벌 개발자 회의에서, 루프링 CTO Steve Guo는 Intel의 선임 연구 개발 엔지니어,猎豹移动의 선임 연구 개발 이사를 역임했으며, 15세에 과기대 소년반에 입학하고 박사 학위를 보유하고 있습니다. 현장의 개발자들과 함께 "미래의 진정한 2층 네트워크는 어떤 모습일까?"라는 주제로 발표를 진행했습니다.

발표 내용 요약은 다음과 같습니다: 1) 진정한 의미의 2층 네트워크는 보안이 메인넷에 의해 보장되어야 합니다. 2) 2층 네트워크는 상태 채널에서 Plasma로, 그리고 최근에 인기 있는 Rollup 기술로 발전하였으며, 두 가지 분기로 나뉩니다: Optimistic Rollup과 zkRollup입니다. 3) 2층 네트워크의 최종 형태는 zkEVM이며, 누구나 코드를 수정하지 않고 기존 계약을 zkEVM에서 실행할 수 있습니다. 여러분 안녕하세요, 저는 루프링 프로토콜의 CTO Steve Guo입니다. 이번 BeWater 개발자 회의에 초대되어 매우 기쁩니다. 오늘 제가 여러분과 논의하고 싶은 주제는 어떤 2층 네트워크가 진정한 미래인지입니다.

1. 2층 네트워크란 무엇인가?

image 우리는 이 페이지에서 시작하여 2층 네트워크가 무엇인지 정의해 보겠습니다. 제 생각에 Polygon, xDai, BSC와 같은 사이드체인은 엄밀한 의미에서 2층 네트워크로 간주되지 않습니다. 진정한 의미의 2층 네트워크는 보안이 메인넷에 의해 보장되어야 합니다.

기술적 관점과 진화적 관점에서 가장 초기의 2층 네트워크 기술은 상태 채널이라고 불리며, 그 후 Plasma로 발전하였고, 최근에 매우 인기 있는 Rollup 기술로 이어졌습니다. Rollup은 다시 두 가지 분기로 나뉘며, 하나는 Optimistic Rollup이고 다른 하나는 zkRollup입니다.

이제 제 발표는 이 몇 가지 기술의 진화를 중심으로 현재 2층 네트워크 발전의 전체 역사를 안내하겠습니다.

1. 상태 채널 image 먼저 첫 번째 2층 네트워크 기술인 상태 채널을 살펴보겠습니다.

상태 채널의 가장 초기 기원은 비트코인 내의 라이트닝 네트워크에서 시작되었으며, 이더리움에서는 가장 초기의 프로젝트 중 하나인 "라이트닝 네트워크"가 비트코인의 라이트닝 네트워크와 같은 기술을 복제하려고 시도했습니다.

상태 채널의 핵심 아이디어는 예를 들어 Alice와 Bob이 오프라인에서 자주 송금해야 할 경우, Alice와 Bob이 서로 합의하여 계약에 돈을 충전하는 것입니다. 예를 들어 A가 5개를 충전하고 B도 5개를 충전한 후, 체인 외부에서 A와 B가 서로 송금할 수 있습니다. 예를 들어 이 슬라이드에서 보여주는 것처럼, B가 A에게 1개를 송금하면 A는 6개, B는 4개가 됩니다. 이후 A가 B에게 3개를 송금하면 결국 A는 3개, B는 7개가 됩니다.

최종적으로 체인에서 결산할 때, 최종 상태를 체인에 기록하여 마지막에 각자가 나가면, 예를 들어 최종적으로 A는 3개, B는 7개가 되는 것을 볼 수 있습니다.

핵심은 체인 외부에서 서로 서명 확인 방식으로 무한히 송금할 수 있다는 것입니다.

그의 가장 큰 단점은 무엇인가요? A와 B는 반드시 서로 간에 메인넷에 확정된 계약을 배포해야 합니다.

이후 라이트닝 네트워크와 CelerNetwork와 같은 프로젝트가 A와 B 간의 상호 결산을 허브와 연결하여 점대점 송금을 점대 네트워크 송금으로 발전시켰습니다.

하지만 이것은 여전히 한계가 있습니다. 첫째, 스마트 계약에 자금을 미리 담보해야 하며, 둘째, 이 전체 기술 세트는 "송금 결제"라는 관점에서만 해결됩니다. 하지만 모두가 알고 있듯이 블록체인의 가장 큰 의미는 프로그래머블 애플리케이션에 있으며, 단순한 결제에 그치지 않습니다. 이후 2층 네트워크 기술은 자연스럽게 두 번째 세대 Plasma로 발전하게 되었습니다.

2. 두 번째 세대 Plasma image 위의 2층 네트워크 기술은 Plasma라고 불리며, 이는 제가 방금 언급한 "상태 채널" 해결책에서 자금을 미리 잠금 문제를 해결하려고 시도하는 것입니다.

그의 해결 아이디어는 무엇인가요? 사실 그의 아이디어는 매우 간단합니다. 체인 상에는 스마트 계약이 있어야 하며, 누구나 이 체인 상의 계약에 충전하거나 인출할 수 있습니다.

체인 외부에는 Plasma Chain이라는 개념이 있으며, 자금이 이 계약에 들어가면 체인 외부에서 송금을 시작할 수 있습니다. Plasma Chain은 체인 외부에서 발생한 거래를 지속적으로 수집하여 패키징한 후, 최종 상태 Merkle 루트를 메인 체인 계약에 제출하여 기록합니다.

일정 기간 내에 아무도 이의 제기를 하지 않으면, 예를 들어 7일 이내에 아무도 이의 제기를 하지 않으면, 역사 기록은 더 이상 변경될 수 없습니다. 만약 누군가 7일 이내의 송금에 이의를 제기하면, 그는 challenge를 제출하여 특정 송금이 잘못 처리되었다고 증명하여 자산을 최종적으로 인출할 수 있습니다. 이러한 아이디어는 상태 채널이 자금을 미리 담보해야 하는 문제를 해결할 수 있습니다.

그의 초기 솔루션은 여전히 송금 결제라는 장면만 지원했습니다. 예를 들어 초기 Plasma MVP에서 Plasma Cash, Plasma Debit와 같은 프로젝트로 발전하였습니다. 결국 Plasma는 여전히 사용하기 어렵다는 것을 발견했습니다.

첫 번째로, 그는 7일 또는 2주와 같은 퇴출 도전 기간이 있습니다.

두 번째로, 그의 보안성은 무엇에 의존하나요? Plasma Chain이 메인 체인에 제출하는 것은 단지 Merkle 루트일 뿐이며, Plasma Chain에서 발생한 모든 거래 정보는 체인 외부에 기록됩니다. 이는 무엇을 의미하나요? 이는 제가 제출한 Merkle 루트를 제출하는 Relayer가 실제로 작업을 수행하고 있다는 것에 의존해야 함을 의미합니다.

3. Optimistic Rollup image Plasma의 문제를 해결하기 위해 자연스럽게 현재 인기 있는 Optimistic Rollup으로 발전하게 됩니다.

여러분이 이 그림을 보시면 Optimistic Rollup은 위의 Plasma와의 유일한 차이점은 메인 체인에 제출하는 것이 단순히 세계 상태의 Merkle 루트뿐만 아니라, 체인 외부에서 발생한 모든 거래 데이터도 동시에 체인에 올린다는 것입니다. 그리고 누구나 체인 상에서 공개된 블록체인 기록 정보를 기반으로 도전을 할 수 있습니다.

예를 들어 S2 상태가 S3 상태로 전환될 때, 누군가 도전이 있다면 그는 블록체인 기록의 일부 역사 정보를 기반으로 당신의 처리가 잘못되었다고 주장할 수 있습니다.

따라서 Plasma가 Optimistic Rollup으로 발전하면서 그의 보안성은 "퇴출 도전 메커니즘"에 의존하게 되지만, 데이터 가용성 문제를 해결하여 사람들이 기존 데이터에 기반하여 체인에서 직접 도전할 수 있도록 하였습니다. 이는 그의 가장 큰 개선점입니다.

게다가 Optimistic Rollup은 송금 외의 장면도 지원할 수 있으며, 일반 프로그래밍을 지원할 수 있습니다.

이러한 아이디어는 현재 두 개의 프로젝트가 이 방향으로 나아가고 있으며, 하나는 Optimism이고 다른 하나는 Arbitrum입니다.

4. Optimism image

먼저 Optimism에 대해 이야기하겠습니다. Optimism은 Optimistic Rollup을 만들겠다고 가장 먼저 발표한 팀이며, 이 팀은 Plasma와도 연결되어 있습니다. 따라서 Uniswap도 처음에 Optimism에 가장 먼저 배포할 것이라고 말했습니다.

그의 핵심 아이디어는 도전을 해결하는 방법입니다. 즉, 누군가 2층 네트워크에서 거래를 제대로 처리하지 않았다는 것을 발견하면, 이 문제를 어떻게 도전할 것인가를 추상화한 것입니다.

즉, 이더리움 1층에 계약을 배포하여, 이 계약은 무엇을 수용하나요? 그가 정의한 OVM이라는 명령어 집합을 실행합니다. 여러분은 그가 메인 체인에 제출한 공개 정보를 활용하여 OVM의 실행을 유도할 수 있습니다. 만약 이 OVM 실행이 이러한 값이 잘못되었다고 판단하면, 도전이 성공한 것입니다.

기본적으로 Optimism의 아이디어는 OVM의 명령어 집합이 EVM과 최대한 일치하도록 하려는 것이지만, 사실 그는 100% 호환성을 달성하지 못했습니다. 일부 명령어는 수정되었습니다.

이러한 명령어가 수정되어야 하므로, 그는 사실상 100% EVM과 호환되기 어려워졌으며, 이는 그가 계속해서 연기되고 최종 메인넷 출시가 지연되는 이유 중 하나일 수 있습니다.

5. Arbitrum image Arbitrum은 이러한 기회를 보았다고 생각합니다. 즉, 1층의 스마트 계약 내에서 EVM 명령어 집합을 실행하는 것은 매우 어려운 일입니다.

나는 EVM을 내 자신의 VM 명령어로 다시 수정할 수 있을까? 그는 Arbitrum 명령어 집합이라고 불리는 AVM을 만들었습니다. 따라서 1층 스마트 계약 내에서 실행되는 것은 실제로 AVM 명령어 집합입니다. 이러한 아이디어는 본질적으로 OVM 방식보다 더 효율적으로 수행될 수 있습니다.

동시에 그는 OVM의 Optimism 도전 메커니즘에서 발생하는 큰 문제인 가스 소비, 즉 도전 한 번의 가스 소비가 너무 높은 문제를 해결했습니다. 그의 해결 아이디어는 분할 도전을 사용하는 것입니다. 이분법과 유사합니다.

먼저 당신에게 1000단계까지 실행이 올바르다고 증명하게 한 다음, 512로 줄이고, 256으로 줄여가며, 단계적으로 일련의 명령어 시퀀스를 실행하여 도전의 출력을 성공 또는 실패로 만듭니다.

Arbitrum 메인넷은 8월 31일에 정식 출시되었으며, 이미 여러 프로젝트가 Arbitrum으로 이전되었습니다. 예를 들어 Sushi, MCDex 등이 있습니다.

하지만 실제로 발견된 문제는 원래 사람들이 이러한 2층 네트워크가 비용을 크게 줄일 것이라고 생각했지만, 실제 상황은 Arbitrum의 메인넷에서 한 거래의 비용이 메인넷의 1/5에서 1/10 정도로 줄어들었으며, 이는 여전히 우리의 기대에 훨씬 못 미칩니다. 저는 아마도 한 단계 더 높여야 진정한 2층 네트워크가 될 것이라고 생각합니다.

2. zkRollup image 이제 두 번째 큰 분기인 zkRollup에 대해 이야기하겠습니다.

1. ZKP란 무엇인가?

zkRollup에 대해 이야기할 때 먼저 ZKP가 무엇인지 설명해야 합니다. ZKP는 이름 그대로 제로 지식 증명으로, 제로 지식 증명이 무엇을 하는 것인가요?

f(X)=Y라는 예를 들어보면, 이는 제가 X 값을 알고 있다는 것을 증명할 수 있으며, 함수 f를 통해 Y를 출력할 수 있지만, X가 무엇인지 알려줄 수는 없고, 당신이 이 사실을 믿게 해야 한다는 것입니다. 이것이 제로 지식 증명입니다. 여기서 함수 f는 공개되어 있고, 연산 결과 Y도 공개되어 있지만, 제 X는 비공개입니다.

image 좀 더 직관적인 예를 들어 제로 지식 증명을 이해해 보겠습니다. 이 그림은 "월리를 찾아라"라는 것입니다. 문제는 이 큰 그림에서 위의 작은 사람의 위치를 찾으려는 것입니다.

제로 지식 증명을 하려면, 저는 이 큰 그림에서 이 작은 사람의 위치를 알고 있다는 것을 알려야 하지만, 이 작은 사람이 그림에서 구체적으로 어디에 있는지는 알려줄 수 없습니다.

대체로 문제를 변환하는 해결 아이디어가 필요합니다. 제로 지식 증명의 본질은 문제를 변환하는 것입니다. A 문제를 동등한 다른 영역의 B 문제의 증명으로 변환하는 것입니다. 예를 들어 월리를 찾는 제로 지식 문제를 해결하기 위해, 저는 매우 큰 검은 천을 사용하여 월리 작은 사람을 미리 잘라냅니다.

그런 다음 이 큰 검은 천을 이 그림 위에 덮어 작은 사람만 드러나게 합니다. 이렇게 하면 저는 당신에게 이 그림에서 작은 사람의 위치를 찾을 수 있다는 제로 지식 증명을 한 것입니다. 하지만 당신은 여전히 이 작은 사람이 그림에서 구체적으로 어디에 있는지는 모르기 때문에 전체 검은 천에 가려져 있습니다.

2. zkRollup 소개 image 이제 ZKRollup의 아이디어에 대해 이야기하겠습니다. ZKRollup은 기술의 총칭입니다. 그의 핵심 아이디어는 이 그림에서 나타나는 것처럼 세계 상태를 모든 계정으로 구성된 Merkle 트리로 추상화하는 것입니다. 계정에는 자신의 계정과 관련된 정보가 포함되어 있으며, 이러한 Merkle 트리는 현재 세계 상태를 나타내는 고유한 루트를 가지고 있습니다.

저는 체인 외부에서 계정에 대한 변경을 수행할 수 있으며, 이는 임의의 거래로 계정 정보를 변경할 수 있습니다. 이를 거래 Tx 정보라고 하며, 체인 외부에서 모든 Tx 정보를 수집한 후, 각 Tx 처리로 인한 세계 상태의 변화를 제로 지식 증명으로 증명할 수 있습니다.

먼저 이 Tx가 실제임을 증명하고, Tx가 이전 세계 상태에서 다음 세계 상태로 변할 수 있음을 증명하며, 최종 세계 상태 정보는 체인에 기록됩니다.

따라서 특정 역사적 상태가 체인에서 확인되면 영원히 변경될 수 없으며, 저는 변경할 수 없는 역사 기록을 기반으로 이후의 일련의 Tx를 추가하여 다음 새로운 세계 상태를 증명하고 유도할 수 있습니다. 이렇게 계속해서 체인에 최신 세계 상태를 업데이트하는 시스템을 ZKRollup 솔루션이라고 합니다.

3. 루프링 프로토콜 image 우리는 루프링 프로토콜이 세계 최초의 ZKRollup을 메인넷에 적용한 사례입니다. 우리는 ZKRollup 이론을 Dex 거래에 확장하였습니다.

우리는 Dex 거래에 대해 이전에 소개한 ZKRollup 계정 모델에서 더 나아가 추상화하였습니다. 예를 들어 우리는 계정 아래에 Balance를 두고, Balance 아래에 Trade History를 두었지만, 본질적으로 여전히 큰 Merkle 트리이며, 전체 Merkle 트리가 나타내는 세계 상태를 지속적으로 체인에 업데이트합니다. image

이후 잘 알려진 Matter Labs의 ZKSync 솔루션이 있으며, ZKSync 솔루션은 현재 2.0으로 발전하였습니다. 1.0은 우리 루프링 프로토콜과 매우 유사하며, 송금, 거래, 결제와 같은 몇 가지 장면만 해결하였습니다. ZKRollup 기술은 사실상 동일하지만, 각자가 선택한 제로 지식 증명 알고리즘은 다릅니다.

우리 루프링 프로토콜은 Groth16 알고리즘을 선택하였고, ZKSync는 Plonk 제로 지식 증명 알고리즘을 사용합니다. 이후 ZKSync는 ZKPorter를 발표하였으며, ZKPorter는 ZKSync 2.0이라고 불립니다.

그의 차이점은 무엇인가요? ZKSync 1.0에서는 모든 거래 데이터가 체인에 올라갑니다. 하지만 ZKPorter에서는 TPS를 높이기 위해 모든 체인 외부 거래 정보가 체인에 올라가지 않으며, 체인 외부 거래 정보는 PoA와 유사한 그룹이 체인 외부 거래 데이터를 정확하게 저장하는 방식입니다.

ZKPorter 솔루션은 Z KRollup이라고 완전히 말할 수 없으며, ZKRollup의 아이디어는 모든 Tx 정보를 체인에 제출해야 한다는 것입니다. ZKPorter는 제가 다음에 이야기할 StarkEx 솔루션과 유사합니다. image

StarkWare가 출시한 StarkEx 솔루션으로 돌아가면, 이 그림은 StarkEx의 전체 소개입니다. 사실 내부의 핵심도 여전히 Merkle 트리로 구성되어 있으며, ZKRollup의 아이디어를 사용하여 세계 상태를 지속적으로 업데이트합니다.

하지만 그는 처음부터 자신의 프로그래밍 언어인 Cairo를 정의하였으며, 모든 사람은 그의 언어를 사용하여 작성해야 하며, 그는 Cario 언어로 생성된 프로그램 실행을 위해 제로 지식 증명을 생성합니다. 그러나 StarkWare는 루프링과 ZKSync와의 차이점은 그가 선택한 제로 지식 증명 알고리즘이 zkStark라는 것입니다.

이 세 가지 제로 지식 증명 알고리즘의 핵심 차이점은…Groth16은 각 회로에 어떤 변경이 있을 때마다 신뢰할 수 있는 설정을 한 번 실행해야 하므로 프로그래머블성이 상대적으로 떨어집니다. 하지만 그의 장점은 증명의 크기가 가장 작고, 체인에서 증명 검증 작업량도 적어 비용 우위가 큽니다.

Plonk는 일반 설정을 지원하는데, 즉 전역적으로 한 번 신뢰할 수 있는 설정을 실행하면 이후에 어떤 회로를 변경하더라도 다시 실행할 필요가 없습니다.

ZKStark는 더 나아가 신뢰할 수 있는 설정이 전혀 필요하지 않으며, 언제든지 회로를 변경할 수 있지만, 이는 일정한 대가를 가져오며, 그의 증명의 크기는 가장 크고, 체인에서 증명 검증 작업량도 많습니다.

이것이 StarkWare가 처음에 거래 데이터를 체인에 올리지 않았던 이유일 수 있으며, 그렇지 않으면 그의 상장 비용이 여전히 상당히 높습니다.

이것이 현재 모든 2층 솔루션의 요약이지만, 저는 이것이 제가 구상한 최종 2층 네트워크에 훨씬 미치지 못한다고 생각합니다.

4. zkEVM image 최종적인 2층 네트워크는 일반적인 zk 가상 머신이라고 생각하며, 이를 zkEVM이라고 정의합니다. zkEVM은 몇몇 회사가 이미 작업을 시작하였으며, Hermez와 Matter Labs도 일반적인 zkEVM을 만들고자 합니다. StarkWare의 Cairo는 본질적으로 프로그래머블을 지원하며, 일종의 zkEVM으로 간주될 수 있습니다.

하지만 결국 이더리움 생태계에서 가장 좋은 솔루션은 사람들이 코드를 수정하지 않고, 스마트 계약의 컴파일된 코드를 zkEVM 가상 머신에서 직접 실행할 수 있도록 하는 것입니다. 이러한 아이디어가 궁극적인 미래가 될 수 있습니다.

이더리움 재단도 바로 이러한 프로젝트를 진행하고 있으며, 이 그림은 이더리움 재단의 zkEVM 아이디어를 요약하려고 합니다.

여러분이 이 그림의 오른쪽 상단을 보시면, 이는 고전적인 폰 노이만 컴퓨터 모델입니다. 컴퓨터는 CPU 프로세서를 포함하며, 프로세서 외부에는 저장소, 메모리, 하드 드라이브 및 주변 장치가 있습니다.

저장소와 CPU 및 주변 장치 메모리 간의 통신은 버스를 통해 이루어지며, 데이터를 가져오고 저장하는 방식입니다. 이것이 폰 노이만 고전 컴퓨터 모델입니다.

zkEVM은 이 모델을 참고하여, zkEVM 가상 머신 내의 명령어 집합은 EVM에서 정의한 명령어 집합과 직접적으로 일치합니다. 각 프로그램 코드가 실행된 후에는 트레이스가 생성되며, 저는 모든 트레이스를 기반으로 증명을 수행하여 이 트레이스가 프로그램 코드의 명령어에 따라 정확하게 실행되었음을 증명합니다.

여기에는 다음이 포함됩니다:

첫 번째로, 각 EVM 명령어 실행이 올바른지 증명해야 하며, 실행 순서가 올바른지 증명해야 합니다. 이를 EVM 증명이라고 합니다.

두 번째로, EVM 실행 과정에서 저장소의 값을 저장하거나 메모리 또는 스택에서 변수를 접근하는 것과 같은 작업이 포함됩니다. 이 세 가지—저장소, 메모리, 스택은 모두 상태라고 하며, 이러한 상태의 저장 및 접근에 대해서도 적절한 제로 지식 증명을 수행해야 합니다. 저는 이 저장 및 접근 작업이 올바르다는 것을 증명해야 합니다.

EVM 증명과 상태 증명 간에는 버스 매핑이라는 다리 개념이 있습니다. 이는 EVM 명령어가 어떤 특정 상태에 접근해야 하는지를 설명하고, 이러한 접근이 올바르다는 것을 증명합니다.

이러한 시스템이 배포되면 모든 스마트 계약이 원활하게 이전될 수 있으며, 이는 진정한 최종 2층 네트워크의 궁극적인 형태가 될 수 있다고 생각합니다. image

감사합니다. 질문이 있으시면 언제든지 저에게 연락해 주시기 바랍니다. 루프링의 코드에 관심이 있으신 분은 GitHub를 직접 방문하실 수 있습니다. 이메일로도 저에게 연락하실 수 있습니다. 감사합니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축