
전체 체인 게임의 새로운 장: ZKWASM으로 증명 가능한 게임 개발
저자: Blade Research
핵심 저자: wangyao, 0xbrawler
목차
- 왜 증명 가능한 게임(Provable Game)을 개발해야 하는가?
- Blade Games의 기술 아키텍처
- 1) zkwasm 기반 간단한 타워 디펜스 게임 개발
- 2) Zinity: Unity에서 직접 증명 가능한 게임을 개발할 수 있는 업계 최초 솔루션
- 아케이드 게임(arcade game)과 ERC-6551 활용
- ETHdenver에서 선보일 게임
- 향후 로드맵 및 연구 주제
본 문서 작성에 기여해 주신 Sinka, Wangyao, Will Robinson, Mohamed Fouda, LoneSCV, 0xAiko, Simon Chan, Maggie Wu, James Fang, Zee 님께 감사드립니다.
요약:
- ZK 코프로세서 방식은 검증 가능한 게임에 필요한 신뢰 가정과 몰입감 있는 게임 경험 개발에 필요한 컴퓨팅 성능을 제공한다.
- 숙련된 게임 개발자들에게는 Solidity/Cairo 핵심 로직과 Unity 내 애니메이션/렌더링을 동기화하는 대신, Unity/Unreal 네이티브 솔루션이 매우 중요하다.
- 체인상 게임과 증명 가능 게임의 미래 개발자 경험은 고도로 모듈화되고 플러그 앤 플레이 방식이 될 것이다. (어느 정도까지 체인에 올려야 '체인상'이라 할 것인가? 개발자와 사용자가 결정해야 한다고 생각한다.)
- 앞으로는 신뢰 가정, 증명 비용, 개발 비용 사이의 타협점을 유연하게 조정함으로써 개발 비용을 관리 가능한 수준으로 유지하는 증명 가능 게임 개발이 가능할 것이다.
왜 증명 가능한 게임을 개발하는가?
2023년은 체인상 게임(FOCG)/자율 세계(AW)가 급성장한 해로, MUD.dev, Dojo, World Engine, Keystone, Paima 등 다양한 인프라가 등장했다. 또한 Altlayer, Caldera, Conduit 등의 롤업 서비스 제공업체들이 다수의 풀체인 게임 개발자들을 유치하며 활발한 생태계를 형성했다.
그러나 우리 팀은 자체 개발한 첫 번째 체인상 배틀로얄 게임 Loot Royale을 운영하면서 하루 600~800명의 활성 사용자를 확보하기도 했지만, 중요한 문제점 하나를 발견했다.
게임 로직을 전부 체인 위에 올릴 경우, EVM 자체의 제한된 계산 능력이 게임 개발의 가장 큰 병목이 된다.
계산 능력 부족은 게임 장르(낮은 연산량, 싱글 스레드, 비동기 중심의 게임만 가능)와 사용자 경험(트랜잭션 처리 대기, RPC hydration 등) 모두를 제약한다.
실제로 "내 공격 명령이 제때 처리됐다면 맞췄을 텐데", "RPC 데이터 언제 로딩 끝나나요?" 등의 피드백을 많이 받았다. 이는 반드시 해결되어야 할 문제다.

플레이어들이 RPC hydration을 기다리는 모습
다양한 기술 스택을 실험한 결과, 우리는 체인 외부에서 계산을 수행하되 그 결과를 증명한다면, 그 신뢰성은 거의 전적으로 체인상에서 실행되는 것과 동등할 수 있다고 판단했다. 이를 위해 ‘체인 외부에서 실행하고, 체인상에서 검증하는’ 접근 방식을 채택하여 EVM의 계산 한계를 극복하고자 한다. 이 방식에는 다음과 같은 장점이 있다.
- 사용자 경험 개선 및 대기 시간 단축
- 타워 디펜스처럼 더 많은 계산이 필요한 '미드코어(mid-core)' 게임 장르로의 확장 가능
- 게임 내 숨겨진 정보(hidden information) 활용 가능
우선 zkWASM을 이용한 증명 가능 게임 개발 방법을 간략히 소개하고, 이후 Unity 기반의 zkwasm 솔루션에 대해 설명하겠다. 이는 업계 최초로 Unity에서 직접 증명 가능한 게임을 개발할 수 있게 해주는 솔루션이다.
Blade Games의 기술 아키텍처
zkwasm 기반 간단한 타워 디펜스 게임 개발
기술 아키텍처는 두 부분으로 나뉜다. 첫 번째는 Rust로 간단한 PvE 및 PvP 타워 디펜스 게임을 작성하고, zkwasm을 통해 검증하는 방식이다.
두 번째는 로드맵으로, C# 코드를 wasm으로 컴파일하는 컴파일러를 개발하고 기존 zkwasm 아키텍처를 적절히 수정하여 더욱 모듈화되고 유연한 증명 가능 게임 개발 프레임워크를 구현하는 것이다. (zkwasm은 Delphinus Labs가 개발한, wasm 코드를 실행하고 그 실행 궤적에 대한 zkSNARK 증명을 생성하는 zkVM이다.)
PvE 예시부터 살펴보자. 우리는 Rust와 Bevy Engine을 사용하여 게임을 개발한다.
Rust는 wasm으로 쉽게 컴파일되며, zkwasm VM이 처리하기 전에 wasm 이미지를 생성한다. 이후 해당 실행 궤적을 데이터 가용성 계층(DA Layer)에 게시하고 나중에 증명할 수 있다. 또는 사용자는 즉시 증명을 생성하고 zkSNARK 증명을 체인에 전송할 수도 있다. (RTX4090 GPU 한 대로 약 45초 만에 백만 줄 규모의 증명을 처리 가능하며, 이는 비교적 느린 페이스의 타워 디펜스 게임에 충분하다.)
게임은 다음 단계로 나뉜다.
- 플레이어가 맵 설정을 확인하고 관련 정보를 체인에 커밋
- Rust 코드에서 게임 로직이 한 라운드 진행됨. zkwasm이 해당 실행 궤적을 증명하고, 플레이어가 zk 증명을 체인에 제출
- 새로운 몬스터 웨이브 등장. 플레이어는 이전 타워 설정을 유지하거나 새로운 커밋을 다시 제출 가능
- 각 라운드 중간에 타워 설정 변경 불가. 만약 맵 설정을 변경하면 새 커밋을 다시 제출 가능

(플레이어가 맵 설정을 확인하고 zkwasm 출력을 체인에 제출)

(Rust 코드에서 게임 로직이 한 라운드 진행됨. 해당 실행 궤적은 zkwasm으로 증명 가능하며, 플레이어가 zk 증명을 체인에 제출)
Zinity: Unity에서 직접 증명 가능한 게임을 개발할 수 있는 최초의 솔루션
많은 게임 개발자들에게 체인상 게임 개발은 Solidity, Rust, Cairo 등을 새로 배워야 하고, 익숙한 C# 사용을 포기해야 한다는 의미다. 또한 Mud/Dojo 기반의 Solidity/Cairo 게임 로직 코드와 Unity 엔진의 렌더링 및 애니메이션을 통합하려는 시도는 매우 번거롭고 시간 소모가 크다.
우리는 이제 zk 코프로세서를 활용하여 Unity 네이티브 환경에서 체인상 게임의 'zkServer'를 개발할 수 있는 최초의 솔루션을 공개한다. 이를 Zinity라 부른다.
게임 코드는 다음과 같이 분리된다.
1) 핵심 로직 코드 (공격, 보물 상자, 유닛 좌표 등)
2) 나머지 코드. 이후 두 부분 모두 C#에서 wasm으로 컴파일되며, 핵심 게임 로직은 zkwasm 런타임에서 실행되고, 나머지 코드는 일반적인 C# 런타임에서 실행된다. 양쪽 간 통신은 메시지 기반 프로토콜을 통해 이루어진다.
zkWASM은 “플레이어 A가 시간 X에 좌표(x,y)에 타워를 설치했다”는 행동을 바이너리 코드 형태로 증거로 삼는다. 새로운 게임 세션이 시작되면 초기 게임 상태를 가져오고, 게임 진행 중 zkwasm은 추가적인 플레이어 입력을 계속 증거로 삼으며 계산한다. 게임 종료 시, 새로운 게임 상태와 함께 해당 실행 궤적(execution trace) 및 해시값이 생성된다.
전체 실행 궤적을 Eigenlayer, Celestia, Avail, Greenfield 등의 데이터 가용성 계층(DA layer)에 게시할 수 있다. 또는 사용자는 해시값만 DA 계층에 저장하고, 궤적(trace)은 클라우드 스토리지에 보관할 수도 있다. 또한 도전 기간(challenge period)을 설계하여 fault proof 방식으로 게임 상태를 검증할 수 있도록 할 예정이다.
또한 중요한 게임 결과나 경제적 가치가 큰 참여의 경우, 사용자는 전체 게임 과정에 대해 zk 증명을 생성하고 이를 DA 계층에 직접 게시할 수 있다.

마지막으로 모든 프로세스는 Unity SDK(애니메이션 및 렌더링 제외) 또는 CLI 도구 형태로 통합되어 전체 툴체인을 안내할 예정이다.
이 솔루션은 Unity/Unreal/Godot 등 다른 게임 엔진으로도 확장 가능하며, 향후 RiscZero 등의 다른 zkVM과 Eigenlayer/Celestia 등 다양한 DA 계층과의 통합도 계획하고 있다.
이러한 방식을 통해 웹2 게임 개발자들과 다양한 게임 스튜디오들을 유치함으로써, 체인상 게임/증명 가능 게임 개발자 커뮤니티를 크게 확장할 수 있을 것이다.
ERC-6551을 활용한 체인상 아케이드 + 타워 디펜스 게임 플레이
또한 우리는 증명 가능한 게임 기반의 체인상 아케이드 개념도 탐색하고 있다. 예를 들어, 플레이어가 특정 타워/포대/장애물 설정을 체인상에 제출하면, 다른 플레이어가 선택한 몬스터 및 병사로 그 챕터를 클리어하려 시도할 수 있다. 전투 결과는 로컬에서 계산되며, 결과 검증을 위한 zk-SNARK 증명만 체인에 제출된다. 이를 통해 클리어 방법이 체인 전체에 공개되지 않도록 보장한다.
ERC-6551(토큰 바인딩 계정)은 이러한 PvP 매칭을 자율형 아케이드(autonomous arcade)로 만들어 준다. 방을 여는 플레이어는 스마트 계약에 보상을 예치하고, 도전자들은 고정 입장료를 지불하게 되며, 이 비용은 보상 풀에 누적되어 챕터를 완료한 플레이어에게 지급된다. 상위 10명의 클리어 플레이어가 보상 풀의 일정 비율을 획득한다.
우리는 이 자율 아케이드 아이디어를 적극적으로 탐구하고 있으며, 트위터(@BladeGamesHQ)에서 어떤 형태의 논의도 환영한다. 향후 발표할 글에서 타워 디펜스 게임의 PvP 예시에 대해 자세히 다룰 예정이다.

ETHdenver에서 선보일 게임
ETHdenver에서는 zkwasm 기반의 증명 가능 게임 데모를 선보일 예정이다. 이 게임은 Rust와 React로 개발되며, zkwasm 위에서 실행된다. 트위터에서 연락주시면 얼리 액세스 테스터 명단에 등록해 드리겠다!
결론 및 향후 계획
- ZK 코프로세서 방식은 검증 가능한 게임에 필요한 신뢰 가정과 몰입감 있는 게임 경험 개발에 필요한 컴퓨팅 성능을 제공한다.
- 숙련된 게임 개발자들에게는 Unity/Unreal 네이티브 솔루션이 매우 중요하며, Solidity/Cairo 핵심 로직과 Unity 애니메이션/렌더링을 통합하는 방식은 피해야 한다.
- 체인상 게임과 증명 가능 게임의 미래 개발자 경험은 고도로 모듈화되고 플러그 앤 플레이 방식이 될 것이다. (어느 정도까지 체인에 올려야 '체인상'이라 할 것인가? 개발자와 사용자가 결정해야 한다고 생각한다.)
- 앞으로는 신뢰 가정, 증명 비용, 개발 비용 사이의 타협점을 유연하게 조정함으로써 개발 비용을 관리 가능한 수준으로 유지하는 증명 가능 게임 개발이 가능할 것이다.
Zinity 솔루션은 웹2 및 웹3 개발자 모두에게 증명 가능 게임 개발의 원활한 입문 경험을 제공한다. 다양한 게임 엔진과 DA 계층, zkVM을 자유롭게 조합할 수 있는 플러그 앤 플레이 방식이 개발자 경험의 유연성을 크게 높일 것이라 믿는다.

우리는 미래의 개발자 경험을 다음과 같이 상상한다. Zinity는 증명 가능 게임에 대한 '탄력적(elastic)' 지원을 제공하며, 크립토 개발자와 웹2 게임 개발자 모두에게 증명 가능 게임을 위한 플러그 앤 플레이 개발 옵션을 제공한다.
예를 들어 개발자는 Rust로 핵심 게임 로직을 작성하고, C#과 Unity로 나머지 부분을 개발한 후, 실행 궤적 또는 해시값을 체인에 커밋하고 ZKP 생성은 나중에 지연할 수 있다. 이렇게 하면 개발 비용과 증명 비용 모두 크게 절감된다.
이러한 탄력적 모델은 개발자가 C#과 Unity 엔진 내에서 초기 게임 아이디어를 빠르게 테스트하고, 원하는 '체인화 정도(on-chainness)'를 반복적으로 조정할 수 있게 해준다. (어느 정도까지 체인에 올려야 '체인상'이라 할 것인가? 개발자와 사용자가 결정해야 한다.) 또한 게임 설계와 블록체인 성능 간의 tradeoff를 사전에 압력 테스트할 수 있다.
자체 게임 개발과 다양한 기술 스택 실험을 통해, 우리는 훌륭한 게임 플로우와 UIUX를 위해서는 여전히 경험丰富的 웹2 게임 개발자들이 증명 가능 게임 개발에 참여해야 한다는 점을 깨달았다. 그래서 우리는 자체적인 혁신적 솔루션을 제안하며, 보다 광범위한 체인상 게임 개발자 커뮤니티에 기여하고자 한다.

우리는 zkwasm과 증명 가능 게임 개발에 관한 여러 주제에 대해 이미 많은 내용을 작성했으며, 나머지 작업도 진행 중이다. 아래는 일부 주제들이다.
- 증명 가능 게임을 위한 zkwasm 수정 (진행 중)
- 이 방식의 DA 비용 및 증명 비용 추정 (완료)
- 증명 가능 게임의 모딩(modding), 상호 운용성, 체인상 무허가 상호작용 (진행 중)
- 관련 증명 가능 게임 설계 아이디어 (진행 중)
증명 가능한 게임 개발, zkVM의 게임 적용에 관심 있거나 함께 일하고 싶으신 분은 언제든지 연락 주세요!
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














