이더리움의 Layer 2 Rollups

We SeungJun
IOTRUST : Team Blog
7 min readMay 13, 2021

이 글은 이더리움 개발자 문서의 Layer 2 Rollups 문서를 바탕으로 작성되었습니다.

이더리움은 초당 10~30개의 트랜잭션을 처리할 수 있는 속도(이를 TPS, Transaction Per Seconds 라고 부릅니다)를 가지고 있는데 이는 VISA 의 처리속도인 24,000TPS 에 비하면 턱없이 모자른 수치입니다.
이런 이더리움의 낮은 TPS 로 인해 거래가 몰릴때는 수수료가 너무 높아지고 트랜잭션의 처리가 오래걸리는 문제가 있습니다.

때문에 TPS 를 향상시키기 위해 DPoS 나 Layer 2 같은 애들이 등장합니다. 오늘은 그 중에서도 Layer 2 에 대해 알아보겠습니다.

Layer2 의 탄생 배경

위에서 이미 얘기하고 왔지만 한번 더 정리하자면 이더리움의 낮은 거래속도로 인해 블록체인 게임이 실시간 처리를 못한다는 점이나, 거래 수수료가 높아지는 문제들이 생기고, 이를 해결하기 위해 TPS 를 높일 필요가 있었습니다.
따라서 EOS 같은 블록체인들은 TPS 를 높이기 위해 합의알고리즘을 DPoS로 변경하게되는데 이는 탈중앙화를 훼손했다는 평을 듣습니다. Layer2는 위와같이 확장성을 위해 탈중앙화를 희생하지 않는것을 목표로 합니다.

Layer2 구조

Layer2 는 메인넷(Layer1)과는 별도의 체인과 노드들을 가집니다. 트랜잭션을 제출할때는 Layer1에 제출하는게 아닌 Layer 2 노드에 제출하고, Layer1에 고정되기 전까지 Layer2 에서 그룹으로 일괄 처리되다가 그 후 Layer1에 고정되고 변경할수 없는 상태가 됩니다. 상세 작업은 Layer 2 의 여러 구현에 따라 달라지는데 이 중에서도 Rollups 에 대해 써보려 합니다.

Rollups

Rollups 란 Layer2 의 구현 방식중에 하나로 트랜잭션의 실행은 이더리움 Layer1 외부에서 하지만 Layer1에 트랜잭션을 저장하는 방법입니다.

Rollups 의 세가지 특성을 정리하면 다음과 같습니다.
1. Layer1 외부에서 트랜잭션 실행
2. 데이터나 트랜잭션 증명이 메인넷에 있음
3. Layer1의 트랜잭션 데이터를 사용해 Layer 2 에서 올바른 트랜잭션을 실행할 수 있는 Layer1의 rollup smart contract

Rollups 는 rollup smart contract 에 Staking 하는 운영자를 필요로 합니다. 이 컨트랙트는 운영자가 거래를 올바르게 검증하고 트랜잭션을 실행하게 해줍니다.
Rollups 를 구현하는 방법에는 대표적으로 ZK-rollups 와 Optimistic Rollups 두 가지가 있습니다.

Zero Knowledge rollups

ZK-rollups 는 Rollups 중 하나로 off-chain 에서 수백개의 트랜잭션을 묶어서 SNARK 암호화 증명을 생성합니다. 이것을 validity proof 라 부르며 암호화 증명은 Layer1에 게시됩니다.
ZK-Rollup Smart Contract 는 Layer 2 에서의 전송 상태를 유지해야 하며, 이 상태는 validity proof 로만 업데이트 가능합니다.
이를 다시 말하면 ZK-Rollups 는 모든 transaction 데이터들 대신 validity proof 만 필요하기 때문에 데이터가 더 작아지게 되고 이로 인해 블록 유효성 검사가 더 빠르고 저렴해집니다.

ZK-rollups 사용시 ZK-rollup contract 가 자금을 이미 검증했기 때문에 Layer2 에서 Layer1으로 전송할때 지연이 없습니다.

ZK-rollups 장점
1. validity proofs 가 메인넷으로 전송되면 상태가 즉시 확인되므로 최종 완료 시간이 더 빠릅니다.
2. Opimistc rollups 가 취약한 경제적 공격에 취약하지 않습니다.
3. 상태를 복구하는데 필요한 데이터가 Layer1 에 있기 때문에 더 안전하고 탈중앙화 되어있습니다.

ZK-rollups 단점
1. 일부 구현은 EVM 을 지원하지 않습니다.
2. Validity proofs 는 compute 에 강합니다. 이로 인해 on-chain 활동이 거의 없는 dapp 들에는 큰 효과가 없습니다.

Optimistic rollups

Optimistic rollups 는 이더리움 체인과 병렬로 배치되는 사이드 체인을 사용합니다. 기본적으로 어떤 computation도 수행하지 않기 때문에 확장성이 향상됩니다. 대신 거래후 메인넷에 새로운 상태를 제안하거나 거래를 notarise(공증)합니다.

Optimistic rollups 사용시 트랜잭션이 Layer1 에 calldata 로 기록되어서 가스비용이 줄어듭니다.

이더리움에서 computation 은 가장 느리고 비용이 많이 소모되는 부분인데 Optimistic rollups 에서는 computation 을 실행하지 않기 때문에 트랜잭션 종류에 따라 10배에서 100배 가까이 확장성이 늘어납니다. 확장성은 Eth2 의 shard chain 도입 시 Disputing Transaction(사기, 분쟁거래)이 있을때 더 많은 데이터를 사용 가능하기 때문에 더욱 증가할 수 있습니다.

Disputing Transaction
Optimistic rollups 는 실제로 트랜잭션을 실행하지 않기 때문에 트랜잭션이 올바른지 확인하는 메커니즘이 있어야 하는데, 여기서 fraud proofs 가 사용됩니다.
누군가 Disputing Transaction 을 발견하면 rollup 은 fraud-proof 를 실행한뒤 트랙잭션의 계산을 실행합니다. 때문에 ZK-rollups 보다 트랜잭션 확인 시간이 더 길 수 있습니다.

Fraud Proof

Optimistic rollups 는 트랜잭션을 실행시키지 않기 때문에 Layer2 의 블록에 조작된 트랜잭션을 커밋할 수 있습니다. 따라서 네트워크의 참여자는 잘못된 트랜잭션이 있다고 판단하면 이의제기를 할 수 있는데, 이를 Fraud Proof 라 부릅니다. Fraud proof 프로토콜은 잘못된 상태에 대해 이의를 제기할 수 있는 the Dispute Time Delay(DTD), 분쟁 지연 시간을 허용합니다.
이 DTD 내에 누군가가 이의를 제기하지 않는다면 Layer2의 상태 변경이 올바른것으로 간주됩니다.
만약 누군가가 이의제기를 한다면 트랜잭션을 실행하고, 잘못된 상태임이 입증된다면, 올바른 Layer2 상태로 되돌아가게 됩니다. 그 뒤 추가적으로 잘못된 상태를 제출한 사람에게 벌금을 주는 등의 조취를 취할 수 있습니다.

Optimistic rollups 의 장점
1. Ethereum Layer1 에서 할 수 있는 모든 작업들은 EVM 과 Solidity 와 호환되므로 Optimistic rollups 로 수행할 수 있습니다.
2. 모든 거래 데이터가 Layer1 에 저장되므로 안전하고 탈중앙화 되어있습니다.

Optimitic rollups 의 단점
1. DTD 와 사기 증명의 존재로 인해 Layer2에서 Layer1 으로 자금을 보낼때 DTD 동안 전송이 지연됩니다.

참고자료

https://ethereum.org/en/developers/docs/scaling/layer-2-rollups/
https://medium.com/starkware/validity-proofs-vs-fraud-proofs-4ef8b4d3d87a

디센트 공식 채널

공식 웹사이트 : https://dcentwallet.com/
미디엄 : https://medium.com/dcentwallet
트위터 : https://twitter.com/DCENTwallets
페이스북 : https://www.facebook.com/dcentwallet
유튜브 : https://www.youtube.com/channel/UCKnYqiM3g3iaaAKcRZf-kbA

--

--