블록체인 VM과 zkVM은 다양하게 많이 발전하고 있으며 새로운 시도들 또한 등장하고 있다.
WasmVM, MoveVM, 그리고 Solana Virtual Machines (SVM)와 같은 여러 VM들이 블록체인 환경에 적용되고 있으며, 각각의 특징과 사용 사례에 대해 살펴본다.
블록체인에서는 개인 정보 보호와 보안 그리고 확장성을 향상시키는 zkVM(zero-knowledge Virtual Machines)인 zkWASM과 zkEVM, zkISA …이 활발하게 개발되고 있다.
마지막으로, Wasm VM은 많은 잠재력을 갖고 있으며 앞으로 각 어플리케이션에 적합한 VM 사용 사례의 증가, 그리고 zk 마켓 플레이스의 발전이 예상된다.
가상머신(VM)은 블록체인의 애플리케이션 수준 로직을 정의한다. 여기서 어플리케이션 로직이란 블록체인의 상태, 상태 전환 기능(State Transition Function), 트랜잭션, 사용자가 블록체인과 상호작용할 수 있는 API를 의미한다.
지금까지 EVM이라는 가상 머신이 블록체인 분야에서 가장 널리 채택되었으며 EVM위에서 Solidity 언어를 기반으로 큰 생태계가 형성되었다. 현재 대부분의 개발 툴들은 EVM용으로 제작되었다. 그러나 다른 가상 머신에는 병렬 처리, 다른 주류 언어 지원, 내장된 보안 기능 등 EVM에 없는 기능이 있다.
EVM의 한계를 극복하기 위해 현재 다양한 가상 머신이 개발되어 왔고 개발되고 있다. 여러 프로젝트들이 EVM의 패권을 노리고 있으며 이러한 현황을 이해하기 위해 본 글에서 아래와 같은 부분에 대해 서술되었다:
블록체인 내 VM의 프로젝트들 현황
블록체인 VM에 영지식(zero-knowledge)를 도입한 zkVM 프로젝트들 현황
블록체인은 블록 B1, B2, B3, ..., Bn으로 구성된 상태 머신으로 볼 수 있다. 새로운 블록을 생성하기 위해 상태 전환 함수가 트랜잭션 목록 Ti와 함께 블록 높이 Bi에서 상태 Si에 적용된다. 이 과정을 통해 새로운 상태 Si+1이 생성된다.
이러한 종류의 상태 전환 함수와 더불어 스토리지 및 여기에 특화된 실행 환경을 제공하는 것을 블록체인 가상 환경이라 칭한다. 이러한 블록체인 VM은 대부분 트랜잭션을 기반으로 상태값을 변환시키고 이에 대한 블록을 생성하는데 특화되어 있다. 이를 통해 과거 기록의 변조가 불가능한 형태를 갖는다.
영지식 가상 머신인 zkVM은 민감한 입력 정보를 노출하지 않고 프로그램의 실행을 검증가능하게 한다.
따라서 블록체인에서 향상된 개인 정보 보호와 보안을 제공하면서 zkVM은 확장성, 상호 운용성을 제공한다. 이러한 zkVM의 경우 zkVM마다 방식이 다르지만 실행의 execution trace가 zk 서킷을 통해 zk 증명을 생성하는 과정을 거친다. 따라서 이에 따라 각각의 VM의 op-code에 대한 맞춤 제작이 필요하다는 단점이 있고 많은 연구와 개발이 필요하다. 하지만 근 1년 동안의 발전 과정을 봤을때 엄청난 발전을 보여왔다.
더 자세한 설명은 Taiko의 Lisa가 작성한 이 글을 참조바란다.
*또한 이 글에서 zkVM을 다루면서 fraud proof, optimistic rollup의 VM에 대해 별도로 다루지 않는 이유는 대부분의 optimistic rollup의 VM은 대부분 기존 VM에서 변화된 것이 거의 없는 상태로 사용되기 때문에 다루지 않았다.
프로젝트 목록: Cosmwasm, Avalanche Wasm, Arbitrum Stylus, Astar Wasm, FVM …
웹어셈블리(WASM)는 현재 블록체인에서 스마트 컨트랙트를 실행하는데 사용되고 있다. 빠르고 안전하며 포터블(portable) 하게 설계된 로우레벨 바이트코드 형식이다. 현 블록체인 중에서 여러 WASM 가상 머신이 사용되고 있다.
Cosmwasm은 코스모스 SDK를 위해 설계된 스마트 컨트랙트 엔진이다. Rust로 작성된 스마트 컨트랙트를 실행하기 위해 WASM VM을 사용한다. CosmWasm은 빠르고 안전하며 효율적인 것을 목표로 한다. 현재는 Rust만 공식 지원하지만 추후에는 추가적으로 다른 언어도 지원될 가능성이 높다.
크로스 가상 머신(XVM): 아스타 재단은 크로스 체인이라는 아스타 비전을 달성하기 위해 크로스 가상 머신(XVM)을 만들었다. XVM을 사용하면 type safety 와 proper error handling를 지원하는 Rust, Go, C++ 등 WASM을 대상으로 할 수 있는 언어로 작성된 스마트 컨트랙트를 실행할 수 있다. XVM을 사용하면 프로젝트는 간단한 비동기 함수를 통해 다른 블록체인에 액세스하고 사용할 수 있다.
Arbitrum Stylus는 Arbitrum 블록체인에 도입된 새로운 기능이다. 이는 WASM VM과 호환되는 컴퓨터 언어를 사용하여 스마트 컨트랙트 개발을 간소화한다. Arbitrum 스타일러스는 빠르고, 안전하며, 효율적인 것에 중점을 둔다. 여러 프로그래밍 언어를 지원하며, 두 개의 가상 머신을 통해 비용을 크게 절감할 수 있는 잠재력을 가지고 있다. 아비트럼 스타일러스는 이더리움 레이어 2에서 스마트 콘트랙트 개발을 향상시키기 위해 오프체인 랩스가 구현하였다.
이러한 WASM 가상머신은 블록체인 생태계에서 스마트 컨트랙트를 실행하기 위한 강력하고 안전한 환경을 제공한다. 또한 이는 비교적 새로운 트렌드이다.
프로젝트 목록: 이더리움, 폴리곤, OP-메인넷, BNB 체인 ...
이더리움 가상머신(EVM)은 블록체인 생태계, 특히 이더리움 네트워크에서 필수적인 요소이다. EVM은 블록체인에서 가장 많이 사용되는 프로그래밍 언어인 솔리디티(Solidity)로 작성된 스마트 컨트랙트를 실행하는 가상 머신이다.
EVM의 탈중앙화 애플리케이션(dApp)과 탈중앙화 금융(DeFi) 프로토콜을 생성하는 데 중추적인 역할을 했기 때문에 많이 사용되고 있다. EVM은 스마트 컨트랙트 기반 디앱의 표준이 되었으며, 다른 많은 블록체인 플랫폼에서도 이를 채택했다. 또한, EVM은 블록체인에서 구매, 판매, 거래할 수 있는 고유한 디지털 자산인 대체 불가능한 토큰(NFT)의 생성도 가능하게 했다.
전반적으로 EVM은 스마트 컨트랙트 블록체인을 최초로 사용했기 때문에 블록체인 산업의 성장과 발전에 중요한 역할을 해왔다. 그 인기는 다른 사용 사례 중에서도 디앱, 탈중앙 금융 프로토콜, NFT를 생성할 수 있는 능력에 기인할 수 있다.
Source: Languages - DefiLlama
프로젝트 목록: 수이, 앱토스, 무브먼트 랩스
MoveVM은 앱토스, 수이, 무브먼트 랩스에서 사용하는 가상 머신이다. 안전하게 설계되었으며 스마트 컨트랙트와 블록체인을 위한 맞춤형 트랜잭션을 구성하도록 설계된 프로그래밍 언어이다. MoveVM은 입력을 처리하여 처리되어 결과된 결과를 출력으로 생성한다.
다른 블록체인 프로그래밍 언어에 비해 무브는 토큰과 스마트 컨트랙트와 같은 중요한 정보를 리소스로 저장하기 때문에 보안이 상당히 향상되었다. 무브는 계정, 트랜잭션 수수료, 표준 라이브러리, 검증자 노드 관리, 구성 등 앱토스와 수이의 모든 핵심 요소를 구현하는 데 사용된다. MoveVM은 또한 어댑터 레이어를 통해 핵심 기능을 확장할 수 있다.
MoveVM이 갖는 장점은 안전하게 설계된 점과 병렬처리를 실행할 수 있다는 점에 있다. 따라서 필자는 금융에 관련된 적합한 VM이며 금융권 기업이 블록체인 프로젝트를 시작한다면 고려해볼만한 VM이라 생각한다.
프로젝트 목록: 솔라나, 이클립스, 니트로
솔라나 가상 머신(SVM)은 솔라나 플랫폼에서 트랜잭션을 처리하고 스마트 컨트랙트를 실행하기 위한 VM이다. 트랜잭션 실행을 위해 가상 머신은 스마트 컨트랙트의 코드를 검증자의 컴퓨터 시스템에서 해석할 수 있는 구조로 변환한다. 또한 각 검증자 노드는 SVM의 개별 인스턴스를 운영하여 블록체인 전체에서 균일한 합의를 보장한다. 모든 검증자 설정의 SVM 인스턴스는 배포된 스마트 컨트랙트가 전달한 상태 수정을 확인 후 해석하여 그에 따라 블록체인을 업데이트한다. 그리고 SVM은 런타임 중에 데이터 액세스 패턴을 지정하여 여러 스마트 컨트랙트를 효율적으로 병렬 처리할 수 있는 처리 엔진인 Sealevel에 의해 구동된다.
이더리움 가상 머신(EVM)과 달리 솔라나의 SVM은 향상된 효율성과 Sealevel이 지원���는 병렬 처리 기능 등 뚜렷한 이점을 제공한다. 이를 통해 SVM은 다수의 트랜잭션을 동시에 처리할 수 있어 솔라나 네트워크의 전반적인 처리량을 개선할 수 있다.
영지식 증명(ZKP)은 상당한 이점을 제공하기 때문에 블록체인에서 중요하다. 영지식 증명은 계산 증명을 제공하여 VM을 블록체인 네이티브화하고 다른 네트워크와 상호 운용할 수 있도록 한다. 또한 ZKP는 추가 세부 정보를 공개하지 않고도 당사자 간에 정보를 안전하게 전송할 수 있도록 하여 개인정보 보호를 강화한다. 또한 데이터 공유를 최소화하여 확장성에 기여하고, 검증 가능한 결과를 유지하면서 다른 주체에 계산을 아웃소싱하여 검증 가능한 계산을 촉진하며, 영지식 롤업 및 유효성 검증과 같은 오프체인 확장 솔루션을 가능하게 한다.
zkVM 환경에는 흥미로운 프로젝트들이 많이 구축되고 있다.
프로젝트 목록: 플루언트, 델피누스 랩스
zkWASM은 웹어셈블리 실행하며 이에 대한 ZK 증명을 생성하는 가상 머신이다. WASM의 도입은 더 많은 전통적인 프로그래머들을 블록체인 세계로 끌어들여 WASM 컨트랙트와 기존 애플리케이션 및 라이브러리 간의 상호 작용 프레임워크에 대한 수요를 창출할 것이다. 많은 최신 애플리케이션이 Wasm 가상 머신을 기반으로 구축되기 때문에 사용 사례가 많을 수 있다. 다음은 zkWASM을 개발하고 있는 몇 가지 프로젝트이다.
Fluent: 이더리움을 위한 범용 zkWASM 실행 레이어이다. 이를 통해 개발자는 선호하는 프로그래밍 언어로 처리량이 많은 애플리케이션을 구축할 수 있다. Fluent는 Rust, C, C++로 구현된 프로그램이 Wasm으로 컴파일된 이후에 영지식 증명(ZKP)을 생성하는 소프트웨어로 zk-WASM을 구축하고 있다.
Delphinus Labs: 논문에서 시작된 zkWASM 프로젝트이다. SNARK로 zkWASM을 구축하고 있다.
zkWASM 프로젝트: 최근 클라스 람다 팀은 소규모 내부 팀을 꾸려 카이로(스타크넷)에서 o1js(미나프로토콜)로 zkWASM을 개발하기 시작했다고 언급했다.
프로젝트 목록: zkSync, 폴리곤 zkEVM, 리네아, 타이코, 스크롤 ...
zkEVM은 영지식 증명 연산을 지원하는 이더리움 가상 머신(EVM)과 호환되는 가상 머신이다. 영지식 기술을 활용하면서 스마트 컨트랙트를 실행하도록 설계되었다. zkEVM은 연산과 상태 저장소를 오프체인으로 오프로드하여 처리량을 개선하는 이더리움의 레이어 2 확장 솔루션인 영지식(ZK) 롤업으로 주로 사용되며. 지난 한 해 동안 많은 프로젝트가 메인넷을 출시하면서 상당한 진전이 이루어졌다. (예시: zkSync Era, Polygon zkEVM, Linea 등)
Source: The different types of ZK-EVMs
일반화된 모든 프로그램에 대해 zkVM을 구축하려는 노력이 있었고, 이로 인해 저수준 CPU 명령어 집합인 RISC-V의 명령어에 기반한 프로젝트가 개발되었다. 이 영역에서 잘 알려진 프로젝트 중 하나는 Risc Zero이다.
2022년 4월에 처음 출시된 RISC Zero의 zkVM은 임의 코드의 올바른 실행을 증명할 수 있는 기능을 제공하다. 이를 통해 개발자는 Rust 및 C++와 같은 많이 사용되는 언어를 사용하여 영지식(ZK) 애플리케이션을 구축할 수 있다. 이러한 시도는 ZK 애플리케이션을 구축할 때 회로를 구축하거나 한정된 언어로 작성할 필요가 없어졌기 때문에 ZK 소프트웨어 개발에서 중요한 발전이다.
카이로: 카이로VM은 Starkware가 Starknet 플랫폼에 사용하기 위해 개발한 가상 머신으로, zk 롤업으로 활용되며 zk 증명 생성에 있어 최적화되어 설계되었다. 여기에는 STARK 시스템 제작에 최적화된 카이로라는 프로그래밍 언어가 사용된다.
zkMove: zkMove VM은 런타임 동안 type-safety를 보장하고 트랜잭션 수준에서 동시 증명을 가능하게 하여 더 빠른 처리를 가능하게 하는 zkVM이다. 또한 클라이언트 측 증명을 제공하여 사용자 개인 정보를 원활하게 보호하다. 하지만 이 프로젝트는 아직 굉장히 초기 단계에 있다.
zkLLVM: zkLLVM은 =nil; 재단에서 개발한 프로젝트이다. 영지식 회로를 구성하는 개발자를 위한 컴파일러 역할을 하다. 이 프로젝트는 기존 및 새로운 영지식(zk) 사용 사례 모두에 대한 회로 정의를 간소화하는 것을 목표로 한다.
Wasm 기반 VM은 많은 잠재력을 가지고 있다: WASM은 현재 웹2에서 성능, 주요 기업의 활용 현황, 브라우저를 넘어선 확장성으로 인해 그 중요성과 채택이 증가하고 있다. 빠른 실행 시간, 여러 프로그래밍 언어와의 호환성, 잠재적인 게임, 전자상거래, 미디어 스트리밍, 서버측 컴퓨팅 애플리케이션을 제공하기에 이를 블록체인에서 사용할 수 있다면 소프트웨어를 새로운 언어로 작성할 필요 없이 웹2.0 소프트웨어를 블록체인에 온보딩할 수 있도록 지원할 수 있다.
앱은 자신에게 적합한 가상 머신을 찾을 것이다: Movement Labs의 MoveVM과 Eclipse의 SVM과 유사하게, 기술 측면에서도 다양한 실험이 진행되고 있다. 블록체인의 사용 사례가 계속 증가함에 따라, 각 가상머신은 특정 기능에 따라 다른 가상머신에 비해 고유한 장점을 갖게 될 것이다. 예를 들어 MoveVM은 병렬 실행을 제공하며 가장 안전한 머신으로 설계되어 금융 애플리케이션에 적합한 선택이 될 것이다.
zk 마켓플레이스가 개발될 것이다: 현재 여러 프로젝트가 zkVM을 중심으로 구축되고 있으며, 이러한 추세는 더욱 늘어날 것으로 보이다. 개별 엔티티가 zk 증명자를 돌리는 대신, zk 증명을 계산하고 생성하는 마켓플레이스가 필요하게 될 것이다. 따라서 =;nil이나 Gevulot와 같은 zk 마켓플레이스가 주목받을 것이라고 생각한다.
이 글의 비주얼을 제공해주신 Kate에게 감사의 말씀을 전합니다.