본문 바로가기
Hack/Cryptocurrency

Rollup (Optimistic Rollups, ZK Rollups)

by Becoming a Hacker 2023. 7. 1.
반응형

Rollup

2023년에는 정말 많은 가상 자산이 존재하고 있는데요. 이 중 제일 많이 사용되고 영향력이 높은 가상 자산은 Ethereum일 것 같습니다.

 

그런 Ethereum의 Mainnet인 EVM 상에는 정말 다양한 프로젝트들이 올라가 있습니다. 그런데 Ethereum이 초당 처리할 수 있는 Transaction인 TPS(Transaction Per Sencond)는 고작 15 정도에 불과합니다. 실제 사용량에 비해서는 터무니없이 낮은 수준이라고 볼 수 있습니다.

(Ethereum이 2.0으로 업그레이드 되면서 TPS가 증가하였다고 하지만, 그럼에도 확장성은 필요하다고 생각합니다.)

 

Ethereum 생태계에서는 이러한 확장성 문제를 해결하기 위해 Plasma, Validium, Rollup, Sharding 등 정말 다양한 솔루션들이 등장했습니다.

 

그 중 이번 포스팅 주제인 Rollup은 Ethereum Chain(Layer1) 위에서 독립적인 Mainnet(Layer2) 처럼 작동하며 Transaction을 실행하고 변경된 상태의 요약본을 Ethereum Chain에 기록하는 솔루션이라고 볼 수 있습니다.

(Ethereum Chain 위에서 독립적인 Mainnet 처럼 작동하는 프로젝트들을 Layer2라고 부르고 Ethereum과 같은 프로젝트들을 Layer1이라고 부릅니다.)

 

Ethereum Chain을 개발한 Vitalik Buterin은 롤업의 작동 방식을 아래와 같이 설명하고 있습니다. 

(이러한 작동 방식은 Rollup의 구현 방법에 따라 다를 수 있음)

출처 : https://vitalik.ca

1. 모든 데이터를 Rollup에 올리는 것은 확장성 측면에서 큰 도움이 될 수 없기 때문에 필요한 데이터(위 그래프에서는 각 계정의 잔고)를 기반으로 생성한 State Root(데이터를 기반으로 생성된 Hash 값)를 Ethereum Mainnet에 기록합니다.

 

2. 만약 계정 간의 거래로 인하여 잔고의 변화가 발생하게 되면, Hash 특성상 State Root 또한 변경됩니다. 이렇게 변경된 State Root를 다시 Ethereum Mainnet에 기록합니다.

※ State Root : Rollup 상태에 대한 Merkle Root

 

3. 이러한 방법을 통해 Layer2에서 발생한 Transaction의 요약본을 Ehtereum(Layer1)에 기록함으로써 Ethereum의 TPS를 대폭 향상시킬 수 있었습니다.

 

다만, 이러한 방법에는 1가지 문제가 존재하였는데요. Layer2에서 발생한 Transaction이 위.변조없이 정상적으로 처리되었는 지를 어떻게 검증하냐는 것 이었습니다.

 

이 이슈를 해결하기 위해 등장한 방법에 따라 Rollup이 또 다시 분류되는데요. 이번 포스팅에서는 가장 유명한 2가지 Rollup인 Optimistic Rollups과 ZK Rollups에서 설명드리려고 합니다.

 

Optimistic Rollups

Optimistic Rollups은 "전체 기록의 State Root와 이를 기록한 각 Batch의 Hash 값을 추적하고 만약 잘못 기록된 State Root가 발견된 경우, 잘못된 계산 결과가 존재하다는 사실을 Chain 상에서 증명(Fraud Proofs)함으로써 그 이후 발생되었던 모든 Batch를 되돌리는 방식"을 사용합니다.

 

 실제 사기임을 확인하는 사기 증명(Fraud Proofs)은 아래와 같은 흐름으로 작동합니다.

출처 : https://vitalik.ca

 

사기 증명(Fraud Proofs) 시에는 잘못된 계산 결과임을 증명하는 녹색으로 표시된 데이터(자산의 상태와 이를 통해 계산된 Sub State Root)와 체인에 저장된 데이터가 맞는지 검증하기 위한 Batch가 포함됩니다.

(노란색으로 표시된 데이터는 제공 받은 데이터를 통하여 계산할 수 있기 때문에 별도로 제출될 필요는 없다고 함)

 

만약 사기 증명 과정에서 계산된 State Root와 발행된 State Root가 다르다면, 발행된 State Root는 잘못된 계산임이 증명되어 사기를 밝혀낸 검증자에게는 보상이 주어지고 발행과 관련된 참여자에게는 불이익이 주어집니다.

 

다만, Optimisitc Rollups은 특정 데이터가 사기라는 것을 증명할 수 있는 기간이 정해져 있고 잔고 출금을 위해 Transaction이 확정되기까지의 시간이 다소 소요된다는 단점을 가지고 있습니다.

 

장점으로는 Optimistic Rollups 과정에서 사용되는 OVM은 EVM과 거의 유사하여 EVM의 OpCode를 OVM의 OpCode로 변경해주는 기능이 존재하기 때문에 기존의 Ethereum 프로젝트들을 쉽게 연동할 수 있다는 장점을 가지고 있습니다.

 

ZK Rollups

ZK Rollups은 "모든 배치에는 이미 기록된 State Root가 올바른 결과물임을 증명하는 ZK-SNARK(Zero Knowledge Proofs)라는 암호화 증명이 포함된 방식"을 사용합니다.

 

Zero Knowledge Proofs는 하나의 암호화 방법으로 한 주체가 다른 주체에게 어떠한 정보도 제공하지 않고 특정 명제가 참임을 증명하는 방법입니다.

 

ZK Rollups에서 Zero Knowledge Proofs는 아래와 같은 흐름으로 작동합니다.

1. Layer2 Mainnet에 Transaction이 기록되면, Batch를 통해 여러 Transaction에 대한 Rollup을 진행합니다. Batch를 통해 생성된 Rollup된 데이터에는 아래와 같은 데이터가 포함됩니다.

- Batch 내 존재하는 모든 Transactions에 대한 Merkle Tree

- Batch 내 존재하는 모든 Transactions이 처리에 사용되었다는 것을 증명하는 Zero Knowledge Proofs

- 각각의 Transaction에 대한 State 변화(송/수신자의 자산 증감) 이후 계산된 State Root

 

2. Batch는 이렇게 생성된 Rollup된 Data를 Ethereum Mainnet의 ZK Rollups Smart Contract에 제출합니다. Smart Contract에서는 Zero Knowledge Proofs를 이용하여 전달 받은 데이터가 유효한 지 검증한 뒤 변경된 State Root를 Ethereum Mainnet에 반영합니다.

 

이러한 과정에는 Transcation을 Batch에 추가하고 Zero Knowledge Proofs을 생성하는 Prover와 Zero Knowledge Proofs가 유효한 지 검증하고 유효하다면 Smart Contract에 제출하는 Verifiers가 존재합니다.

(이런 역할자들을 부르는 명칭이 자료마다 달라 명칭이 정확하지는 않을 수 있음)

 

ZK Rollups는 Optimistic Rollups보다 훨씬 빠른 속도를 가지고 검증할 수 있다는 장점을 가지고 있습니다. 다만, Zero Knowledge Proofs 암호화 방식을 이용하여 Off Chain에 계산하는 비용이 Optimistic 보다는 훨씬 높다는 단점도 가지고 있어 각각의 장단점을 고려하여 프로젝트의 목적에 맞는 방식을 고려해야할 것으로 보입니다.

 

Reference

 

An Incomplete Guide to Rollups

An Incomplete Guide to Rollups 2021 Jan 05 See all posts An Incomplete Guide to Rollups Rollups are all the rage in the Ethereum community, and are poised to be the key scalability solution for Ethereum for the foreseeable future. But what exactly is this

vitalik.ca

 

 

Home | ethereum.org

Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.

ethereum.org

 

Zero Knowledge Rollups Definition | CoinMarketCap

A zero-knowledge rollup is a Layer 2 blockchain solution that performs computations and storage off-chain while funds are held in a smart contract.

coinmarketcap.com

 

댓글