ZK 롤업: 방 안의 코끼리
원제목:《[ZK series - 1] ZK Rollups: Elephant In the Room》
저자:Jaehyun Ha
편집:심조TechFlow
요약
제로 지식 증명(ZKPs)은 더욱 개인적이고 확장 가능한 블록체인 생태계를 구축할 것으로 기대되지만, 제로 지식(ZK)에 대한 많은 측면이 오해되거나 일반적인 인식과 다르게 구현되고 있다.
ZKPs는 주로 두 가지 측면이 있다: "제로 지식"과 "간결성". 이러한 주장은 틀리지 않지만, 대부분의 ZK 롤업은 간결성 속성만을 활용하고 있으며, 거래 데이터와 계좌 정보는 완전히 제로 지식 또는 개인적으로 유지되지 않는다.
다양한 유형의 DApp에 대해, ZK 롤업은 최상의 개발 스택 선택이 아닐 수 있다. 예를 들어, ZKPs 생성이 빠른 종결의 병목이 되어 Web3 게임의 성능을 저하시킬 수 있으며, 상태 차이에 기반한 데이터 가용성 보장 방법은 DeFi 대출 프로토콜의 서비스에 해를 끼칠 수 있다.
그림 1: ZK는 훌륭한 유행어이다
블록체인 산업의 현재 상태는 제로 지식( ZK ) 시대에 비유될 수 있다. 어디를 가든 ZK가 두드러지며, ZK를 이름에 포함하지 않은 차세대 블록체인 프로젝트를 찾는 것은 점점 더 드물어지고 있다. 기술적인 관점에서 볼 때, ZK는 더 확장 가능하고 개인적인 블록체인 생태계에 기여할 수 있는 유망한 기술이라는 것은 부인할 수 없다. 그러나 ZK의 복잡한 기술적 배경으로 인해 많은 투자자, 개인 투자자든 기관 투자자든, 종종 "믿는다"는 이유로 ZK 프로젝트에 투자하게 되며, 이는 멋져 보이고 혁신적이며 블록체인 삼중고 문제를 해결할 수 있을 것 같지만, ZK 기술이 각 프로젝트에 어떻게 이익을 줄 수 있는지 완전히 이해하지 못한 채 이루어진다.
이번 ZK 시리즈에서는 ZK 롤업의 간과할 수 없는 사실(단점과 약점)과 유익한 응용을 탐구할 것이다. 먼저, 블록체인에서 ZK 증명(ZKPs)의 두 가지 핵심 속성인 "제로 지식"과 "간결성"을 분석할 것이다. 그런 다음, 현재 서비스 중인 많은 ZK 롤업이 왜 "제로 지식" 측면을 실제로 활용하지 못하고 있는지 논의할 것이다. 이어서, ZK 롤업을 적용하는 것이 해롭고 유익하지 않은 분야를 연구하고, 구현의 복잡성 등 잘 알려진 문제를 피할 것이다. 마지막으로, ZK 원칙을 효과적으로 구현하고 ZK 기술 사용으로부터 명백한 이익을 얻는 뛰어난 프로젝트를 강조할 것이다.
회고: ZK 롤업의 거래 생애 주기
롤업은 체인 외부에서 거래 묶음을 실행한 후 최신 L2 상태의 요약 데이터를 L1에 저장하여 L1의 처리량 제한을 해결하는 확장 솔루션이다. 이 중 ZK 롤업의 두드러진 특징은 체인에서 오프체인 계산의 유효성을 증명하는 증명을 제출함으로써 자금을 신속하게 인출할 수 있다는 점이다. ZK 롤업의 문제를 깊이 연구하기 전에, 간단히 거래 생애 주기를 회고해 보자.
그림 2: ZK 롤업의 거래 생애 주기
각 L2 사용자는 거래를 생성하고 시퀀서에게 제출한다.
시퀀서는 여러 거래를 집계하고 정렬한 후, 이 거래들을 오프체인에서 실행하여 새로운 롤업 상태를 계산한다. 이후 시퀀서는 이 새로운 롤업 상태를 "배치" 형태로 체인 상태 스마트 계약에 제출하고, 데이터 가용성을 보장하기 위해 해당 L2 거래 데이터를 데이터 블록으로 압축한다.
이 배치는 증명자에게 전송되며, 증명자는 해당 배치 실행의 유효성 증명(ZKP)을 생성한다. 그런 다음 이 유효성 증명은 추가 데이터(즉, 이전 상태 루트)와 함께 L1의 검증자 스마트 계약으로 전송되어 검증자가 검증하고 있는 내용을 식별하는 데 도움을 준다.
검증자 계약이 증명의 유효성을 확인한 후, 롤업의 상태가 업데이트되고 제출된 배치의 L2 거래가 완료된 것으로 간주된다.
(참고: 이 설명은 ZK 롤업 과정의 단순화된 버전이며, 각 구현은 프로토콜에 따라 다를 수 있다. 역할을 구분하면 L2에는 집계기, 실행기 및 제안자와 같은 더 많은 엔터티가 있을 수 있으며, 데이터 블록의 계층도 블록, 블록 그룹 및 배치와 같이 그 용도에 따라 다를 수 있다. 위의 설명은 중앙 집중식 시퀀서가 거래를 실행할 수 있는 강력한 권한을 가지고 있으며, 통일된 데이터 블록 형식을 배치로 생성한다고 가정한다.)
Optimistic Rollups와 달리, ZKPs(예: ZK-SNARKs 또는 ZK-STARKs)의 혜택 덕분에 ZK 롤업은 모든 거래를 재생하지 않고도 수천 개의 거래 실행의 정확성을 검증할 수 있다. 그렇다면 이 ZKP는 무엇이며, 어떤 특성을 가지고 있을까?
ZKPs의 두 가지 속성: 제로 지식과 간결성
말 그대로 ZKP는 기본적으로 증명이다. 증명은 제공자가 주장하는 내용을 충분히 지원할 수 있는 모든 것을 의미한다. 예를 들어, Bob(제공자)이 Alice(검증자)에게 자신의 노트북에 대한 권한이 있음을 믿게 하고 싶다고 가정해 보자. 이를 증명하는 가장 간단한 방법은 Bob이 Alice에게 비밀번호를 알려주는 것이다. Alice는 노트북에 비밀번호를 입력하고 Bob이 실제로 권한이 있는지를 검증한다. 그러나 이 검증 과정은 Alice와 Bob 모두에게 불만족스러운 것이다. 만약 Bob이 매우 길고 복잡한 비밀번호를 설정했다면, Alice가 올바르게 입력하기는 매우 도전적일 것이다(가정하건대 Alice는 복사 및 붙여넣기를 할 수 없다). 더 현실적으로는, Bob이 자신의 권한을 증명하기 위해 비밀번호를 Alice에게 공개하고 싶지 않을 수도 있다.
만약 Alice가 Bob이 비밀번호를 공개하지 않고도 컴퓨터의 권한을 신속하게 검증할 수 있는 검증 과정이 있다면 어떨까? 예를 들어, Bob이 Alice 앞에서 지문 인식으로 노트북을 잠금 해제할 수 있다면, 그림 3에서 보듯이(이것은 ZKP의 완벽한 예는 아니다). 이것이 바로 Alice와 Bob이 ZKPs의 두 가지 핵심 속성인 제로 지식 속성과 간결성 속성에서 이익을 얻을 수 있는 지점이다.
그림 3: 제로 지식과 간결성의 고급 직관
제로 지식( ZK )
제로 지식 속성은 제공자가 생성한 증명이 유효성 증명 외에 비밀 증인(즉, 개인 데이터)에 대한 어떤 정보도 누설하지 않으며, 검증자가 데이터에 대해 아무것도 알지 못하게 한다는 것을 의미한다. 블록체인에서 이 속성은 개인 사용자의 프라이버시를 보호하는 데 사용할 수 있다. 모든 거래에 ZKPs를 적용하면 사용자는 거래 세부정보(예: 송금, 계좌 잔액 업데이트, 스마트 계약 배포 및 실행)를 공개하지 않고도 자신의 행동의 합법성을 증명할 수 있다(즉, 사용자가 거래를 수행할 충분한 자금을 보유하고 있음을 증명).
간결성
간결성 속성은 ZK가 대규모의 주장에서 짧고 빠르게 검증할 수 있는 증명을 생성할 수 있음을 의미한다. 다시 말해, 큰 것을 압축하여 간결한 형태로 만든다는 것이다. 블록체인에서 이 점은 롤업에 특히 유용하다. ZKPs를 사용하여 L2의 검증자는 L1의 검증자에게 간결한 증명을 제출하여 거래의 올바른 실행을 주장할 수 있다(테라바이트 수준의 거래 유효성은 10~100 KB의 증명으로 표현될 수 있다). 그런 다음 검증자는 모든 거래를 재생하는 대신 간결한 증명을 검증하여 짧은 시간(즉, 10밀리초에서 1초 사이) 내에 실행의 유효성을 쉽게 확인할 수 있다.
ZK 롤업은 훌륭하지만, 개인 정보 보호를 의미하지는 않는다
위에서 설명한 ZKP의 특성은 ZK 롤업에서 잘 활용되고 있다. 비록 검증자가 제공자로부터 수신한 ZKPs에서 원래 거래 데이터를 추론할 수는 없지만, 간결한 증명을 검증함으로써 제공자의 주장(즉, 새로운 L2 상태)을 효과적으로 검증할 수 있다. 즉, 현재의 ZK 롤업이 완전히 제로 지식과 간결성 속성을 따르고 있다고 주장하는 것은 오해의 소지가 있다. 이는 제공자와 검증자 간의 상호작용에 집중할 때는 맞을 수 있지만, ZK 롤업에는 시퀀서, 제공자 및 롤업 노드와 같은 다른 구성 요소가 존재한다. 그렇다면 "제로 지식" 원칙이 그들에게도 보장되는가?
어떤 ZK 롤업에서도 ZKPs를 통해 완전한 개인 정보를 구현하는 데 도전이 되는 것은, 다른 부분이 공개된 상태에서 일부 부분이 ZK를 통해 개인적으로 변할 때 발생할 수 있는 타협이다. ZK 롤업의 거래 생애 주기를 생각해 보자. 거래가 사용자로부터 시퀀서로 전송될 때 프라이버시는 유지되는가? 제공자에게는? 또는 L2 배치가 DA 레이어에 제출될 때 개별 계좌 정보의 프라이버시가 보호되는가? 현재 이러한 상황은 성립하지 않는다.
그림 4: ZK 롤업에서의 프라이버시 유출
대부분의 주류 ZK 롤업에서 시퀀서 또는 제공자(또는 다른 강력한 권한을 가진 중앙 집중화된 엔터티)는 거래 세부정보를 명확하게 볼 수 있다. 여기에는 송금 금액, 계좌 잔액 업데이트, 계약 배포 및 실행이 포함된다. 간단한 예를 들어보자. 당신은 어떤 ZK 롤업 블록 탐색기를 통해 모든 언급된 세부정보를 쉽게 관찰할 수 있다. 뿐만 아니라, 중앙 집중식 시퀀서가 어떤 이유로 서비스를 중단하고 다른 롤업 노드가 롤업 상태를 복구하려고 시도하는 경우를 고려해 보자. 그것은 DA 레이어(대부분의 경우 L1 이더리움)에서 공개적으로 게시된 L2 데이터에서 정보를 추출하고 L2 상태를 재구성할 것이다. 이 과정에서 DA 레이어에 저장된 L2 거래를 재생할 수 있는 모든 노드는 각 사용자 계좌 상태에 대한 정보를 복구할 수 있다.
따라서 현재 ZK 롤업에서 "제로 지식"이라는 용어는 단편적으로 구현되고 있다. 비록 이것이 잘못된 것으로 간주될 수는 없지만, "ZK는 제로 지식과 동등하게 완전한 개인 정보 보호"라는 일반적인 인식과는 분명히 다르다. 현재 ZK 롤업의 혁신은 "제로 지식"이 아닌 "간결성" 속성을 활용하는 데 있다. 즉, 오프체인에서 거래를 실행하고 검증자에게 간결한 증명을 생성하여 그들이 신속하고 확장 가능하게 실행의 유효성을 검증할 수 있도록 하는 것이다.
이러한 이유로, Starknet과 같은 일부 ZK 롤업은 혼란을 피하기 위해 자신을 "유효성 롤업"이라고 부르며, 진정한 ZK 개인 정보를 보장하는 다른 프로젝트인 Aztec은 자신을 ZK-ZK 롤업으로 표시한다.
ZK 롤업의 실용성에 대한 심층 고려
앞서 언급했듯이, 대부분의 ZK 롤업은 ZK 개인 정보를 완전히 구현하지 못하고 있다. 그렇다면 우리의 다음 목표는 무엇인가? 롤업의 각 부분에 ZK를 전면 배치하여 완전한 거래 개인 정보를 구현하는 것인가? 사실, 이것은 간단한 문제가 아니다. 기술을 더욱 성숙시키기 위해 상당한 기술적 발전이 필요할 뿐만 아니라, ZK는 이데올로기(예: 개인 거래의 불법 사용)와 실용성(예: 실제로 유용한가?) 측면에서 여전히 논란이 있는 문제이다. 완전한 거래 개인 정보 보호에 대한 도덕적 문제에 대한 논의는 이 글의 범위를 넘어서는 만큼, 우리는 블록체인 프로젝트에서 ZK 롤업이 직면하는 두 가지 실용성 문제에 집중할 것이다.
첫 번째: ZKP 생성이 빠른 결정성의 병목일 수 있다
먼저 ZK 롤업 자체의 실용성에 대해 논의해 보자. ZK 롤업의 가장 주목할 만한 장점은 거래의 "빠른 종결" 덕분에 자산 인출 지연 시간이 단축된다는 것이다. 이는 ZKP 덕분이다. 향상된 TPS와 낮은 거래 수수료는 추가적인 이점이다. ZK 롤업의 특성을 가장 효과적으로 활용하는 분야는 게임 산업이다. 게임 내 통화의 입출금이 매우 빈번하게 발생하며, 매초 많은 게임 내 거래가 발생한다.
하지만 ZK 롤업이 정말로 게임의 최상의 기술 스택으로 간주될 수 있을까? 이에 대해 우리는 ZK 롤업의 "빠른 종결" 개념을 더 깊이 생각해 볼 필요가 있다. 상상해 보자. 한 사용자가 ZK 롤업 기반 기술 스택에서 운영되는 Web3 게임을 즐기고 있다. 사용자는 게임 내 아이템을 게임 화폐로 거래하고, 해당 자산을 게임에서 인출하려고 한다.
자산을 인출하기 위해서는 게임 내 거래가 종결되어야 한다. 이는 거래가 새로운 롤업 상태 약속에 포함되어야 하며, 해당 ZKP가 L1에 제출되어야 하고, 거래가 불가역적임을 보장하기 위해 L1 이더리움에서 증명의 종결을 기다려야 한다는 것을 의미한다. 만약 이러한 모든 과정이 즉시 발생할 수 있다면, 우리는 ZK 롤업이 자주 자랑하는 "즉각적인 거래 확인"을 실현할 수 있으며, 사용자가 즉시 자산을 인출할 수 있게 된다.
그러나 현실은 그리 간단하지 않다. L2beat에서 제공하는 다양한 ZK 롤업의 종결 시간 통계에 따르면, zkSync Era는 약 2시간이 걸리고, Linea는 3시간, Starknet은 평균 약 8시간이 걸린다. 이는 ZKP를 생성하는 데 시간이 걸리고, 거래 수수료를 줄이기 위해 더 많은 거래를 하나의 배치(즉, 단일 증명)에 포함시키는 데 추가 시간이 필요하기 때문이다. 다시 말해, 증명을 생성하고 제출하는 속도가 ZK 롤업의 빠른 종결을 실현하는 데 잠재적인 병목이 될 수 있으며, 이는 Web3 게임에서 사용자 경험을 저하시킬 수 있다.
그림 5: ZKP 생성이 ZK 롤업의 빠른 결정성의 잠재적 병목일 수 있다
한편, Ronin과 같은 게임 최적화 체인(예: Pixels 및 Axie Infinity와 같은 Web3 게임 지원)은 탈중앙화와 보안을 희생하면서 초고속 종결을 보장한다. Ronin은 ZK 또는 롤업 기반 체인이 아니다. PoA(권위 증명) + DPoS(위임 지분 증명) 합의 알고리즘 하에 운영되는 EVM 블록체인이다. 이는 위임된 지분 수에 따라 22명의 검증자를 선택하고, 이 검증자들이 PoA 방식(즉, 22명의 검증자 간의 투표 과정)으로 블록을 생성하고 검증한다. 따라서 Ronin에서는 거래가 거의 지연 없이 블록에 포함되며, 검증 시간이 매우 짧다. Shillin 하드 포크 이후 평균적으로 각 거래는 6초 만에 종결된다. Ronin은 이러한 모든 것을 ZKP 없이 실현하였다.
물론 Ronin에도 단점이 있다. 중앙 집중식 검증자 관리로 인해 51% 공격의 위협에 상대적으로 더 쉽게 노출된다. 또한 이더리움을 결제 레이어로 사용하지 않기 때문에 이더리움의 보안을 상속받지 못한다. 크로스 체인 브리지를 사용하는 것도 보안 위험이 있다. 그러나 사용자 관점에서 볼 때: 그들이 이러한 것들을 신경 쓸까? 현재 탈중앙화 정렬이 없는 ZK 롤업도 단일 실패 지점(SPOF) 문제를 안고 있다. 이더리움이 거래 롤백 가능성을 줄여주지만, 중앙 집중식 시퀀서나 검증자가 실패하면 ZK 롤업도 동결된다. 다시 말해, ZK 롤업의 "ZK"는 실행의 정확성을 검증하는 유효성만을 위해 사용된다. 만약 다른 프로젝트가 동일한 기능을 제공하지만 더 빠르고 저렴하다면, ZK 롤업은 Web3 게임 사용자와 개발자에게 더 이상 최선의 기술 스택으로 여겨지지 않을 수 있다.
두 번째: 상태 차이 발표는 양날의 검이다
또 다른 점은 ZK 롤업 프로토콜 구현의 실용성이다. 여기서 우리는 ZK 롤업에서 데이터 가용성을 보장하는 방법 중 하나인 상태 차이 발표에 중점을 두겠다(참조: Unlocking Dencun Upgrade: Unseen Truth of Scaling DA Layers, Jaehyun Ha, 12Apr24).
롤업에서 데이터 가용성을 이해하는 간단한 방법은 아마추어 등산가가 에베레스트 산을 오르는 과정을 증명하고 기록하는 것을 상상하는 것이다. 가장 간단한 방법은 기지에서 정상까지의 모든 단계를 비디오로 녹화하는 것이다. 비록 비디오 파일이 클 수 있지만, 누구나 등산가의 등반 과정을 검증하고 비디오를 재생할 수 있다. 이 비유는 데이터 가용성을 보장하는 원래 거래 데이터 발표 방법에 비유될 수 있다. Optimistic 롤업은 이 방법을 따르며, 개별 도전자가 올바른 실행을 재생하고 검증할 수 있도록 한다. ZK 롤업에서는 Polygon zkEVM과 Scroll이 이 방법을 채택하여 L1에 원래 L2 거래 데이터를 압축 형태로 저장하여 필요할 때 누구나 L2 거래를 재생하여 롤업 상태를 복구할 수 있도록 한다.
아마추어 등산가의 예로 돌아가 보자. 또 다른 검증 방법은 유명한 등산가가 아마추어 등산가와 함께 에베레스트를 오르는 것이다. 이를 통해 세상에 등산이 실제로 완료되었음을 증명할 수 있다. 신뢰할 수 있는 개인이 이미 등반을 증명했기 때문에, 등산가는 기록을 위해 매 단계를 기록할 필요가 없다. 시작점과 정상에서 사진 한 장만 찍으면 다른 사람들은 등산가가 정상에 도달했다고 믿을 것이다. 이 비유는 데이터 가용성을 보장하는 상태 차이 방법을 반영한다. ZK 롤업에서는 zkSync Era와 StarkNet이 이 방법을 채택하여 L2 거래가 L1에서 실행되기 전후의 상태 차이만 저장하여 필요할 때 누구나 초기 상태에서 상태 차이를 계산하여 롤업 상태를 복구할 수 있도록 한다.
그림 6: 원래 거래 발표와 상태 차이 발표
이 상태 차이 방법은 원래 거래 데이터 발표 방법보다 비용 면에서 확실히 유리하다. 중간 거래를 저장하는 단계를 생략할 수 있어 L1의 저장 비용을 줄일 수 있기 때문이다. 비록 이것이 일반적으로 문제가 되지 않지만, 여기에는 잠재적인 결함이 있다. 이 방법은 완전한 L2 거래 기록을 복구할 수 없기 때문에 일부 DApp에 문제가 될 수 있다.
예를 들어, Compound라는 DeFi 대출 프로토콜이 상태 차이에 기반한 ZK 롤업 기술 스택 위에 구축되어 있다고 가정해 보자. 이러한 프로토콜은 공급 및 대출 이율을 초당 계산하기 위해 완전한 거래 기록이 필요하다. 그러나 ZK 롤업 시퀀서가 실패하면 다른 롤업 노드가 최신 상태를 복구하려고 할 때 어떤 일이 발생할까? 상태를 복구할 수는 있지만, 이율은 부정확하게 복구될 것이다. 왜냐하면 이는 배치 간의 스냅샷만 추적할 수 있기 때문이며, 각 중간 거래는 추적할 수 없기 때문이다.
결론
이 글은 주로 대부분의 현재 ZK 롤업에는 "ZK"가 존재하지 않으며, DApp의 많은 부분에서 ZKP와 ZK 프로그램을 사용하는 것이 최상의 선택이 아닐 수 있다고 주장한다. ZK 기술은 비난을 받을 수 있지만, 그 자체로는 문제가 없으며, 기술 발전을 활용하는 과정에서 DApp의 잠재적인 성능 저하를 초래할 수 있다. 그러나 이는 ZK 기술이 이 산업에 전혀 쓸모가 없다는 것을 의미하지 않는다. ZKPs와 ZK 롤업이 궁극적으로 기술적으로 성숙해질 때, 그들은 블록체인 삼중고 문제를 해결하기 위한 더 나은 솔루션을 제공할 수 있을 것이다. 실제로 현재 ZK 기반 프로젝트는 ZK 개인 정보를 유지하고 있으며, 많은 유형의 DApp이 ZKP와 ZK 롤업의 장점을 효과적으로 활용하고 있다.