본문으로 건너뛰기
0%

옵티미스틱 Rollups는 어떻게 작동하는가 (완전 가이드)

Alchemy team headshot

작성자 Alchemy

2023년 8월 9일에 게시됨7분 읽기

한때는 주변부의 아이디어로 여겨졌던 Ethereum—세계 최초의 스마트 컨트랙트 플랫폼—은 수년에 걸쳐 상당히 성장했으며, 이제 거의 3,000개의 탈중앙화 애플리케이션, 4,000개 이상의 스마트 컨트랙트, 하루 90,000건 이상의 트랜잭션을 처리하고 있습니다.

하지만 Ethereum의 활동 증가에는 대가가 따랐습니다: 바로 확장성 문제입니다.

블록 크기와 블록 생성 시간에 대한 제한은 탈중앙화와 보안을 위해 필요하지만, Ethereum이 확장하고 더 많은 사용자를 수용할 수 있는 능력을 저하시킵니다. 그 결과 대부분의 Ethereum 사용자에게 익숙한 여러 문제가 발생합니다—바로 높은 가스비와 느린 트랜잭션입니다.

Ethereum을 확장하려면 신뢰 가정을 도입하지 않으면서 네트워크 처리량과 지연 시간을 확장할 수 있는 능력을 안전하게 늘려야 합니다. 이것이 Layer 2 rollups와 사이드체인 같은 여러 확장 솔루션이 시도하는 바입니다.

이 글에서는 Ethereum을 더 저렴하고 빠르게 사용할 수 있도록 설계된 L2 rollup 솔루션의 한 부류인 Optimistic Rollups(ORU)를 살펴봅니다.

Optimistic rollups란 무엇인가?

Optimistic rollups는 연산과 데이터 저장을 오프체인으로 옮김으로써 Ethereum 기본 레이어의 처리량과 지연 시간을 개선하는 layer 2(L2) 구조입니다. Optimistic rollup은 Ethereum Mainnet 밖에서 트랜잭션을 처리하여 기본 레이어의 혼잡을 줄이고 확장성을 개선합니다.

“optimistic”이라는 명칭은 optimistic rollups의 독특한 특징을 가리킵니다: 트랜잭션에 대한 정보를 온체인에 거의 게시하지 않고, 모든 트랜잭션이 유효하다고 자동으로 가정한다는 점입니다. “rollups”라고 불리는 이유는 수천 개의 트랜잭션을 배치로 묶어("roll up") Mainnet에 제출하기 때문입니다.

Optimistic rollup의 아키텍처

1. Optimistic rollup 진입하기

Optimistic rollups는 L2 체인과 L1 블록체인(Ethereum) 간의 상호작용을 관리하기 위해 Ethereum에 배포된 스마트 컨트랙트를 사용합니다. Rollup 사용자는 rollup에서 동등한 금액을 잠금 해제받기 전에 이 스마트 컨트랙트 중 하나에 자금을 예치해야 합니다.

_sequencer_라고 불리는 제3자가 rollup 컨트랙트에서 사용자의 예치 증명을 받은 후 rollup에서 사용자에게 자금을 지급합니다. 이후 사용자는 잔액을 소진할 때까지 rollup에서 자유롭게 거래할 수 있습니다.

옵티미스틱 롤업의 아키텍처
출처

2. Optimistic rollup 사용하기

Rollup에서 사용자는 트랜잭션에 서명하여 트랜잭션의 순서를 정하고 실행하는 역할을 맡은 sequencer에게 제출합니다. Sequencer는 트랜잭션을 검증하고, 데이터를 블록으로 압축하여, 배치를 하나의 트랜잭션으로 Ethereum에 제출합니다.

여기서 rollup 컨트랙트가 다시 등장합니다. 온체인 컨트랙트는 rollup 상태의 머클 루트인 “상태 루트”를 저장합니다. 이를 좀 더 자세히 살펴보겠습니다:

상태(State)

_상태(State)_는 특정 시점에서 네트워크에 대해 이용 가능한 정보를 나타내는 개념입니다. “rollup의 상태”는 L2 체인의 현재 조건을 설명하며 기존 계정, 잔액, 스마트 컨트랙트 등의 세부 정보를 명시합니다.

Rollup에서 수행되는 모든 트랜잭션은 상태 변화를 일으킵니다—예를 들어, Alice가 Bob에게 5 ETH를 보내면 Alice의 잔액이 줄어듭니다. 따라서 rollup이 트랜잭션을 실행한 후 이전 상태에서 새로운 상태로 이동하기 때문에 트랜잭션을 _상태 전이(state transitions)_라고 부릅니다.

Merkle root

Merkle root를 사용하면 사용자가 암호화 해시를 이용해 방대한 양의 정보를 인코딩할 수 있습니다. Merkle root는 또한 특정 데이터 조각(예: 트랜잭션)이 더 큰 데이터 세트(예: 트랜잭션 배치)의 일부인지 확인하는 것을 더 쉽게 해줍니다.

따라서 rollup 컨트랙트에 저장된 “상태 루트”는 서로 다른 시점에서 rollup의 상태를 검증하는 암호화 커밋먼트입니다. Sequencer가 트랜잭션 배치를 rollup 컨트랙트에 제출할 때, pre-state root와 post-state root를 모두 포함해야 합니다.

  1. Pre-state root: 제출된 트랜잭션이 실행되기 전의 rollup 상태를 설명하는 이전 상태 루트입니다.

  2. Post-state root: 제출된 트랜잭션이 실행된 후의 rollup 상태를 설명하는 새로운 상태 루트입니다.

Sequencer가 배치를 제출하면, 컨트랙트는 pre-state root가 기존 상태 루트와 일치하는지 확인합니다. 두 값이 일치하면, 컨트랙트는 이전 상태 루트를 폐기하고 sequencer가 제안한 새로운 상태 루트를 저장합니다.

이는 post-state root에서 참조된 트랜잭션이 확정되어 되돌릴 수 없게 되었음을 의미합니다. Sequencer는 배치된 트랜잭션의 유효성에 대한 증명을 제출할 필요가 없다는 점에 유의하세요.

증명이 필요한 유일한 경우는 verifier가 fraud proof를 사용하여 부정한 rollup 트랜잭션을 신고할 때뿐입니다. Fraud proof의 작동 방식은 이 글의 후반부에서 설명하겠습니다.

옵티미스틱 롤업에서 상태 루트를 생성하는 Merkle 트리 다이어그램
출처

3. Optimistic rollup에서 나가기

Alice(사용자)가 이 rollup에 지쳐서 Ethereum Mainnet의 rollup 컨트랙트에서 자금을 인출하고 싶다고 가정해봅시다. 이를 위해서는 자신의 트랜잭션이 rollup의 상태 루트에 포함되어 있음을 증명하는 Merkle proof가 필요합니다—맞습니다, 짐작하신 대로입니다.

Merkle proof를 구성하려면 sequencer가 제공해야 할 초기 트랜잭션 데이터에 접근할 수 있어야 합니다. 모든 일이 순조롭게 진행되면, Alice는 데이터를 받아 Merkle proof를 생성하고 rollup 컨트랙트에 제출합니다.

하지만 트랜잭션 데이터 제공을 sequencer에 의존하는 것은 신뢰 가정을 도입하게 됩니다. Sequencer가 악의적으로 변해 Alice의 토큰을 자신의 지갑으로 이체하는 트랜잭션을 실행하고, Alice가 자금 소유권을 증명하는 데 필요한 데이터를 주지 않을 수도 있습니다. Sequencer가 오프라인 상태가 되는 것처럼 악의적이지 않은 상황조차도 optimistic rollup의 탈중앙화와 보안을 위협할 수 있습니다.

Optimistic rollups는 sequencer가 전체 트랜잭션 데이터를 Ethereum 메인 실행 레이어에 게시하도록 요구함으로써 이 문제를 해결합니다. 이 정보는 Ethereum Virtual Machine의 메모리나 스토리지에 저장하는 것보다 저렴한 "calldata"로 Ethereum Mainnet에 게시됩니다(이는 rollup 수수료를 더욱 낮춰줍니다).

이는 두 가지 목적을 달성합니다:

  1. Sequencer가 오프라인이 되면, 다른 sequencer가 트랜잭션 데이터를 사용하여 rollup의 상태를 재구성하고 블록 생성을 계속할 수 있습니다.

  2. Alice(사용자)는 직접 데이터를 다운로드하여 Merkle proof를 생성하는 데 사용할 수 있습니다.

온체인 데이터 가용성의 사용이 optimistic rollups를 다른 확장 솔루션보다 훨씬 더 안전하게 만드는 요소입니다. 트랜잭션 데이터가 Ethereum에 저장되어 있으므로, Ethereum이 계속 작동하는 한 사용자 자금은 항상 안전합니다.

이렇게 어떤 방법으로든 Alice는 자금 소유권을 증명하는 Merkle proof를 생성해냅니다. 하지만 자금을 인출하기 전에 _분쟁 기간(dispute period)_이 지나기를 기다려야 합니다. Optimistic rollups에서 분쟁 기간은 인출 요청을 제출한 후 요청된 자금을 받기까지 1-2주의 간격입니다.

이 기간 동안 누구나 특정 트랜잭션이나 트랜잭션 배치가 무효하다고 주장하는 fraud proof를 게시할 수 있습니다. Fraud proof가 성공하면, sequencer의 본드(정직한 행동을 보장하기 위해 제공된 것)가 슬래싱되고, Alice의 “자금”은 되돌려지며, "제보자"(_verifier_라고 함)는 그 노력에 대한 보상을 받습니다.

아무도 Alice의 인출 요청에 이의를 제기하지 않으면, Alice는 1-2주 후에 rollup 컨트랙트에서 자금을 받을 수 있습니다.

Fraud proof란 무엇인가?

Fraud proof는 상태 전이(즉, 트랜잭션)가 무효하며 그 결과로 전체 배치를 되돌려야 한다는 주장입니다. 복잡하기는 하지만, fraud proof는 앞서 언급한 상태 루트에 크게 의존하여 작동합니다.

이 과정은 어떤 당사자(verifier)가 L1 체인의 상태 루트에서 참조된 rollup 상태와 rollup 체인의 실제 상태 사이의 불일치를 감지할 때 시작됩니다.

한 예로, Alice가 전송을 전혀 하지 않았음에도 sequencer가 Alice의 잔액을 5 ETH 줄이고 Bob의 잔액을 같은 금액만큼 늘리는 post-state root를 제출하는 경우를 들 수 있습니다.

Verifier는 이 상태 전이에 “이의를 제기”하고 그것이 무효임을 증명할 수 있습니다. 이것이 가능한 이유는 verifier가 모든 트랜잭션에 대한 데이터를 다운로드하여, 자신이 가지고 있는 rollup 상태 사본에 적용하고, post-state root를 계산하기 때문입니다.

Sequencer의 post-state root가 verifier의 것과 일치하면 아무 일도 일어나지 않습니다. 하지만 sequencer의 post-state root가 다르다면—Alice의 경우처럼 허위 트랜잭션이 포함되어 있을 가능성이 높은 경우—verifier는 fraud proof 계산을 트리거할 수 있습니다.

옵티미스틱 롤업 트랜잭션에 대한 이의 제기를 위한 fraud proof 프로세스 다이어그램
Source: https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/#disputing-transactions

Fraud proof는 어떻게 작동하는가?

다음은 fraud proof 과정에 대한 개괄적인 설명입니다:

  1. Verifier가 이의를 제기하고 다음 정보를 제공합니다:

    a. 분쟁 중인 상태 전이

    b. Pre-state root

    c. Rollup 상태 데이터

    d. 자신의 post-state root 버전

    1. 트랜잭션은 챌린저가 제공한 정보 등을 사용하여 L1 체인의 샌드박스 환경에서 재실행됩니다.

이 “샌드박스 환경”은 Ethereum에서 실행되는 스마트 컨트랙트로, 가상 머신(VM) 역할도 겸합니다.

  1. 연산 결과로 나온 post-state root가 챌린저의 것과 일치하면, sequencer가 실제로 무효한 상태 전이가 포함된 배치를 게시했다는 것을 알 수 있습니다.

무효한 배치(및 이후 게시된 다른 배치)는 되돌려지며, rollup은 이전 상태로 복원됩니다.

여기서 설명한 fraud proof 메커니즘은 실제로는 이보다 더 복잡하다는 점을 참고하시기 바랍니다.

rollup의 fraud proof에 관한 이 글이 추가적인 맥락을 제공할 수 있습니다.

Fraud proof와 validity proof의 차이는 무엇인가?

Fraud proof는 온체인에서 계산된다는 점에서 validity proof와 주로 다릅니다. Validity proof(영지식 증명이라고도 함)는 오프체인(즉, rollup에서)에서 계산되고 Ethereum에서 검증됩니다.

다양한 유형의 영지식 증명을 비교한 저희 글에서 설명했듯이, SNARK나 STARK 같은 validity proof는 오프체인에서 수행된 트랜잭션의 유효성을 증명하는 데 사용됩니다. 이것이 zero-knowledge rollup의 기반입니다.

ZK-rollup에서는 트랜잭션 데이터를 입력값으로 사용하여 모든 배치에 대해 validity proof가 생성됩니다. 이 validity proof는 배치와 함께 Ethereum Mainnet에 제출되어 온체인 컨트랙트에 의해 검증됩니다. 이는 (optimistic rollups와 달리) 이의 제기를 기다리지 않고도 트랜잭션을 즉시 유효한 것으로 선언할 수 있음을 의미합니다.

Fraud proof와 ZK proof 사이의 또 다른 차이점은 후자가 온체인에서 검증하기가 다소 더 쉽다는 점입니다. 스마트 컨트랙트가 해야 할 일은 배치된 트랜잭션의 유효성을 확인하기 위해 validity proof를 실행하는 것뿐입니다. Fraud proof의 경우, fraud proof 계산을 완료하기 전에 전체 상태 전이를 재실행해야 합니다.

Optimistic rollups와 zk rollups의 차이는 무엇인가?

Optimistic rollups와 ZK rollups의 주요 차이는 전자가 스마트 컨트랙트를 지원하고, 인출이 지연되며, 암호경제적 인센티브에 의존하고, 보안 속성이 다르다는 점에서 나옵니다.

다음은 optimistic rollups와 ZK rollups에 대한 자세한 비교입니다:

Features
Optimistic Rollups
ZK Rollups
Proof
트랜잭션 유효성을 증명하기 위해 fraud proof를 사용합니다.
트랜잭션 유효성을 증명하기 위해 validity(영지식) proof를 사용합니다.
Capital Efficieny
자금을 인출하기 전에 1주일의 지연(분쟁 기간)을 기다려야 합니다.
Validity proof가 오프체인 트랜잭션의 진위성에 대한 확실한 증거를 제공하기 때문에 사용자는 즉시 자금을 인출할 수 있습니다.
Data Compression
전체 트랜잭션 데이터를 calldata로 Ethereum Mainnet에 게시하여 rollup 비용을 증가시킵니다.
ZK-SNARK와 ZK-STARK가 이미 rollup 상태의 정확성을 보장하므로 Ethereum에 트랜잭션 데이터를 게시할 필요가 없습니다.
EVM Compatibility
Ethereum Virtual Machine(EVM)의 시뮬레이션을 사용하여 임의의 로직을 실행하고 스마트 컨트랙트를 지원할 수 있습니다.
EVM 호환 ZK-rollup이 몇몇 등장하기는 했지만, EVM 연산을 폭넓게 지원하지는 않습니다.
Rollup Costs
Ethereum에 최소한의 데이터만 게시하고 특별한 경우를 제외하고는 트랜잭션에 대한 증명을 게시할 필요가 없기 때문에 비용이 절감됩니다.
모든 트랜잭션 블록에 대한 증명을 생성하고 검증하는 데 드는 비용으로 인해 더 높은 오버헤드에 직면합니다. ZK proof는 생성하는 데 전문적이고 값비싼 하드웨어가 필요하며 온체인 검증 비용도 높습니다.
Trust Assumptions
신뢰된 설정(trusted setup)이 필요하지 않습니다.
작동하려면 신뢰된 설정(trusted setup)이 필요합니다.
Liveness Requirements
부정 행위를 감지하기 위해 실제 rollup 상태와 상태 루트에서 참조된 상태를 계속 확인할 verifier가 필요합니다.
부정 행위를 감지하기 위해 L2 체인을 감시할 사람이 필요하지 않습니다.
Security Properties
Rollup 보안을 사용자에게 보장하기 위해 암호경제적 인센티브에 의존합니다.
보안을 위해 암호학적 보장에 의존합니다.

주요 optimistic rollup 블록체인은 무엇인가?

Total Value Locked(TVL) 기준으로 주요 optimistic rollup 블록체인은 Arbitrum, Optimism, Metis Andromeda, Boba Network입니다. 다음은 다양한 optimistic rollups(ORU)에 대한 개요입니다:

1. Arbitrum

Arbitrum은 연산과 데이터 저장을 오프체인으로 옮김으로써 Ethereum의 사용자 비용과 트랜잭션 속도를 개선하도록 설계된 optimistic rollup 프로젝트입니다. Arbitrum Virtual Machine(AVM)은 EVM 호환 스마트 컨트랙트를 지원하여, 사용자가 Ethereum 비용의 일부만으로 즐겨 사용하는 앱을 이용할 수 있게 해줍니다.

2. Optimism

Optimism은 Ethereum의 보안 보장을 활용하는 EVM 호환 optimistic rollup 체인입니다. Optimism은 optimistic rollup(OR) 구조를 사용하여 수천 건의 오프체인 트랜잭션을 롤업하고 사용자의 가스비를 절감합니다.

3. Metis andromeda

Metis Andromeda는 optimistic rollups를 기반으로 한 확장 가능하고, 저비용이며, 기능적인 L2 프로토콜입니다. Metis Andromeda의 독특한 스택은 앱, DAO, DeFi를 포함한 다양한 사용 사례에 적용될 수 있습니다.

4. Boba network

Boba Network는 optimistic rollup 설계로 처리량을 확장하는 Ethereum L2입니다. Boba Network는 사용자가 7일간의 챌린지 기간이 지나기를 기다리지 않고 즉시 자금을 인출할 수 있는 유동성 공급자(LP) 서비스를 제공합니다.

어떤 optimistic 블록체인 또는 프로젝트가 토큰을 가지고 있는가?

다음 optimistic rollup 프로젝트들이 토큰을 가지고 있습니다:

  • Optimism (OP)
  • Boba Network (BOBA)
  • Metis Andromeda (METIS)

Optimistic rollup 도구

Optimistic rollups는 앱을 확장하고 더 비용 효율적이고 효율적인 방식으로 스마트 컨트랙트와 상호작용하는 데 유용한 솔루션입니다. 하지만 먼저, optimistic rollups를 쉽고 안전하게 사용하기 위한 다양한 도구가 필요합니다.

다음은 개발자와 최종 사용자를 위한 다양한 optimistic rollup 도구입니다:

Optimistic layer 2 블록체인으로의 크로스체인 브릿지

Optimistic rollups는 Ethereum의 기본 레이어 위에 구축되지만, 두 체인의 자산은 기본적으로 서로 호환되지 않습니다. 하지만 크로스체인 브릿지를 사용하여 Ethereum 같은 L1 체인에서 optimistic rollup으로 자금을 이체할 수 있습니다:

다음은 L1 체인과 다양한 L2 rollups를 연결하는 브릿지의 예시입니다:

Arbitrum과의 브릿지

  • Arbitrum Token Bridge
  • cBridge
  • Hop Protocol
  • Synapse Protocol
  • Anyway Bridge
  • DeGate Bridge

Optimism과의 브릿지

  • Connext
  • Celer Bridge
  • Li.Fi
  • Optimism Bridge
  • Poly Network
  • Via Protocol
  • Synapse Protocol
  • Across

Metis andromeda와의 브릿지

  • Metis Bridge
  • cBridge
  • AnySwap
  • Synapse Protocol

Boba network와의 브릿지

  • Across
  • Boba Standard Token Bridge/Fast Token Bridge
  • cBridge
  • Synapse Protocol

Optimistic rollup 테스트넷

테스트넷은 연관된 메인 네트워크(Mainnet)의 동작을 시뮬레이션하는 공개 블록체인 네트워크입니다. 실제 블록체인과 달리 테스트넷은 실제 자금을 사용하지 않으므로, 개발자는 최소한의 위험으로 스마트 컨트랙트를 배포하고 테스트할 수 있습니다.

일부 optimistic rollups는 dApp 테스트에 사용할 수 있는 Rinkeby 같은 Ethereum 테스트넷 버전을 제공합니다:

1. Optimism Ethereum Kovan Testnet

Optimistic Ethereum Kovan Testnet은 테스트 목적으로 설계된 EVM 호환 optimistic rollup 체인입니다. Ethereum Mainnet의 Optimism과 마찬가지로, Optimistic Ethereum Kovan Testnet은 L1에서 얻을 수 있는 것보다 더 빠르고 저렴한 트랜잭션을 위해 설계되었습니다.

2. Arbitrum Rinkeby Testnet

Arbitrum을 만든 팀인 Offchain Labs는 Rinkeby 네트워크에 EVM과 동등한 rollup 체인을 출시했습니다. Arbitrum Rinkeby testnet을 사용하면 개발자는 소프트웨어를 다운로드하지 않고도 Arbitrum rollup에 Solidity 스마트 컨트랙트를 배포할 수 있습니다. 또한 블록체인 익스플로러와 ERC-20/ERC-721 토큰을 이동하기 위한 브릿지도 함께 제공됩니다.

3. Boba network Rinkeby Testnet

Boba Network는 Rinkeby testnet에 EVM 호환 rollup 체인을 갖춘 또 다른 프로젝트입니다. Alchemy의 Rinkeby faucet에서 테스트넷 ETH를 요청하여 스마트 컨트랙트를 만들거나 테스트할 수 있습니다.

결론

Optimistic rollups는 layer 2 아키텍처를 사용하여 Ethereum을 확장하려는 노력의 중요한 부분입니다. Optimistic rollups는 Ethereum의 보안과 탈중앙화를 기반으로 하면서 더 저렴한 수수료와 더 빠른 트랜잭션을 제공합니다.

Alchemy는 optimistic rollups를 기반으로 한 두 가지 주요 프로젝트인 Arbitrum과 Optimism을 지원합니다. 오늘 무료로 가입하고 Ethereum 기반 optimistic rollups로 dApp을 확장하는 방법을 확인해보세요.

자주 묻는 질문

Optimistic rollups란 무엇인가?

Optimistic rollups는 이의 제기가 없는 한 모든 트랜잭션이 유효하다고 가정하면서 연산과 데이터 저장을 오프체인으로 옮김으로써 Ethereum의 처리량과 지연 시간을 개선하는 layer 2 확장 솔루션입니다.

Optimistic rollup에 자금을 예치하는 방법은?

사용자는 Ethereum에 배포된 스마트 컨트랙트에 자금을 예치하며, sequencer는 예치 증명을 받은 후 rollup에서 동등한 금액을 사용자에게 지급합니다.

Optimistic rollups의 챌린지 기간이란?

챌린지 기간은 인출 요청을 제출한 후 자금을 인출할 수 있기 전까지 누구나 무효한 트랜잭션에 이의를 제기하는 fraud proof를 게시할 수 있는 1-2주의 간격입니다.

Sequencer는 어떤 역할을 하는가?

Sequencer는 트랜잭션의 순서를 정하고 실행하며, 트랜잭션 데이터를 블록으로 압축하고, 배치를 하나의 트랜잭션으로 Ethereum에 제출하며, 예치 후 사용자에게 자금을 지급합니다.

Optimistic rollups와 ZK rollups는 어떻게 다른가?

Optimistic rollups는 트랜잭션이 유효하다고 가정하고 이의가 제기될 때만 fraud proof를 사용하는 반면, ZK rollups는 모든 배치에 대해 validity proof를 사용하며 대기 시간 없이 즉시 인출이 가능합니다.

Fraud proof란 무엇인가?

Fraud proof는 상태 전이가 무효하다는 주장으로, verifier가 rollup 상태의 불일치를 감지하고 부정한 배치를 되돌리기 위한 증거를 제출할 때 트리거됩니다.

Optimistic rollups에 인출 지연이 있는 이유는?

1-2주의 인출 지연은 rollup 컨트랙트에서 자금이 방출되기 전에 verifier가 부정한 트랜잭션을 감지하고 이의를 제기할 시간을 확보하기 위한 것입니다.

주요 optimistic rollup 블록체인은 무엇인가?

Total Value Locked 기준으로 주요 optimistic rollup 블록체인은 Arbitrum, Optimism, Metis Andromeda, Boba Network입니다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.