[RollUp&zkSync Part 1] 롤업(Rollup)에 대해서

Apple
SKKRYPTO
Published in
8 min readNov 13, 2023
  1. 이더리움의 확장성 문제

이더리움의 확장성 문제를 소개하기 앞서서 먼저 블록체인 트릴레마에 대해 간략히 설명하고자 한다. 트릴레마란 세 가지 목표 가운데 두 가지 목표까지는 동시에 해결할 수 있지만 세 가지 목표를 한번에 해결할 수는 없다는 뜻이다. 이 트릴레마가 블록체인 기술에도 존재한다. 블록체인 트릴레마에서 3요소는 확장성, 탈중앙화 그리고 보안성이다. 현재 출시된 블록체인 기술들은 세 가지 요소 중 하나 혹은 두 가지 요소는 해결하였지만, 세 요소를 모두 완벽히 해결한 기술은 아직 등장하지 않았다. 이더리움의 경우 역시 탈중앙화와 보안성은 해결했지만, 확장성 문제를 해결하지는 못했다.

확장성 문제는 자원(마이닝 노드, 코어 수) 투입량의 증가에도 트랜잭션의 처리 속도(TPS)가 증가하지 않는 문제를 말한다. TPS가 고정되어있기 때문에 트랜잭션이 증가하는 경우 트랜잭션이 블록에 담기기까지의 대기시간이 길어진다.

이더리움의 경우 초당 처리할 수 있는 거래는 20건 정도이다. 반면 VISA 카드사의 1초당 거래 처리 건수는 24,000건으로 이는 이더리움보다 1,200배 이상 많은 값이다. 이더리움이 장차 세계적인 서비스를 운영하기 위해서, 최소한 VISA 카드사 수준의 거래 처리 역량을 갖춰야 하지만 현재로는 부족한 실정이다. 결과적으로 사회 전반에 블록체인 기술을 도입하기 위해서는 많은 사용자 수와 이에 따른 거래량을 대처해야 하므로 확장성 문제 해결은 중요한 과제이다.

이러한 확장성 문제는 이더리움이 한 블록에 담을 수 있는 가스 크기에 제한이 있기에 발생한다. 그러므로 이더리움의 확장성 문제 해결 방법은 노드 간의 합의 속도를 빠르게 만드는 데 초점을 맞추어야 한다. 이더리움의 확장성 문제를 보완하기 위해 나온 기술이 롤업 기술이다.

2. 롤업

롤업은 이더리움의 확장성 문제와 메인넷에서 트랜잭션들을 개별적으로 처리하는 것에 따른 수수료 부담을 해결하기 위해 이더리움 체인 외부(Layer2)에서 트랜잭션을 실행하고 그 결과만을 이더리움(Layer1)에 기록하는 해결 방법이다. 롤업은 계산과 상태 저장 단계를 체인 밖에서 수행하나 트랜잭션 당 일부 데이터는 체인에 보관한다. 효율성을 향상하기 위해, 가능한 한 데이터를 계산으로 대체하기 위한 여러 가지 압축 기술을 사용한다. 결과적으로 확장성은 기본 블록체인의 데이터 대역폭에 의해 여전히 제한되지만 매우 유리한 비율로 제공되는 시스템이다. 원래라면 이더리움 네트워크에서 모든 트랜잭션에 대해 컴퓨팅 파워를 들여 처리해야 하나, 이 과정을 체인 외부에서 담당하기 때문에 기존의 방식보다 많은 트랜잭션을 처리할 수 있다. 이더리움 기본 계층 ERC20 토큰 전송에는 ~45,000 가스의 비용이 드는 반면 롤업에서 ERC20 토큰 전송에는 16바이트의 체인 상 공간을 차지하고 300 가스 미만의 비용이 든다.

롤업을 이용하기 위해선 먼저 롤업을 담당하는 스마트 계약으로 코인을 보내야 한다. 롤업 콘트랙트에는 계속해서 롤업을 이용할 사용자들의 코인이 쌓이게 되고 이것은 머클트리 형식으로 관리된다.

누구나 이전 스테이트 루트 및 새 스테이트 루트(거래 처리 후 머클 루트)와 함께 매우 압축된 형태의 트랜잭션 모음인 배치를 게시할 수 있다. 계약은 배치의 이전 스테이트 루트가 현재 스테이트 루트와 일치하는지 확인하고, 스테이트 루트를 새 스테이트 루트로 전환한다.

배치에 외부로부터의 입력이 있는 경우, 배치를 제출하는 트랜잭션도 이러한 자산을 롤업 계약으로 옮겨야 한다. 배치에 외부로 출력이 있는 경우, 다음 배치를 처리할 때 스마트 계약이 출금을 개시할 것이다.

이때 배치 안 새로운 스테이트 루트의 정확성을 검증할 필요가 있다. 만약 어떤 사람이 정확성 검증 없이 배치를 제출할 수 있다면, 롤업 안에 있는 모든 가상화폐들을 자신에게 옮길 수 있는 문제가 발생할 수 있다.

2–1. 옵티미스틱 롤업

옵티미스틱 롤업은 거래 중 집계 데이터만 블록체인에 저장하고 실제 거래 데이터는 체인 밖에 저장한다. 이 때, 거래 내역이 유효한지 확인하기 위해서는 블록체인 내부에 있는 집계 데이터를 사용해야 한다. 옵티미스틱 롤업은 사기 증거를 사용한다. 롤업 계약은 스테이트 루트의 전체 이력과 각 배치의 해시를 추적한다. 한 배치에 잘못된 새로운 스테이트 루트가 있음을 발견한 사람은 배치가 잘못 계산되었음을 증명하는 증거를 체인에 제시할 수 있다. 그러면 그 계약은 증명을 검증받고, 그 배치와 그 이후의 모든 배치를 되돌린다

2–2. ZK 롤업

ZK 롤업은 기존 롤업에 영지식 증명을 더한 방식이다. 이 방식에서 모든 배치에는 ZK-SNARK(영지식 증명을 블록체인 상에서 구현할 수 있도록 한 기술)라는 암호화 증명이 포함되어 있으며, 이는 새로운 스테이트 루트가 배치 실행의 올바른 결과임을 증명한다. 아무리 큰 계산을 하더라도 증명은 매우 신속하게 체인 상에서 검증될 수 있다. 이 방식을 사용하는 대표적인 프로젝트로는 immutable X, dYdX, loopring, 그리고 zksync 등이 있다.

immutable X, dYdX, loopring, and zksync

다음은 옵티미스틱 롤업과 ZK 롤업의 비교표이다.

ZK롤업은 배치 생성 시마다 트랜잭션 규칙을 암호화하는 영지식 증명과정을 거쳐야하기 때문에 옵티미스틱 롤업에 비해 배치당 고정 가스비가 더 비싸고 기술 복잡성이 더 높아 일반화 가능성이 더 낮다. 하지만 옵티미스틱 롤업은 특정 데이터가 사기라는 것을 증명할 수 있는 기간이 정해져있고, 트랜잭션 확정까지도 시간이 걸리는 반면 ZK롤업은 검증인이란 제3자가 필요 없고 즉각 인출이 가능하기에 인출 기간 면에서 ZK롤업이 훨씬 빠르다.

이더리움 공동 창업가인 비탈릭 부테린의 견해에 따르면 단기적으로 봤을 때는 옵티미스틱 롤업은 범용 EVM 계산 분야에서, ZK 롤업은 간편 결제, 교환 및 기타 애플리케이션 분야에서 승리할 가능성이 높다고 한다. 하지만 중장기적으로는 ZK-SNARK 기술이 향상됨에 따라 모든 사용 사례에서 ZK 롤업이 승리할 것이라고 한다.

3. 영지식 증명

영지식 증명은 증명자가 자신이 알고 있는 지식과 정보를 공개하지 않으면서도 그 지식을 알고 있다는 사실을 검증자에게 확인시켜주는 시스템이다. 여기서 증명자는 해당 지식을 알고 있음을 입증하는 주체이며, 검증자는 증명자가 해당 지식을 알고 있다는 사실을 검증해주는 주체이다.

여기서 영지식 증명은 완전성, 건전성, 영지식성 이 세 가지 요소를 만족해야 한다. 완전성은 조건이 참이라면 신뢰할 수 있는 검증자는 신뢰할 수 있는 증명자에 의해 이 사실을 납득할 수 있어야 한다는 것이다. 건전성은 조건이 거짓이면 신뢰할 수 없는 증명자는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다는 것이다. 영지식성은 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다는 것이다.

동굴의 비유(A는 검증자, B는 증명자이다)

이 개념을 이해하기 쉬운 예시로 동굴의 비유가 있다. 증명자와 검증자가 있다고 가정하자. 증명자와 검증자 모두 비밀문이 있는 동굴 가까이에 왔다. 동굴에는 연결된 두 갈래 길이 있으며, 그 사이에는 도어락이 설치된 비밀문이 있다. 증명자는 비밀문의 암호를 알고 있다고 주장한다. 그러나 증명자는 그 암호를 밝히고 싶지 않다. 이에 대해 검증자는 증명자에게 직접적으로 설치된 도어락의 비밀번호를 물어보지 않고 증명자가 비밀번호를 알고 있다는 명제가 참인지 확인하려 한다.

이에 검증을 위해 일단 증명자가 먼저 동굴에 들어간 다음, 도어락 근처로 이동한 후 검증자를 동굴 안으로 부른다. 다음 검증자는 갈림길에 서서 증명자에게 특정 길로 나오라고 지시한다. 이어 증명자는 검증자가 지시한 길로 나온다.

이 과정을 통해 증명자는 검증자에게 자신이 알고 있는 비밀번호를 알려주지 않고도 자신이 비밀번호를 알고 있음을 증명할 수 있다. 하지만 이 과정을 한 번만 보았을 때는 증명자가 비밀번호를 정말로 알고 있어서 검증자가 지시한 길로 나왔는지 확신하기 어렵다. 왜냐하면 증명자가 우연히 올바른 길로 나왔을 수도 있기 때문이다. 하지만 위 과정을 일정 횟수 이상 반복하여도 항상 증명자가 검증자의 지시대로 행동했다면 증명자는 검증자에게 자신이 비밀번호를 알고 있다는 사실을 납득시킬 수 있다. 반복 횟수가 증가할수록 비밀번호를 우연히 맞출 확률은 0에 수렴하기 때문이다.

이 예시에서 완전성, 건전성, 영지식성을 따지면 다음과 같다. 완전성 면에서 위 실험을 여러 번 수행하더라도 증명자가 검증자의 지시를 계속 따르게 된다면 검증자는 증명자가 비밀번호를 안다고 알 수 있다. 건전성 면에선 증명자가 사실은 비밀번호를 모름에도 안다고 거짓말을 했을 경우 검증자에게 언젠가 한 번은 지시대로 수행하지 못하는 경우가 생기기 때문에 증명자가 비밀번호를 안다는 것을 증명할 수 없다. 마지막으로 영지식성 면에선 여러 번의 반복을 통해 검증자는 증명자가 비밀번호를 알고 있다는 사실은 납득했지만, 비밀번호가 무엇인지는 알지 못한다.

--

--