---
title: "옵티미스틱 가상 머신(OVM)이란?"
description: "OVM과 EVM의 차이점, 그리고 스케일링에 중요한 이유"
---

# 옵티미스틱 가상 머신(OVM)이란?

낙관적 가상 머신\(Optimistic Virtual Machine, OVM\)은 옵티미스틱 롤업에서 실행되는 스마트 컨트랙트를 위한 실행 환경입니다. [옵티미스틱 롤업](https://www.alchemy.com/overviews/optimistic-rollups)은 오프체인 실행을 통해 Ethereum의 처리량과 지연 시간을 개선하는 레이어 2\(L2\) 스케일링 솔루션입니다. 롤업은 트랜잭션을 오프체인에서 실행하는 동시에 체인 상태를 재구성하는 데 필요한 데이터를 Ethereum에 게시하기 때문에 "하이브리드 스케일링 솔루션"이라고 불립니다.

낙관적 가상 머신\(OVM\)은 옵티미스틱 롤업의 기능에서 핵심적인 역할을 합니다. OVM을 사용하면 개발자는 L2 롤업에서 [탈중앙화 애플리케이션](https://www.alchemy.com/dapps/top/defi-dapps)을 Ethereum에서와 마찬가지로 사용자 경험의 눈에 띄는 차이 없이 실행할 수 있습니다.

이 가이드에서는 OVM이 무엇인지, 그리고 EVM이나 zkEVM 같은 다른 가상 머신과 어떻게 다른지 설명합니다. 또한 Optimism과 [Arbitrum](https://www.alchemy.com/arbitrum) 등 널리 사용되는 옵티미스틱 롤업에서 채택하는 OVM 설계의 기본 아키텍처도 다룹니다.

## 낙관적 가상 머신이란 무엇인가?

**낙관적 가상 머신\(OVM\)은 레이어 2\(L2\) 프로토콜에서 범용 연산을 실행하기 위한 EVM 호환 가상 머신입니다.**

OVM은 트랜잭션을 "낙관적으로" 실행합니다. 즉, 트랜잭션의 유효성을 강제로 검증하지 않고, 상태 전이의 정확성에 관한 분쟁을 L1 체인이 중재하도록 맡깁니다. 이러한 분쟁을 사기 증명\(fraud proof\)이라고 합니다.

이 정의를 구성 요소별로 나누어 살펴보겠습니다.

### **EVM 호환성**

[Ethereum 가상 머신\(EVM\)](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)은 Ethereum 블록체인에서 프로그램 실행을 가능하게 하는 "탈중앙화된 전역 컴퓨터"입니다. EVM은 누구나 접근하여 소프트웨어\(예: 스마트 컨트랙트\)를 Ethereum 네트워크에서 실행할 수 있도록 연산 자원을 제공하는 수천 개의 개별 컴퓨터\(노드\)로 구성됩니다.

"EVM 호환성"이란 특정 시스템이 EVM용으로 작성되거나 컴파일된 프로그램과 함께 동작하도록 설계되었다는 것을 의미합니다. 낙관적 가상 머신은 [Ethereum 옐로우 페이퍼](https://ethereum.github.io/yellowpaper/paper.pdf)에 명시된 EVM의 명령어 집합\(opcode\)을 지원하므로 EVM과 호환됩니다. 이를 통해 OVM은 Ethereum 스마트 컨트랙트를 코드의 큰 변경 없이 실행할 수 있습니다.

### **낙관적 실행**

가상 머신은 상태 머신으로도 기능할 수 있어, 입력에 따라 여러 상태 사이를 전이할 수 있습니다. 블록체인에서는 합의 프로토콜이 상태 전이를 관리하며 상태 전이 함수를 규정하는 규칙을 제시합니다. 예를 들어, Ethereum의 상태를 갱신하는 규칙은 EVM에 의해 정의되며 네트워크의 작업 증명\(PoW\) 합의에 의해 강제됩니다.

OVM은 "낙관적 실행" 모델에 의존합니다. 즉, 프로토콜은 상태 전이를 수락하기 전에 그것이 유효한지 확인하지 않습니다. 상태 갱신의 유효성에 대한 합의 도출이 Ethereum과 같은 레이어 1\(L1\) 블록체인의 처리 속도를 늦추기 때문에, 이러한 방식은 효율성을 높입니다. 모든 트랜잭션이 기본적으로 유효하다고 가정함으로써 OVM은 훨씬 빠르게 진행할 수 있습니다.

그러나 보안을 제공하기 위해 OVM 설계는 누구나 상태 전이의 유효성에 이의를 제기할 수 있도록 하며, 이때 L1 체인이 심판자 역할을 합니다. 이 과정은 "사기 증명"에 의존하며, 이에 대해서는 이후 섹션에서 설명합니다.

### L2에서의 범용 연산

가상 머신\(VM\)이 범용 연산을 지원한다면, 적절한 명령과 충분한 자원이 주어질 경우 대부분의 작업을 수행할 수 있습니다. OVM은 임의의 로직을 실행할 수 있으므로\(즉, 튜링 완전하므로\), 개발자는 이를 다양한 종류의 스마트 컨트랙트 실행에 적용할 수 있습니다.

또한 OVM은 [레이어 2 블록체인](https://www.alchemy.com/overviews/sidechains-vs-layer2s)에서 실행됩니다. 이는 기반 블록체인\(이 경우 Ethereum\) 위에서 동작하는 프로토콜입니다. L2 프로토콜은 상위 체인의 확장이며 L1 블록체인의 스마트 컨트랙트에 의해 관리됩니다. 더 중요한 점은, L1 체인이 L2 OVM의 상태 전이의 정확성과 실행 이면의 데이터 가용성을 보장한다는 것입니다.

<ImageBlock
  src="https://media.alchemy.com/1704293068-layer2-blockchain.png"
  alt="Layer 2 블록체인은 기존 블록체인 위에 구축되며, Layer 1 체인의 확장을 돕도록 설계되었습니다."
  width={788}
  height={579}
  caption="Layer 2 블록체인은 기존 블록체인 위에 구축되며, Layer 1 체인의 확장을 돕도록 설계되었습니다."
/>

## OVM은 EVM과 어떻게 다른가?

OVM과 EVM은 둘 다 연산을 실행한다는 점에서 유사합니다. 그러나 OVM은 EVM에 대한 인터페이스 역할만을 수행합니다.

EVM은 L1에서 트랜잭션을 처리하는 데 사용되는 가상 머신이지만, 각 연산이 수락되기 전에 네트워크의 모든 노드가 이를 다시 실행해야 하므로 L1 VM은 느립니다. 처리해야 할 트랜잭션 수가 매우 많고 노드가 한 번에 처리할 수 있는 트랜잭션 수가 적기 때문에 비용도 높습니다.

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Network", dataType: "object" },
      { key: "2", width: 180, title: "Low Price", dataType: "object" },
      { key: "3", width: 180, title: "High Price", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Optimism</p>", tooltip: "", icon: "" },
        "2": { title: "<p>$0.13</p>", tooltip: "", icon: "" },
        "3": { title: "<p>$0.20</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>Polygon Hermez</p>", tooltip: "", icon: "" },
        "2": { title: "<p>$0.25</p>", tooltip: "", icon: "" },
        "3": { title: false, tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Arbitrum One</p>", tooltip: "", icon: "" },
        "2": { title: "<p>$0.32</p>", tooltip: "", icon: "" },
        "3": { title: "<p>$0.44</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Aztec Network</p>", tooltip: "", icon: "" },
        "2": { title: "<p>$0.80</p>", tooltip: "", icon: "" },
        "3": { title: false, tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>Ethereum</p>", tooltip: "", icon: "" },
        "2": { title: "<p>$0.93</p>", tooltip: "", icon: "" },
        "3": { title: "<p>$4.67</p>", tooltip: "", icon: "" },
        id: 4,
      },
    ],
  }}
/>

\(L2에서 실행되는\) OVM을 사용하면 사용자는 L1 EVM의 상태를 직접 갱신하지 않고도 이를 이용할 수 있습니다. 대신 OVM은 트랜잭션을 "오프체인"\(즉, L1 체인 밖\)에서 실행하되, 그 오프체인 데이터를 사용하여 레이어 1에서 일어날 결과를 보장합니다.

예를 들어 보겠습니다.

Alice가 옵티미스틱 롤업에서 2 ETH를 보유하고 있고 Bob에게 1 ETH를 보낸다고 가정합니다.

애그리게이터가 이 트랜잭션을 레이어 1의 롤업 컨트랙트에 제출하며, 이의가 제기되지 않으면 이는 Ethereum에서 채굴된 트랜잭션의 일부로 포함됩니다.

이러한 방식으로, 롤업에서 Bob에게 1 ETH를 지급하는 트랜잭션이 Ethereum 메인 체인의 합의를 통과하여 후자의 상태의 일부로 확정될 것임을 보장할 수 있습니다.

이러한 보장은 다음 사실에서 비롯됩니다:

1. OVM은 트랜잭션 실행을 위해 EVM의 규칙을 사용합니다. 옵티미스틱 롤업이 트랜잭션을 올바르게 실행하면, 이는 L1에서 수락됩니다.
1. 애그리게이터는 트랜잭션 데이터를 L1에 게시하여, 트랜잭션이 잘못 실행되었을 경우 누구나 이의를 제기할 수 있도록 합니다.

Bob과 Alice는 롤업에서 자금을 인출하거나 계속 거래하기로 결정할 수 있습니다.

어느 쪽이든, 이들은 L1에서 트랜잭션을 실행하지 않고도 EVM의 이점을 누리게 됩니다.

OVM과 EVM 간의 다른 차이점은 다음과 같습니다:

- 유효성 강제
- 즉각적인 파이널리티
- 트랜잭션 속도

### **유효성 강제**

OVM은 상태 전이 함수의 유효성을 강제하지 않습니다. 예를 들어, 악의적인 오퍼레이터가 Alice의 잔액을 자신에게 이전하고 이 트랜잭션을 L1에 제출할 수 있습니다. 이의가 제기되지 않으면 OVM은 이를 그대로 수락합니다.

반대로, EVM에서는 모든 상태 전이가 수락되기 전에 네트워크의 합의 규칙을 따라야 합니다.

예를 들어, 위에서 설명한 시나리오는 이러한 규칙을 따르지 않게 되는데, 발신자의 서명 키가 자신의 공개 키와 일치하지 않기 때문입니다\(이는 유효한 트랜잭션의 조건 중 하나입니다\).

### 즉각적인 파이널리티

EVM은 즉각적인 파이널리티를 보장합니다. 즉, 상태 전이가 네트워크에서 수락되면 영구적이며 변경하거나 되돌릴 수 없습니다.

OVM은 트랜잭션 유효성을 강제하지 않기 때문에\(유효하지 않은 트랜잭션을 확정하면 체인이 손상됩니다\) 즉각적인 파이널리티를 보장할 수 없습니다.

대신, OVM 상태의 갱신은 L1 체인에서 수락된 경우에만, 그리고 그 경우에만 확정된 것으로 간주됩니다.

### 트랜잭션 속도

앞서 설명했듯이, 설계상의 차이로 인해 OVM은 EVM보다 높은 처리 용량을 갖습니다. 단일 노드\(시퀀서\)가 다른 노드의 승인을 기다리지 않고 체인에 쓸 수 있습니다.

이는 트랜잭션이 다른 피어 투 피어 노드에 의해 검증되고 수락되지 않으면 노드가 체인에 쓸 수 없는 EVM과는 다릅니다. 이로 인해 EVM에서 처리할 수 있는 트랜잭션 수가 줄어듭니다.

## OVM은 zkEVM과 어떻게 다른가?

앞서 설명했듯이, OVM은 주로 실행에 초점을 맞추며 상태 갱신에 대한 규칙 강제는 레이어 1 EVM에 의존합니다. 따라서 OVM에서 수행된 트랜잭션은 유효성에 대한 어떠한 증명 없이 그대로 L1에 제출됩니다. 이는 확장성을 높이지만, 특히 아무도 이의를 제기하지 않을 경우 유효하지 않은 트랜잭션이 L1에서 확정될 위험을 높입니다.

[zkEVM\(Zero-Knowledge Ethereum Virtual Machine\)](https://www.alchemy.com/overviews/zkevm)은 오프체인 연산의 정확성을 입증하는 암호학적 증명을 생성함으로써 이 문제를 해결합니다. 이는 상태 갱신의 유효성에 대해 L1에 강력한 보장을 제공합니다.

zkEVM은 OVM과 마찬가지로 EVM과 호환되며 스마트 컨트랙트를 실행할 수 있습니다. 그러나 다음과 같은 점에서 OVM과 다릅니다:

1. 거의 즉각적인 파이널리티
1. 객관적 증명
1. 복잡성

이 부분을 좀 더 자세히 살펴보겠습니다.

### **1. 거의 즉각적인 파이널리티**

유효성 증명이 온체인에서 검증되므로 상태 전이가 즉시 확정됩니다. 이로써 L1에서 L2 트랜잭션을 확정하는 데 지연이 필요하지 않게 됩니다.

### **2. 객관적 증명**

​[영지식 증명](https://www.alchemy.com/overviews/snarks-vs-starks)은 VM 연산의 정확성을 보장하는 데 사용됩니다. 이를 통해 트랜잭션 유효성을 판단하기 위한 주관적 증명\(즉, 이의 제기 기간이 끝나기를 기다리는 것\)이나 사기 증명이 필요 없어집니다.

### **3. 복잡성**​

zkEVM은 여러 단계의 연산에 대한 유효성 증명을 생성하는 데 비용이 많이 들기 때문에 OVM보다 구현하기가 더 어렵습니다. OVM은 오프체인 연산을 사전에 검증해야 할 필요가 없으며, 필요할 때만 사기 증명을 사용합니다. 이 때문에 OVM은 zkEVM보다 구현이 더 쉽습니다.

<ImageBlock
  src="https://media.alchemy.com/1704293216-zkevm-validity-proofs.png"
  alt="zkEVM은 프로그램 실행의 정확성을 검증하기 위해 validity proof를 생성합니다."
  width={902}
  height={517}
  caption="zkEVM은 프로그램 실행의 정확성을 검증하기 위해 validity proof를 생성합니다."
/>

## 낙관적 가상 머신은 어떻게 동작하는가?

EVM과 마찬가지로, 낙관적 가상 머신은 연산을 실행하기 위한 런타임 환경으로 기능합니다. 그러나 옵티미스틱 롤업은 유효하지 않은 상태 전이를 감지하기 위해 사기 증명에 의존하므로, OVM은 연산 증명 또한 고려해야 합니다.

### 실행

OVM은 컨트랙트를 배포하고 실행하며, 잔액을 모니터링하는 등 스마트 컨트랙트 플랫폼이 수행해야 하는 여러 작업에 대한 기능을 제공합니다. OVM은 L2 체인의 노드가 보낸 트랜잭션 형태로 입력을 받습니다. 이러한 입력은 OVM이 상태를 변경하고 이벤트 발생이나 결제 처리와 같은 출력을 생성하게 만듭니다.

OVM의 실행에 관한 다른 세부 사항으로는 가스, 바이트코드, 트랜잭션이 있습니다.

#### 가스

"가스"란 EVM에서 프로그램을 실행하기 위한 연산 자원을 의미합니다. EVM과 마찬가지로 OVM도 각 트랜잭션의 실행 단계를 제한하기 위해 가스라는 개념을 사용합니다.

트랜잭션 발신자는 트랜잭션에 지출할 의사가 있는 가스량을 명시하기 위해 가스 한도를 설정해야 합니다. 이는 악의적인 트랜잭션이 무한히 실행되어 네트워크 자원을 모두 소모하는 것을 방지합니다. 가스 수수료는 또한 트랜잭션 실행을 위한 연산 자원을 제공하는 L2 노드에 보상을 제공합니다.

#### 바이트코드

바이트코드는 낙관적 가상 머신\(OVM\)이 함수를 실행하기 위해 해석할 수 있는 저수준 명령어를 의미합니다. [Solidity](https://www.alchemy.com/overviews/solidity)와 같은 고수준 EVM 호환 언어로 작성된 스마트 컨트랙트는 배포 전에 [바이트코드로 컴파일](https://www.alchemy.com/overviews/solidity-binaries)되어야 합니다. 바이트코드 자체는 트랜잭션 입력에 대해 연산을 수행하는 일련의 opcode로 실행됩니다.

OVM은 몇 가지 차이점을 제외하면 바이트코드 수준에서 EVM과 호환됩니다. 즉, 컴파일된 EVM 바이트코드를 최소한의 변경만으로 OVM에 배포할 수 있습니다.

#### 트랜잭션

OVM에서의 트랜잭션은 EVM에서와 비슷하게 작동합니다. 트랜잭션은 외부 소유 계정\(EOA\) 또는 컨트랙트 계정에 의해 시작될 수 있습니다. EOA에서 시작된 트랜잭션은 다음 중 하나일 수 있습니다:

- 자산 이전\(예: Alice가 Bob에게 5 ETH를 보냄\)
- 컨트랙트 생성\(예: Bob이 컴파일된 바이트코드를 데이터 페이로드로 하여 네트워크에 트랜잭션을 보냄\)
- 스마트 컨트랙트 실행\(예: Alice가 5 UNI 토큰에 대해 대금을 지불함\)

마찬가지로 컨트랙트 계정도 EOA나 다른 컨트랙트를 수신자로 하는 트랜잭션\("메시지 호출"이라고 함\)을 시작할 수 있습니다. 컨트랙트는 컨트랙트 생성 트랜잭션을 사용하여 OVM에서 새로운 컨트랙트를 생성할 수도 있습니다.

### **사기 증명**

앞서 언급했듯이, OVM은 유효하지 않은 상태 전이를 감지하고 되돌리기 위해 사기 증명 체계에 의존합니다. 사기 증명이 작동하려면 OVM의 상태가 [머클 트리](https://www.alchemy.com/docs/web3-glossary)로 해시화되어야 하며, 루트는 레이어 1의 롤업 컨트랙트에 저장됩니다. 머클 트리와 루트를 사용하면 노드가 OVM 상태의 여러 부분에 대해 주장을 할 수 있습니다.

예를 들어, 트랜잭션을 실행하여 상태 전이를 시작한 롤업 오퍼레이터는 롤업 블록을 제출할 때 새로운 상태 루트를 게시해야 합니다. 상태 루트는 다음과 같은 의미를 갖습니다: "이 일련의 트랜잭션들이 실행되면 VM이 이전 상태\(이전 상태 루트로 참조됨\)에서 새로운 상태\(새로운 상태 루트로 참조됨\)로 전이된다."

그러나 롤업 컨트랙트는 상태 전이가 유효한지 여부를 알 수 없습니다\(시스템이 "낙관적"이기 때문입니다\). 노드가 OVM에서 유효하지 않은 상태 갱신을 실행하는 것을 막기 위해 롤업은 사기 증명을 사용합니다.

#### 사기 증명이란 무엇인가?

사기 증명이란 어떤 트랜잭션이 올바르게 실행되었을 경우, 블록 생산자가 계산한 것과 다른 상태 루트로 이어진다는 주장입니다. 이는 L2 체인을 모니터링하는 누구든 롤업 오퍼레이터에게 제출된 트랜잭션을 다운로드하여 자신이 가진 롤업 상태의 사본을 사용해 재실행하고, 독립적으로 상태 루트를 계산할 수 있기 때문에 가능합니다.

Alice의 잔액이 OVM의 이전 상태\(루트 해시 "0x67989898…"로 암호학적으로 지문화됨\)에서 5 ETH였다고 가정합니다. 그녀가 4 ETH를 전송하면, 롤업은 새로운 상태\(루트 해시 "0x7879056…"로 암호학적으로 지문화됨\)로 진입합니다.

만약 트랜잭션이 유효하지 않다면\(예: 서명이 잘못된 경우\), 이는 되돌려져야 하며, VM의 상태는 변경되지 않은 채로 남아야 합니다.

그러나 악의적인 오퍼레이터가 유효하지 않은 갱신을 적용했다고\(아마도 Alice의 ETH를 자신의 지갑으로 이전했다고\) 가정해 봅시다. 그들은 트랜잭션을 확정하기 위해 부정확하지만 새로운 상태 루트를 게시할 수 있습니다.

따라서 올바른 상태 루트를 게시하고 해당 롤업 블록이 유효하지 않다고 선언하는 것이 이의 제기자의 역할입니다. 이는 다음과 같은 의미를 갖습니다: "이 트랜잭션이 _올바르게_ 실행되었다면, 다른 상태 루트로 이어진다."

#### OVM 기반 롤업에서 사기를 증명하는 두 가지 방법은 무엇인가?

OVM 기반 롤업에서 사기를 증명하는 방법에는 일반적으로 두 가지 접근 방식이 있습니다: 트랜잭션 재실행과 이분법 프로토콜입니다.

##### **1. 트랜잭션 재실행**

여기서 OVM은 L1 체인에서 실행되는 스마트 컨트랙트 안에 "컨테이너화"됩니다. 이 스마트 컨트랙트는 EVM 내에서 OVM 트랜잭션을 재현하여 올바른 상태 루트를 얻을 수 있는 샌드박스 환경 역할을 합니다. 이는 상태 및 저장소와 같은 다른 컨텍스트 관련 입력과 이의가 제기된 트랜잭션을 함께 제공함으로써 이루어집니다.

앞서 설명한 악의적인 오퍼레이터의 예에서, 트랜잭션은 되돌려져 상태 루트가 그대로 유지될 것입니다. 계산된 상태 루트는 결국 이의 제기자의 상태 루트와 일치하게 되어 악의적인 오퍼레이터를 드러내고 유효하지 않은 상태 전이를 막습니다.

<ImageBlock
  src="https://media.alchemy.com/1704208508-optimistic-rollup-fraud-proof.png"
  alt="OVM이 트랜잭션을 재실행하여 fraud를 증명하는 방식을 보여주는 다이어그램입니다."
  width={1600}
  height={625}
  caption="Source: https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/#disputing-transactions"
/>

##### 2. 이분법 프로토콜

이분법 프로토콜은 사기 증명 과정에서 L1 체인이 수행해야 하는 작업을 최소화하려는 다른 접근 방식입니다. 이 프로토콜은 그 독특한 설계 방식 때문에 이분법 프로토콜이라고 불립니다:

1. 이 과정은 이의 제기자가 주장\(assertion\)에 이의를 제기하는 것으로 시작됩니다\(롤업 블록은 이의 제기가 가능하므로 "주장"이라고 불립니다\).
1. 그러면 주장자는 이의가 제기된 주장을 두 개의 _동일한_ 주장으로 나누고, 이의 제기자가 어느 부분에 이의를 제기할지 선택하게 합니다.
1. 이의 제기자가 이의를 제기할 다른 주장을 선택하면, 주장자는 다시 주장을 나눕니다.
1. 이 과정은 양측이 OVM에서 수행된 한 단계의 연산 결과에 대해 이의를 제기할 때까지 계속됩니다.
1. 그런 다음 주장자는 이의가 제기된 실행 단계가 올바르다는 것을 보여주는 단일 단계 증명을 제공해야 합니다.
1. 주장자가 증명을 제출하지 못하거나 L1 컨트랙트가 그 증명을 유효하지 않다고 판단하면, 그들은 이의 제기 절차에서 패배합니다.

트랜잭션 재실행과 달리, 이분법은 비용이 많이 드는 전체 블록/트랜잭션을 온체인에서 재실행할 필요를 없앱니다. 또한 트랜잭션 재실행 방식으로 사기를 증명할 때 필요한, 모든 트랜잭션에 대해 상태 루트를 게시해야 하는 필요성도 없앱니다.

이분법 프로토콜은 Arbitrum에서 사용되고 있으며, Optimism 등 다른 옵티미스틱 롤업들도 사기 증명을 위해 [이분법 프로토콜](https://github.com/ethereum-optimism/optimistic-specs/wiki/Cannon-High-Level-Overview)을 사용할 계획입니다.

<ImageBlock
  src="https://media.alchemy.com/1704293295-bisection-protocol.png"
  alt="OVM이 bisection을 사용하여 fraud를 증명하는 방식을 보여주는 다이어그램입니다."
  width={492}
  height={590}
  caption="OVM이 bisection을 사용하여 fraud를 증명하는 방식을 보여주는 다이어그램입니다."
/>

## 마치며

낙관적 가상 머신은 연산을 롤업으로 오프체인화함으로써 Ethereum을 확장하는 데 핵심적인 역할을 합니다. OVM을 사용하면 개발자는 Ethereum을 괴롭히는 높은 가스 수수료와 느린 처리 시간을 겪지 않고도 L2 체인에 스마트 컨트랙트를 배포할 수 있습니다. 또한 사기 증명 덕분에 OVM은 Ethereum 메인 네트워크의 EVM과 동일한 보안 보장을 제공할 수 있습니다.

Alchemy는 [Optimism](https://www.alchemy.com/layer2/optimism?a=46008e9089)과 [Arbitrum](https://www.alchemy.com/layer2/arbitrum?a=46008e9089)을 비롯하여 낙관적 가상 머신을 활용하는 옵티미스틱 롤업 위에서의 개발을 지원합니다.

지금 바로 [무료 Alchemy 계정](https://www.alchemy.com/?a=46008e9089)에 가입하여 초고속, 확장 가능하며 EVM과 호환되는 앱을 만들어 보세요.
