원본: "zk-Sync v2.0과 zk-Rollups의 미래"
작성자: @0xfishylosopher, Web3.com Ventures
1. 소개
'zk-Rollups'는 올해 업계에서 가장 뜨거웠던 키워드였다. 그리고 지난 zk-Sync의 v2.0 'baby alpha' 메인넷 출시로 인해 함께 그 인기는 절정에 달했다[1]. 해당 기사에서는 zk-Rollups가 정확히 무엇을 의미하고 어떻게 작동되는 지, 그리고 zk-Sync의 역할은 무엇인 지 알아보고자 한다. zk-Rollups의 작동 방식과 실제 사용 사례를 살펴보고 zk-Sync v2.0의 주요 기술 기능에 대한 분석을 통해 향후 이더리움에 미칠 수 있는 영향을 살펴보자.
2. zk-Rollups 작동 방식
먼저 zk-Rollups가 이더리움의 확장성 레이어로서 필요한 이유가 무엇일까? 물론 이더리움은 그 자체만으로도 유용하지만, 현재의 이더리움 네트워크는 근본적으로 확장 할 수 없는 시스템이다. 이더리움 네트워크가 활성화될 수록 네트워크 수수료인 GAS의 가격은 매우 비싸지기 때문이다. 특히 네트워크의 활성화로 인한 처리 용량이 급증하는 경우 이 효과는 더욱 두드러진다. 이러한 이더리움의 제한된 확장성은 추가 개발을 요하는 아킬레스건이 되었다.
롤업은 이러한 이더리움 네트워크의 확장성 문제를 해결하기 위한 솔루션으로 탄생되었다. 롤업은 본질적으로 이더리움에 기하급수적인 확장성을 제공하여 높은 가스를 조정하는 플러그인인 셈이다. 롤업은 다음과 같이 작동된다. 예를 들어, A지점에서 B지점까지 5개의 물건을 운반해야 한다고 상상해 보자. 보통 각 품목을 차례대로 나르는 것이 일반적인 방법이나, 이 방법은 분명히 느리고 번거롭다. 롤업은 본질적으로 5개의 물건을 큰 가방안에 넣어, 한 번에 운반하는 방법이다.
다만, 이 과정에서 염두해야 할 두 가지 사항이 존재한다.
1. 롤업이 '보유'를 검증할 수 있는 방법
2. 롤업이 '사기' 여부를 검증할 수 있는 방법
zk-Rollups는 이러한 두 가지 문제를 해결하기 위해 '영지식 증명'을 사용하는 롤업 솔루션 중 하나이다. 이러한 문제를 해결하기 위해 Zk-Rollups는 특정 수의 트랜잭션을 함께 묶고, 레이어2에서 계산을 수행하고, 상태를 변경, 계산을 완료한다. 이 후 레이어 1의 검증자에게 '유효성 증명'을 제출한다. 이 유효성 증명은 '영지식 증명'의 형태로 제공되어, 타인에게 정보를 제공하지 않음에도 최종 데이터를 확정할 수 있다.
<https://immutablex.medium.com/ground-up-guide-zkevm-evm-compatibility-rollups-787b6e88108e>
영지식 증명의 간단한 예는 자동 코드 생성기를 상상하면 이해가 수월하다. 코드 생성기는 무작위로 생성된 테스트 코드를 제공하는 '검증자'이며, 사용자는 올바른 코드를 가지고 있음을 증명하기 위해 모든 테스트 코드를 통과할 수 있어야 하는 '증명자'이다. 그리고 이 과정에서 코드 생성기와 사용자는 상호 간 코드를 공유하지 않는다. 즉 내가 알고 있는 정보를 굳이 타인에게 공유하지 않더라도, 내 정보가 올바르단 것을 증명할 수 있는 것이다.[2]
<Code Autograders — Simple Example of a Zero Knowledge Proof, Gradescope>
위의 코드 자동 생성기는 자동 생성기와 코드 공급자가 직접 상호작용하는 '대화형 영지식 증명' 접근 방식을 사용한다. 이와 대조적으로, 대부분의 zk-Rollup은 수학적으로 더 복잡한 '비대화형 증명(예: zk-SNARK, 간결한 비대화형 영지식 증명)'을 사용한다. 그리고 비대화형 증명은 대화형 증명에 비해 시간과 저장공간 측면에서 보다 효율적이다. zk-SNARK의 기술적 세부 사항은 이 기사에서 다룰만 한 주제는 아니지만, 기본적인 테스트 코드 전달의 원칙은 동일하다.
zk-Rollups의 핵심은 개발자가 스마트 컨트랙트를 수정하지 않고, DAPP을 활성화할 수 있도록 하는 Zero-Knowledge Ethereum Virtual Machine(zk-EVM)에 있다. 하지만 이 로직을 구현하는 것은 매우 난이도가 높다고 알려져 있다. 각 '문제'는 제 각기 다른 '테스트 코드'를 필요로 하므로, 모든 테스트 코드 증명을 위한 별도의 '증명 알고리즘'의 개발을 요한다. 이는 zk-Rollups의 기술적인 병목이기도 하다.
비탈릭 부테린이 언급했듯 현재는 옵티미스틱 롤업이 일반적인 EVM 구현에서 채택될 수 있지만, zk-Rollups는 단순 지불, 거래 및 기타 특정 사용 사례에서 채택될 수 있다. 그러나 중장기적으로 zk-SNARK 기술이 발전됨에 따라 ZK-Rollups는 이더리움의 모든 경우에서 채택될 가능성이 있다. [3]
다시 말해서 현재까지의 zk-Rollups는 테스트 사례가 명확히 정의되고 범위가 제한된 특정 응용 프로그램에 대한 기술로서의 입지가 컸다. 하지만 여러 프로젝트에서 범용적인 EVM의 호환을 위한 zk-Rollup 알고리즘의 개발이 다분히 시도되고 있다. [4]
3. zk-Sync 2.0
zk-Sync 2.0은 현재 zk-EVM을 개발 중인 프로젝트 중 하나이다.(다른 프로젝트의 대표적인 예시로는 StarkNet, Polygon Hermez, Scroll 등이 있다). zk-Sync 1.0에서는 사용자가 EVM에서 zk-Sync로 마이그레이션 하기 위해 코드베이스의 많은 부분을 다시 빌드해야 했다. 하지만 이와 달리 zk-Sync 2.0에서는 약간의 수정만으로로 애플리케이션을 배포할 수 있다.
실제로 모든 zk-EVM이 동일하지는 않다. '구성 가능성(원래 EVM 계약에 근접함)'과 '고성능(zk-Rollup이 실행되는 속도)'사이 에 명확한 균형을 찾아야한다.[6] 이러한 절충안에서 zk-Sync는 '구성 가능성'을 희생하면서 '고성능'을 택했다.
비탈릭 부테린에 따르면 현재 4가지 유형의 zk-EVM 존재하며, 다음 그림을 통해 확인할 수 있다.
<zk-EVM 유형, https://vitalik.ca/general/2022/08/04/zkevm.html>
현재 상태에서 zk-Sync 2.0은 그림의 4번에 해당하는 zk-EVM이다. zk-Sync 2.0은 자체 컴파일러로 컴파일할 수 있으며 스마트 컨트랙트는 Solidity 및 기타 고급 언어로 작성할 수 있다. zk-Sync는 컴파일러 설계를 완전히 제어하므로 속도와 처리량을 위해 적극적으로 최적화할 수 있다. 하지만 일부 DApp 및 EVM 디버깅 도구 체인이 zk-Sync 2.0과 호환되지 않을 수 있다는 문제점은 존재한다. 본질적으로 zk-Sync는 이더리움과 동일한 자동차 프레임을 가지고 있지만 엔진은 다른 격이다.[5]
사실, zk-Sync 개발자 문서에서 Matter Labs는 스마트 계약 "읽기" 작업은 코드를 변경하지 않고 통합될 수 있지만, 스마트 계약 "쓰기" 작업에는 레이어1과 레이어2 사이의 근본적인 차이로 인해 '추가 코드'가 필요할 수 있다고 전해졌다.[6] 사실 이것은 약간 오해의 소지가 있다. 이는 Layer1과 Layer2 사이의 '근본적인 차이점' 때문이 아닌, Matter Labs 가 추구하는 4번째 유형의 롤업 때문이다. zk-Sync는 본질적으로 다른 컴파일러와 바이트코드를 사용하기 때문에 유형4 를 기반으로 하는 롤업은 스마트 계약의 주소가 다르지만 바이트코드 분석에 의존하는 디버거 인프라는 zk-Sync 2.0 [7] 에서 작동하지 않을 수 있음을 의미한다.
향후 zk-Sync는 EVM 바이트코드에 대한 기본 지원을 더 추가하여 시스템이 유형3의 롤업에 해당하는 더 넓은 범위의 'Edge case'를 지원하도록 천천히 전환할 수 있다. 그러나 zk-Sync의 유형3 및 유형4 롤업의 경우 Polygon Hermez 및 Scroll Labs의 유형2 롤업(기본적으로 더 넓은 호환성을 위해 속도를 희생함)과 비교하여 성공을 위해서는 두 가지 중요한 전제 조건이 있어야 한다. 첫째, 중요하지 않은 소수의 프로젝트만 zk-Sync의 사용자 정의 컴파일러와 불호환성을 허용해야 한다. 둘째, 유형2 zk-EVM 과 비교하여 zk-Sync의 속도에 질적인 차이가 존재해야 한다.
하지만 이는 이것이 일어날 가능성이 낮을 것이다. 모든 고급 개발 생태계는 편의성, 모듈성, 디버깅 및 테스트 도구를 포함한 성숙한 프레임워크 인프라에 의존한다. 비탈릭 부테린이 가정하는 것처럼 대부분의 EVM 네이티브 디버깅 도구가 바이트코드의 차이로 인해 zk-Sync로 이식되지 않을 경우 zk-Sync는 자체 테스트 및 디버깅 도구 제품군을 개발해야한다. 이는 Polygon Hermez 및 Scroll과 같은 구성 가능한 유형2 zk-EVM에 비해 추가적인 개발로직이 추가되는 이유로, 레이어2 솔루션으로서 zk-Sync를 채택되는 속도가 늦어질 수 있다.
5. zk-Rollups의 미래
현재 zk-EVM 경쟁이 가열되고 있으며 완전한 기능을 갖춘 zk-EVM을 보는 것은 시간 문제일 것이다. 하지만 중요한 것은 인프라 개발 이후이다. 아무리 도로가 잘 깔려있다 하더라도, 도로를 이용하는 사람이 없다면 그 도로는 무용지물일 것이다. 결국 zk-Rollups의 장기적인 강점은 솔루션을 채택하는 프로젝트로 인해 발현된다.
현재 DeFi, GameFi 및 모바일 앱은 zk-Rollups 인프라의 주요 수혜자이다. DeFi와 GameFi는 모두 사용자가 많은 환경에서 성장함에 따라 근본적으로 규모의 경제를 띈다. 모바일 지갑 및 모바일 앱은 또한 데스크톱 컴퓨터를 살 여유가 없는 사용자를 위해 좋은 도구가 될 것이다. 따라서 이러한 구현을 기반으로 zk-Rollups를 사용하는 것이 실용적이다.
그러나 이것은 결코 zk-Rollups 사용의 제한이 아니며, 이것은 시작에 불과하다. zk-Rollups는 이더리움을 5G로 만들것이다. 5G가 IoT 애플리케이션 및 시스템의 새로운 세계를 가능하게 하는 것처럼 zk-Rollups는 사물 인터넷에 대한 가능성을 열어 냉장고, 시계, 신호등 등과 같은 물리적 세계의 디지털 장치를 허용할 수 있다.
우리가 일반적으로 Web2 기반의 사물 인터넷에 반대하는 가장 큰 주장 중 하나는 Big Tech가 그 권위를 넘어 일상 생활에 침투할 수 있다는 것이다. 그러나 Web3 기반의 사물 인터넷을 사용하면 중앙 데이터베이스에서 스마트 제품이 손상될 염려 없이, 사물 인터넷의 편리함을 곧이 곧대로 누릴 수 있게 된다. 우리는 zK-Rollups의 가능성을 발견한 시점에서 편리함과 프라이버시 어느 한 쪽이 아니라 모두를 누릴 수 있다. 이것이 Zk-Rollups가 우리에게 약속할 수 있는 세상이다.
참조:
[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623
[2] https://pages.cs.wisc.edu/~mkowalcz/628.pdf
[3] https://vitalik.ca/general/2021/01/05/rollup.html
[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatible-zk-rollups/
[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/
[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts
작성자: Web3.com Ventures
이 글은 PANews 칼럼니스트의 의견이며 PANews의 입장을 대변하지 않으며 법적 책임을 지지 않습니다. 기사와 의견은 투자 조언을 구성하지 않습니다.
이미지 출처 : Web3.com Ventures 침해사항이 있는 경우 작성자에게 연락하여 삭제하시기 바랍니다.