Rolling in the deep, 롤업(Rollup)의 세계로
이 기사를 공유합니다
DSRV
DSRV 2022년 7월26일 13:00
출처=DSRV 리서치
출처=DSRV 리서치

롤업: 옵티미스틱 & 영지식(ZK)

 

바야흐로 확장성 솔루션의 시대가 도래하였습니다. 블록체인 업계에서 오랜 기간 동안 해결해야 할 문제였던 확장성(Scalability) 문제는 다양한 솔루션들이 등장해옴에 따라 한발 한발 개선되고 있는데요.

우리는 지난 시간, 리서치의 누구보다 빠르게 남들과는 다르게, 레이어2 솔루션 편을 통해 다양한 레이어2(L2) 솔루션들을 알아보았습니다. L2 솔루션이란 확장성 개선 대상 체인(L1)의 트랜잭션을 해당 블록체인 외부의 별개 체인인 L2에서 실행하되, 처리된 트랜잭션들의 결과를 대상 체인에 기록하여 보안성을 보장하는 방식을 이야기합니다.

아래 그래프를 보면 L2가 가장 활발히 사용되고 있는 이더리움에서는 L2가 점차 대중화되면서 약 40억달러(약 5조2540억원)의 자금이 L2에서 거래되고 있습니다. 그중에서도 롤업 계열의 방식들이 차지하는 비중이 도합 35억달러(약 4조6000억원)에 달하며 가장 큰 지분을 차지하고 있습니다.

이더리움 확장성 솔루션에 예치된 ETH(이더리움)와 ERC-20 토큰 수량. 출처=더블록
이더리움 확장성 솔루션에 예치된 ETH(이더리움)와 ERC-20 토큰 수량. 출처=더블록

롤업이 등장하기 이전에 L2 솔루션 플라즈마는 큰 주목을 받았습니다. 플라즈마는 플라즈마 체인에서 트랜잭션을 실행한 후, 트랜잭션의 실행 결과로 변경된 플라즈마 체인의 상태 값의 요약을 L1에 기록하는 방식입니다.

이러한 방식으로 플라즈마는 트랜잭션들을 오프체인에서 대량으로 실행할 수 있게 돼 L1의 확장성을 개선할 수 있었습니다. 하지만 플라즈마에는 한 가지 문제가 존재했는데요, 바로 트랜잭션을 실행하여 변화된 결괏값만을 L1에 저장하고 실제로 실행한 트랜잭션이 무엇인지에 대한 정보는 플라즈마 체인, 즉 오프체인에 저장하는 구조에서 기인하는 점입니다.

이러한 구조의 경우, 플라즈마 체인에서는 해당 체인의 운영자(Operator)들이 의도적으로 트랜잭션 데이터를 공개하지 않거나 정당하지 않은 트랜잭션을 실행하여 왜곡된 상태 값을 L1에 업데이트하더라도, 이것의 옳고 그름을 증명할 데이터를 찾을 수 없는 “데이터 가용성 문제(Data Availability)”가 발생할 수 있습니다.

이와 같은 상황에서 ‘배리 화이트햇(Barry Whitehat)’이라는 사용자는 플라즈마를 개선한 롤업(Rollup)이라는 새로운 L2 솔루션을 제안하였고, 비탈릭 부테린 이더리움 창시자가 개선된 버전을 발표하며 현재 ‘ZK(Zero-Knowledge) 롤업’이라고 불리는 솔루션이 등장하게 됩니다.

하지만 ZK롤업이 사용하는 영지식 증명(Zero-Knowledge Proof) 방식의 복잡성으로 인해, 뒤이어 곧 ‘존 애들러(John Adler)’ 와 ’미케라 쿠엔틴 콜린스(Mikerah Quintyne-Collins)’를 통해 영지식 증명 없이도 동작할 수 있는 ‘옵티미스틱(Optimistic) 롤업’이라는 방식이 등장합니다.

위 그래프에서 확인할 수 있다시피 현재는 옵티미스틱 롤업이 더욱 많은 사용량을 보여주고 있습니다.

이제 다음 문단에서부터는 옵티미스틱 롤업과 ZK롤업이 정확히 무엇이고 어떻게 동작하며, 같은 롤업이더라도 각 방식마다 어떤 차이점이 있는지에 대해 차근히 살펴보도록 하겠습니다.



롤업(Roll-up)

옵티미스틱 롤업과 ZK롤업의 차이점을 알아보기 위해 롤업을 먼저 간단하게 짚어보자면 '롤업은 L2에서 트랜잭션을 실행한 뒤, 실행한 트랜잭션 데이터들과 변경된 상태의 요약본을 L1에 저장하는 솔루션'입니다.

일반적으로 L1에 배포된 롤업 컨트랙트(Rollup Contract)에는 롤업 체인의 상태 요약본인 스테이트 루트가 저장되어 있습니다. 롤업은 롤업 체인(L2)에서 다수의 트랜잭션들을 처리한 후 각 계정의 상태를 바꾸고, 그 결과로 바뀌게 된 최종 스테이트 루트 값을 L1의 롤업 컨트랙트에 전송하여 L1에 기록된 롤업 체인의 상태도 업데이트하도록 요청합니다.

롤업의 경우, L1의 상태를 변경할 때 트랜잭션을 실행한 결과뿐만 아니라 요약된 트랜잭션 데이터 자체 또한 L1에 보관(온체인)하는 방식을 통해 누구든 데이터의 유효성을 검증할 수 있게 하여 데이터 가용성 문제를 해결했습니다.

롤업의 상태 업데이트 과정. 출처=비탈릭 부테린 블로그
롤업의 상태 업데이트 과정. 출처=비탈릭 부테린 블로그

롤업의 상태 변경은 시퀀서(Sequencer) 혹은 운영자(Operator)로 불리는 노드가 정보의 묶음인 ‘배치(batch)’를 L1에 제출하여 이루어집니다. 이하 편의를 위하여 두 용어를 시퀀서로 통일하여 서술하겠습니다.

시퀀서는 트랜잭션을 실행하고 롤업 체인의 블록을 생성하며, 이 블록의 정보를 담은 '배치'를 L1에 제출하게 됩니다. 일반적으로 '배치'에는 이전 롤업 상태의 스테이트 루트 값, 변경된 롤업 상태의 스테이트 루트 값, 블록에서 실행된 트랜잭션 데이터의 요약본이 담겨 있습니다.

시퀀서가 제출한 트랜잭션을 통해 요청을 받은 롤업 컨트랙트는 저장되어 있던 스테이트 루트와 '배치'에 포함된 롤업 체인의 이전 상태의 스테이트 루트가 일치하는지 확인한 후, 일치한다면 기존에 저장되어 있던 스테이트 루트를 롤업의 현재 상태를 나타내는 새로운 스테이트 루트 값으로 교체합니다.

롤업 체인에서 '배치'로 제출하는 압축된 트랜잭션 데이터들은 저렴한 비용으로 처리할 수 있는 콜데이터(calldata) 형태로 L1에 저장됩니다. 따라서 롤업은 더욱 적은 리소스를 사용하며, 여러 트랜잭션을 한 번에 처리함으로써 저렴하고 빠른 거래를 가능하게 합니다.

하지만 롤업에서도 시퀀서가 임의로 잘못된 상태를 L1에 업데이트하려고 할 수 있습니다.

기본적으로 롤업은 온체인에 저장된 트랜잭션 데이터를 바탕으로 업데이트된 상태의 유효성을 검증할 수 있습니다.

그 유효성을 검증하는 방식에 따라 롤업의 종류는 사기 증명을 사용하는 옵티미스틱 롤업과 유효성 증명을 사용하는 ZK롤업, 이 두 가지로 구분해 볼 수 있습니다.



옵티미스틱 롤업 (Optimistic Rollup)

옵티미스틱 롤업은 그 이름에서 알 수 있듯이 시퀀서가 제출하는 상태에 문제가 없을 것이라는 낙관적인 가정 아래 실행됩니다.

따라서 누군가 그 데이터가 잘못되었다고 이의를 제기하지 않는 한 롤업 컨트랙트는 트랜잭션이 올바르게 실행되었는지 실제로 검증하지 않고 일단 사실로 받아들여 새로운 스테이트 루트를 업데이트하게 됩니다.

 

사기 증명(Fraud Proof)

옵티미스틱 롤업은 악의적인 시퀀서가 잘못된 상태를 업데이트한 상황에서만 잘못된 상태를 바로잡기 위하여 사기 증명(Fraud Proof)를 사용하게 됩니다. 사기 증명이란 잘못된 상태에 대한 증거를 제시하는 방법으로, 옵티미스틱 롤업에는 시퀀서에 더해 사기 증명을 생성하는 검증자(Verifiers)라는 제3의 역할이 존재합니다.

롤업 체인의 상태와 L1 롤업 컨트랙트를 지속적으로 감시하던 검증자는 롤업 컨트랙트에 잘못된 상태 변경이 발생하게 되면 이에 대해 이의를 제기하고 사기 증명 과정을 진행하게 됩니다.

사기 증명 과정은 대표적으로 1) 비대화형과 2) 대화형 두 가지가 있습니다. 비대화형은 해당 상태의 트랜잭션을 모두 재실행하고 잘못된 상태와 대조하여 증명을 제시하는 방식입니다.

검증자는 잘못된 상태를 발견하면 이의를 제기하고 변경 이전의 상태와 트랜잭션 데이터, 그리고 올바르게 연산된 이후 상태를 롤업 컨트랙트에 제출합니다. 해당 트랜잭션들은 모두 L1에서 재연산되고, 재연산 후 상태가 검증자가 올바른 상태라고 제시한 것과 같다면 이의 제기한 상태가 잘못되었다고 증명할 수 있습니다.

반면 대화형은 방어자(시퀀서)와 도전자(검증자)의 여러 번의 오프체인 상호작용으로 아주 적은 양의 재연산을 통해 이를 증명합니다. 먼저 방어자가 제출한 상태에 대하여 도전자가 이의를 제기하면, 방어자는 해당 블록에서 실행한 연산들을 절반씩 나누고 도전자가 둘 중 이의를 제기할 부분을 선택하는 과정을 반복합니다.

이 같은 이진 탐색(binary search, 혹은 bisection) 과정을 통해 온체인에서 실행하기에 충분히 작은 연산이 될 때까지 유효하지 않은 부분을 좁히게 되면 도전자는 이를 L1에서 재실행하여 상태의 잘못됨을 증명합니다.

비대화형이 모든 트랜잭션들을 재실행하여 비용이 많이 드는 반면, 대화형은 의심스러운 부분을 좁히기 위해 방어자와 도전자의 상호작용 시간이 필요하지만 매우 작은 부분만 재실행하면 된다는 이점을 갖고 있습니다.

롤업에서는 검증자가 사기 증명을 생성하기 전에 잘못된 값이 확정되지 않도록, 잘못된 상태에 대해 이의를 제기할 수 있는 챌린지(Challenge) 기간을 도입하게 됩니다.

만약 누군가 롤업 체인에서 L1으로 자금을 출금하고자 한다면 챌린지 기간 이상의 지연시간을 기다려야 합니다. 그렇지 않다면 누구나 유효하지 않은 트랜잭션을 통해 L2의 유동성을 탈취하여 L1으로 가져가는 것이 가능하기 때문입니다.

따라서 옵티미스틱 롤업에서 돈을 인출할 때에는 일반적으로 1~2주의 지연시간이 소요됩니다. (이 때문에 별도의 유동성을 이용하여 사용자에게 즉각적인 인출을 제공해 주고, 실제 인출금의 지연시간을 기다려주는 대신 수수료를 수취하는 프로젝트도 존재합니다.)

일반적으로 시퀀서는 올바르지 않은 상태를 제출할 수도 있으므로 이 경우를 대비하여 일정량의 보증금을 예치해야 시퀀서의 역할을 수행할 수 있습니다.

이를 통해 잘못된 데이터를 제출했다는 것이 증명되는 경우 악의적인 시퀀서는 예치하였던 보증금을 삭감당하는 처벌을 받고, 시퀀서의 사기를 밝혀낸 검증자에게는 삭감된 보증금이 보상으로 주어지게 됩니다. 또한 시퀀서가 잘못된 데이터를 제출했다고 증명되면, 유효하지 않은 해당 블록은 반영되지 않게(Roll-back) 됩니다.

챌린지 기간 동안 유효하지 않은 블록 뒤에 새로운 거래들이 연결되었다고 하더라도, 블록이 결국 사기 증명을 통해 유효하지 않음이 증명되었다면, 이후의 트랜잭션들 또한 유효하지 않은 블록을 바탕으로 생성되었기 때문에 반영될 수 없습니다.



스마트계약의 실행

가상머신(VM)은 컴퓨터 명령어 종류와 각 명령어가 트랜잭션 중에 수행해야 하는 작업을 정의하여, 스마트계약에 따라 명령어를 실행하는 프로그램입니다. 더하여 롤업의 VM이 L1의 VM(예를 들어, EVM)과 호환된다는 것은 L1의 프로그래밍 언어(스마트계약), 인프라 및 생태계(사용자, 개발자)로 부터 이점을 취할 수 있음을 뜻하기도 합니다.

따라서 옵티미스틱 롤업 프로젝트는 L1의 스마트 계약을 실행할 수 있는 환경을 만들기 위해 노력했고, 현재 L1의 범용적인 스마트계약을 약간의 수정을 통해 배포하여 사용하는 것이 가능합니다.



ZK롤업(Zero-Knowledge Rollup)

ZK롤업은 이름 그대로 영지식 증명(Zero-Knowledge Proof)을 통해 생성되는 유효성 증명(Validity Proof)을 사용하여, 시퀀서가 제출하는 상태가 옳다는 것을 증명하는 방법을 사용합니다.

제출된 상태를 일단 반영한 이후 필요시 사기 증명을 통해 정당하지 않은 상태변화를 잡아내는 옵티미스틱 롤업과 달리, ZK롤업은 상태를 반영하기 전에 미리 유효성 증명을 검증하여 올바르지 않은 상태를 걸러내는 방식으로 이해할 수 있습니다.





영지식 증명(Zero-Knowledge Proof)

그렇다면 이러한 증명을 생성하는 데 사용하는 영지식 증명이란 무엇일까요?

영지식 증명이란 증명자(Prover)가 검증자(Verifier)에게 특정 정보의 내용을 유추할 수 있는 어떤 정보도 노출하지 않은 채 상대에게 자신이 정보를 알고 있다는 것을 증명하는 방법입니다.

쉬운 예시를 하나 들어보겠습니다. 증명자와 검증자는 월리를 찾는 게임을 하고 있습니다. 월리를 찾아냈다고 주장하는 증명자는 검증자에게 월리의 위치를 알려주지 않고 자신이 월리를 찾았다는 사실만을 증명하고 싶습니다.

따라서 증명자는 그림에서 월리를 가리켜 월리의 위치를 검증자에게 노출시키는 것이 아닌, 그림을 복사해서 월리를 오래내어 검증자에게 증명으로 보여줄 수 있습니다. 오려낸 월리가 바로 증명자의 주장에 대한 유효성 증명인 셈입니다.

월리를 찾아보세요. 출처=월리를 찾아라 시리즈
월리를 찾아보세요. 출처=월리를 찾아라 시리즈

유효성 증명(Validity Proof)

실제 롤업에서 영지식 증명을 통해 유효성 증명을 생성하는 것은 수학적 연산 및 암호화 과정을 거치게 됩니다. 유효성 증명을 생성하는 것은 일련의 규칙을 정의하는 것부터 시작합니다.

예를 들어 ‘각 트랜잭션에는 올바른 서명이 있어야 한다.’, ‘사용자가 소유한 것보다 더 많이 지출할 수 없거나 이중 지출이 불가능하다.’, 또는 ‘이전 상태로부터 실행되어야 한다.’ 등이 그 규칙이 될 수 있습니다.

이렇게 정의된 규칙들을 산술 회로 및 다항식과 같은 수학적 표현으로 변환한 후 암호화 과정을 거치게 되고, 이를 통해 만든 영지식 회로는 이후 증명을 생성하거나 검증하는 데 사용됩니다.

ZK롤업에서 시퀀서는 증명자의 역할을, 롤업 컨트랙트는 검증자의 역할을 수행합니다. 따라서 ZK롤업의 블록 생성자는 '배치'를 L1에 제출할 때, 스테이트 루트, 트랜잭션 데이터에 더하여 해당 실행에 대한 유효성 증명을 함께 생성하여 포함시켜야 합니다.

해당 유효성 증명은 소유자가 올바르게 서명하고 계정 잔액을 올바른 방식으로 업데이트하고 이전 머클루트에서 새 루트로 이어지는 일련의 거래가 존재함을 증명합니다.

이를 통해 시퀀서는 실행한 트랜잭션의 정보를 밝히지 않고도 트랜잭션이 사전 정의된 규칙을 위반하지 않는다는 것을 롤업 컨트랙트에 증명할 수 있습니다. 시퀀서가 유효하지 않은 트랜잭션을 실행한 상태를 롤업 컨트랙트에 업데이트하려고 한다면, 롤업 컨트랙트는 유효성 증명을 검증하여 유효하지 않은 트랜잭션이 실행되었다는 사실을 인지하고 상태 업데이트를 진행하지 않을 것입니다.

유효성 증명은 '배치'에 포함된 일련의 트랜잭션에 대하여 하나만 생성되기 때문에, 하나의 트랜잭션이라도 유효하지 않다면 이는 반영되지 않습니다.

위와 같은 유효성 증명 과정을 ZK롤업과 옵티미스틱 롤업 간의 가장 큰 차이점으로 이해할 수 있습니다.

옵티미스틱 롤업은 시퀀서가 올바른 데이터를 제출했을 것이라고 가정하기 때문에, 이후 문제가 발생하는 경우 검증자가 사기 증명을 생성하게끔 검증자가 계속해서 롤업 컨트랙트를 감시하고 트랜잭션을 재연산하도록 해야 한다는 단점이 있습니다.

하지만 ZK롤업은 영지식 증명으로 만든 유효성 증명을 사용하기 때문에 롤업 컨트랙트가 검증자의 역할을 대신하여 검증할 수 있습니다.

따라서 영지식 증명에서는 제3의 검증자가 필요하지 않으며, 또한 사기 증명을 제출하기 위한 지연시간 또한 필요하지 않게 되어 별도의 출금 기간 없이 L2의 유동성을 L1으로 즉시 인출할 수 있다는 이점을 가집니다.

또한 사기 증명을 생성하지 않는 ZK롤업은 사기 증명을 생성하기 위해 기존 트랜잭션 데이터 내에 포함시켜야 했던 사용자의 서명 데이터 등을 생략할 수 있기 때문에 L1에 저장해야 하는 콜데이터(calldata)의 양 또한 크게 줄일 수 있습니다.

ZK롤업은 유효성 증명을 생성하고 증명하는 데 추가적인 연산과정이 수행돼야 하지만, 옵티미스틱 롤업에 비해 작은 크기의 데이터를 온체인에 저장하기 때문에 더욱 저렴한 비용으로 트랜잭션을 처리할 수 있습니다.

옵티미스틱 롤업과 ZK롤업의 비교. 출처=비탈릭 부테린 블로그(DSRV 리서치 재구성)
옵티미스틱 롤업과 ZK롤업의 비교. 출처=비탈릭 부테린 블로그(DSRV 리서치 재구성)

영지식 증명의 종류: 스나크(SNARK) & 스타크(STARK)

많은 ZK롤업 프로젝트들이 모두 다 같은 영지식 증명 방식을 사용하는 것은 아닙니다.

ZK롤업에서 유효성 증명을 생성하기 위해 사용하는 영지식 증명의 대표적인 방법은 크게 영지식 스나크( ZK-SNARK)와 영지식 스타크(ZK-STARK)로 구분해 볼 수 있습니다. ZK-SNARK는 ‘Zero-Knowledge Succinct Non-interactive ARgument of Knowledge’의 약자입니다.

여기서 S(Succinct)는 간결함으로 이는 매우 큰 프로그램에 대한 경우에도 증명의 길이가 수백 바이트에 불과하여 짧은 시간에 검증할 수 있음을 의미합니다.

N(Non-interactive)은 비대화형이라는 의미로 증명자(Prover)와 검증자(Verifier)가 통신을 통해 질문을 주고받아 검증을 하는 대화형(interactive)과는 달리 증명자가 검증자에게 단일 메시지를 전달하여 검증함을 의미합니다.

하지만 증명자와 검증자를 간결한 비대화형으로 만들기 위해서는 서로를 이해할 수 있는 공통된 매개변수가 있어야 하며, 이를 생성하는 과정을 ‘신뢰 설정(Trusted Setup)’이라고 부릅니다.

이 매개변수들은 신뢰 설정 과정에서 암호화된 값으로 증명자와 검증자 시스템에 공유됩니다. 이때 공격자가 매개변수의 원본을 알면 검증자에게 거짓을 참이라고 속일 수 있는 증명을 만들 수 있기 때문에 일반적으로 원본의 경우 파기하게 됩니다.

이 과정이 시스템 전체의 보안에 큰 부분을 차지하기 때문에 신뢰 설정 과정에서 비밀이 ‘안전하게 생성되었는가’, ‘누가 알고 있는가’, 그리고 ‘어떻게 원본을 파기할 것인가’ 등이 중요하게 고려될 수 있습니다.

과거 지캐시(Zcash)의 신뢰 설정 세리머니에서 디스크를 파괴하는 모습. 출처=지캐시
과거 지캐시(Zcash)의 신뢰 설정 세리머니에서 디스크를 파괴하는 모습. 출처=지캐시

이와 비교하여 ZK-STARK는 ‘Zero-Knowledge Scalable Transparent ARguments of Knowledge’의 약자입니다. T(Transparent)는 투명성으로, 이는 SNARK와 달리 신뢰 설정의 과정을 거칠 필요가 없음을 의미합니다.

하지만 STARK는 신뢰 설정을 통해 간결한 증명을 생성하는 SNARK에 비해 증명의 크기가 커 가스가 더 많이 필요하고, 검증 시간이 늘어난다는 단점 또한 존재합니다.

SNARK vs STARK. 출처: 주코 윌콕스(지캐시)(DSRV 리서치 재구성)
SNARK vs STARK. 출처: 주코 윌콕스(지캐시)(DSRV 리서치 재구성)

스마트계약의 실행

이렇게만 보면 ZK롤업이 무조건적으로 옵티미스틱 롤업에 비해 더 좋은 솔루션이 아닌가 하는 생각이 들 수 있습니다. 별도의 검증자도 필요 없고 자금의 입출금도 즉각적이니까요.

하지만 ZK롤업에도 한계가 존재합니다. 이는 바로 범용적인 스마트계약을 실행하는 것이 어렵다는 것입니다. 옵티미스틱 롤업에 비해 영지식 증명은 기술의 복잡성으로 인하여 영지식 증명 없이 동작하던 기존 L1 상의 스마트계약을 호환하는 것이 매우 어렵습니다.

이는 현재 옵티미스틱 롤업이 더 많이 채택되고 있는 이유이기도 합니다.

ZK롤업에서 스마트계약 실행은 단계적으로 발전해 왔습니다. 특정 거래 기능만 지원하여 각각의 댑(Dapp, 탈중앙화애플리케이션)에 개별적으로 적용되는 솔루션에서 시작하여 ZK롤업에서 사용될 수 있도록 자체적인 언어를 개발하여 범용적인 스마트계약을 실행할 수 있도록 발전했습니다.

이후에는 별도의 언어 없이 L1의 VM과 호환하려는 노력이 진행되고 있습니다. 예를 들어, 개별적인 댑들을 각각 ZK롤업 환경에서 실행할 수 있게 해주는 스타크엑스(StarkEX)와 거래 기능을 지원하는 루프링(Loopring), 범용적으로 스마트계약을 실행하기 위한 스타크넷(StarkNet) 등이 있습니다.

스타크넷의 스마트계약의 경우에는 스타크웨어(Starkware)가 개발한 독자적인 언어인 카이로(Cairo)로 작성됩니다. 스타크웨어는 현재 카이로를 이더리움의 이더리움 가상머신(EVM)과 호환하기 위한 트랜스파일러를 개발하고 있으며, zk싱크(zkSync)나 폴리곤 허메즈(Polygon Hermez)에서도 각기 다른 방식으로 영지식 증명 방식으로 동작하는 이더리움의 VM인 zkEVM을 구현하는 중입니다.





롤업은 안전할까?

L1에 보안의 기반을 두는 롤업은 항상 안전할까요?

롤업의 안전성을 평가할 때, 시퀀서의 분산화가 중요한 요소 중 하나로 고려되고 있습니다. 옵티미스틱 롤업 프로젝트인 아비트리엄(Arbitrum)과 옵티미즘(Optimism), ZK롤업 프로젝트인 스타크넷 등 많은 경우 롤업 체인에 자체적으로 하나의 시퀀서만을 실행하고 있습니다.

이는 초기 단계의 롤업 솔루션에게는 효율적인 방법이기는 하지만, 중앙 집중화된 시퀀서는 작동을 멈추거나, 뇌물을 받아 트랜잭션을 검열하거나, 트랜잭션 순서를 변경하여 악의적인 최대로 추출할 수 있는 가치(MEV) 이익을 취하는 등의 위험이 존재합니다.

따라서 장기적으로는 시퀀서들이 중앙 집중화되는 위험을 줄이기 위해 분산화되어야 할 필요가 있습니다. 이에 따라 현재는 중앙화된 시퀀서를 사용하는 롤업 프로젝트들 또한 시간이 지남에 따라 일종의 시퀀서 분산을 진행할 계획을 발표했습니다.

하지만 무작정 여러 개의 시퀀서를 두는 것이 곧 정답은 아닙니다. L1에서 합의 알고리듬을 통하여 블록을 생성할 사람을 정하는 것처럼, 어떤 시퀀서가 블록을 생성하고 '배치'를 제출할 것인지를 정할 메커니즘이 존재해야 합니다.

여러 참가자가 '배치'를 생성하여 동시에 제출하게 된다면, 하나의 '배치'만 성공적으로 포함되고 나머지 '배치'를 생성하고 게시하는 데 사용된 리소스가 낭비될 수 있습니다.

기본적으로 시퀀서가 되기 위해서는 악의적으로 행동할 경우 페널티를 주기 위하여 일정량의 자금을 예치하도록 합니다. 이에 더하여 일정 기간 동안 시퀀서 역할을 할 수 있는 권한을 경매를 통해 결정하거나, 지분증명(PoS)과 같이 일정한 자금을 예치하고 예치 자금에 비례하여 시퀀서를 선정하는 방법도 생각해 볼 수 있습니다.

하지만 경매의 경우 오히려 독점을 장려할 수 있으며, PoS와 같은 방법을 사용할 경우에는 페널티 이상의 불필요한 자금이 묶여있어야 한다는 단점이 존재할 수 있습니다. 현재 시퀀서를 탈중앙화하는 방법에 절대적인 정답은 없으며, 여러 가지 방식들이 고려되고 있습니다.

검증자가 존재하는 옵티미스틱 롤업의 경우에는 검증자가 어떻게 지속적으로 검증을 수행하게 할 것인지도 고려되어야 합니다.

만약 시퀀서가 항상 올바른 값만 제출한다면 검증자는 사기 증명을 생성하지 못할 것이고 검증작업을 수행한 비용에 대해 보상을 받지 못하게 되어 검증을 지속할 이유를 잃게 됩니다. 시퀀서가 항상 올바르게 행동하는 것이므로 롤업이 안전한 것이냐고 생각할 수 있지만, 이 시퀀서는 검증자가 검증을 하지 않게 되면 올바르게 행동하는 것을 멈추고 롤업을 공격하려 할 수 있습니다.

결국 시퀀서가 올바르게 행동하는 것이 롤업을 안전하게 만들지만, 이후에는 검증자가 검증을 포기하게 하여 롤업이 잘못된 데이터를 잡아내지 못하게 됩니다.

반면 악의적으로 행동하는 시퀀서가 있다면 롤업은 안전하지 않지만, 검증자들이 활발하게 검증을 실행할 유인이 되는 역설적인 상황이 펼쳐지게 됩니다.

따라서 이와 같은 역설적인 상황에서 검증자를 어떻게 지속적으로 검증을 수행하게 할 것인가에 대한 인센티브 구조도 보안에 중요하게 작용합니다.



마무리

L2 솔루션 총 예치량(TVL). 출처: L2비트
L2 솔루션 총 예치량(TVL). 출처: L2비트

오늘 우리는 롤업과, 롤업의 종류인 옵티미스틱 롤업 및 ZK롤업이 무엇인지 그리고 그 차이점에 대하여 알아보았습니다.

현재 이더리움의 대표적인 디파이(DeFi, 탈중앙화금융) 앱인 커브(Curve), 유니스왑(Uniswap), 아베(Aave) 등이 아비트리엄과 옵티미즘으로 대표되는 옵티미스틱 롤업에서의 실행을 지원하고 있으며, 디와이디엑스(dydX), 원인치 파이낸스(1inch Finance) 등은 스타크엑스, zk싱크와 같은 ZK롤업을 통한 실행을 지원하고 있습니다.

위 그림을 참고해 보더라도 L2 상위 프로젝트의 대다수가 롤업을 사용하고 있는 프로젝트들인 것을 살펴볼 수 있습니다.

이더리움 또한 롤업 중심 로드맵(A rollup-centric ethereum roadmap)을 통하여 확장성을 개선할 것임을 발표한 바 있습니다.

이는 단기적으로 롤업을 통한 이더리움의 확장성 개선 방식이 온체인 계산의 효율성보다는, 롤업의 데이터를 얼마나 많이 저장할 수 있는가에 집중된다는 것을 의미합니다.

이후 이더리움은 샤딩을 통하여 롤업의 데이터 가용성을 위한 공간을 제공하고, 이더리움을 롤업을 위한 보안 및 데이터 저장의 계층으로 사용하는 미래를 그리고 있습니다.

이제 롤업은 현실적인 확장성 솔루션의 미래의 한 축으로 자리 잡고 있는 것으로 보입니다.

Key Takeaways

1. 롤업은 L2에서 트랜잭션을 실행 및 상태를 저장하고, 실행한 트랜잭션 데이터의 일부와 변경된 상태를 요약본과 같이 L1에 저장하는 솔루션으로, 실행한 트랜잭션으로 변경된 상태의 유효성을 증명하는 방법에 따라 옵티미스틱 롤업과, ZK롤업으로 구분됩니다.

2. 옵티미스틱 롤업은 상태를 일단 변경한 후 사기 증명을 통해 유효하지 않은 상태 변경을 잡아내는 방식입니다. 옵티미스틱 롤업은 일반적으로 L1의 VM 호환성을 제공하지만, 출금 지연시간이 길다는 단점이 있습니다.

3. ZK롤업은 영지식 증명을 통해 생성한 유효성 증명을 통해 상태를 변경하기 전 그 유효성을 확인하는 방식입니다. ZK롤업은 높은 기술적 복잡성으로 L1의 VM을 호환하는 것이 어렵지만, 즉각적인 출금 및 옵티미스틱 롤업에 비해 트랜잭션 가스비가 저렴하다는 장점이 있습니다.

저자: 박영빈 DSRV 웹3 연구원

 

유의사항: 이 글은 정보 전달을 위한 목적으로 작성되었으며, 특정 프로젝트에 대한 투자 권고, 법률적 자문 등 목적으로 하지 않습니다. 모든 투자의 책임은 개인에게 있으며, 이로 발생된 결과에 대해 어떤 부분에서도 DSRV는 책임을 지지 않습니다. 본문이 포괄하는 내용들은 특정 자산에 대한 투자를 추천하는 것이 아니며, 언제나 본문의 내용만을 통한 의사결정은 지양하시길 바랍니다.

DSRV는 좋은 콘텐츠의 힘을 믿고, 기술의 혁신이 우리의 삶과 사회를 더 나은 방향으로 이끈다 확신합니다.

​블록체인과 웹3를 보다 많은 사람들이 접하고 더 나은 경험을 할 수 있도록 우리의 생각을 콘텐츠로 선보입니다.

​사용자를 위한 실용적인 가이드, 웹3를 위한 핵심기술 스택에 대한 소개, 그리고 개발자들을 위한 전문 아티클까지. DSRV와 함께 다음 세대의 인터넷을 위한 여정을 시작하세요.

 

더 자세한 내용은 '코인데스크 프리미엄'에서 읽을 수 있습니다.

제보, 보도자료는 contact@coindeskkorea.com



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.