Zypher Research:Nova-재구성 ZK 게임의 미래(1)
全체인 게임/자치 세계는 Web3에서 가장 중요한 서사 중 하나입니다. 10월 말 기준으로, web3 게임의 일일 활성 사용자(DAU)는 530만에 달하며, 이는 엄청난 시장 잠재력을 보여줍니다. Web2.5 애플리케이션과는 달리, 전체인 게임/자치 세계는 게임 로직을 모두 블록체인에 배포하고, 블록체인을 게임 서버로 직접 활용하여 사용자의 모든 작업이 체인에서 실제로 발생하도록 보장합니다. 이는 탈중앙화, 신뢰성, 조합성이 강한 등의 뚜렷한 장점을 가져오지만, 전통적인 게임이 web3를 수용할 때 여전히 성능 병목, 확장성 및 프라이버시 등의 중대한 도전에 직면해 있습니다. Nova는 게임 현황을 재편할 수 있는 혁신적인 솔루션으로, web3 게임을 새로운 시대으로 이끌 것으로 기대됩니다.
Nova란 무엇인가
Nova [1]는 R1CS를 위해 설계된 접기 솔루션 기반의 재귀 증명 시스템으로, 효율적으로 증분 검증 계산(IVC)을 구현할 수 있습니다. IVC는 각 단계의 결과의 정확성을 증명하여 모든 단계가 이전의 모든 결과를 올바르게 실행했음을 보장하는 암호화 원리로, 특정 당사자가 주어진 컴퓨터 프로그램 실행 과정의 완전성을 보여줄 수 있게 합니다.
먼저, IC(증분 계산)란 무엇인가요? IC는 동일한 함수 F를 재귀적으로 적용하여 계산하는 것을 의미하며, 초기 상태를 입력받아 이 반복 과정을 통해 상태를 얻습니다. 그림 1.a와 같이 나타낼 수 있습니다. 만약 함수 F가 검증 회로를 포함하고 있다면, IVC(증분 검증 계산)를 얻게 됩니다. IVC는 Prover가 Verifier에게 증명할 수 있게 하며, 매 단계마다 증명을 생성합니다. 이는 시작부터 해당 단계까지의 계산 과정이 올바르다는 것을 보장하는 간결한 증명입니다. 그림 1.b에서 볼 수 있듯이, 이 방법은 대규모 계산/문장을 더 작은 블록으로 분할하여 동일한 코드 블록을 반복적으로 더 효율적으로 실행할 수 있게 합니다.
Nova는 두 개의 R1CS 인스턴스와 각자의 증인 인스턴스를 하나로 통합하는 매우 혁신적인 접기 솔루션을 제안합니다. Snark 기반의 IVC와 비교할 때, Nova는 각 재귀에서 이전 Snark 증명을 검증할 필요가 없으므로 다음과 같은 특징을 가지고 있습니다:
- 신뢰할 수 있는 설정이 필요 없음
- FFT 연산이 필요 없으며, 쌍 곱 친화적인 타원 곡선도 필요 없음
- 일정한 검증 시간
- R1CS 인스턴스에만 해당하며, 2개의 R1CS 인스턴스를 1개의 R1CS 인스턴스로 통합
왜 Nova인가
web3 게임은 밝은 전망을 가지고 있지만, 여러 가지 도전 과제에도 직면해 있습니다. 첫째, 실시간 빠른 속도의 게임의 경우, 조작 명령의 응답 시간은 일반적으로 밀리초 단위입니다. 그러나 대부분의 블록체인은 고성능 게임을 지원하는 데 필요한 능력을 갖추고 있지 않습니다. 둘째, 거래량이 증가함에 따라 블록체인이 혼잡해져 지연이 발생하고 경험에 영향을 미칠 수 있습니다.
이러한 문제를 해결하기 위해, 우리는 Game Rollup이라는 방법을 탐색했습니다. Game Rollup은 Groth16 증명 시스템을 통해 게임 조작 명령을 동일한 회로에 집계한 후, 증명을 생성하고 체인에 업로드하여 검증합니다. 이 방식을 통해 플레이어는 블록체인과 상호작용하기 전에 더 많은 작업을 수행할 수 있으며, 각 작업마다 체인에서의 확인을 기다릴 필요 없이 더 오랜 시간 동안 게임을 즐길 수 있습니다.
구체적으로, 우리의 Rollup 회로는 IVC 형태로 표현될 수 있습니다:
여기서 F는 게임의 턴 함수입니다.
우리의 2048 게임을 예로 들면, 이는 고전적인 퍼즐 슬라이딩 게임의 체인 상 개조판입니다. 2048 게임을 설계하는 데 가장 큰 도전은 F 함수의 설계입니다. 2048 게임에서는 각 턴에 대해 상하좌우 네 가지 가능한 명령 입력이 있으므로, 이 네 가지 입력을 호환하기 위해 F 함수(회로)의 설계는 상당히 정교해야 합니다. 이는 스마트 계약을 통해 체인에서 2048 로직을 구현하는 것과 본질적으로 다르며, 후자는 일반적으로 간단한 if 문(예: if up {} else if down {}…)을 통해 명령을 처리합니다. 그러나 회로에서는 if-else 구조를 직접 사용할 수 없습니다. 우리는 다음 글에서 이에 대해 구체적으로 논의할 것입니다.
Solana는 높은 성능의 공공 블록체인으로, 빠른 거래 확인 속도를 제공할 수 있지만, 그 위에 배포된 2048 게임[2]의 경험은 여전히 이상적인 부드러움을 달성하지 못했습니다. 반면, 우리는 Game Rollup 기반의 방법이 더 매끄러운 게임 경험을 제공함을 증명했으며, 이는 게임 성능 향상에 있어 Game Rollup의 장점을 입증합니다. 그러나 이 방법은 여전히 몇 가지 한계가 있습니다. 왜냐하면 이는 IVC의 가장 단순한 구현 방식이기 때문입니다:
- 증명자는 Ω ( i *∣ F ∣ ) 메모리를 요구합니다
- 증명은 점진적으로 업데이트할 수 없습니다
우리가 Nova를 만나고 깊이 연구하면서, 마치 "만나기 늦었다"는 느낌이 들었습니다. 왜냐하면 Nova는 Game Rollup의 한계를 극복하고 Web3 게임의 성능 병목 및 확장성 문제를 해결할 수 있는 가능성을 가지고 있기 때문입니다. 아래는 2048 게임을 예로 들어 Game Rollup과 Nova 두 가지 구현 방식의 성능 기준 테스트를 비교한 것입니다:
요약
Nova는 성능이 우수할 뿐만 아니라 메모리 효율이 높습니다. 이는 대규모 회로에 있어 매우 중요합니다. 왜냐하면 Groth16은 큰 SRS를 필요로 하며 메모리를 소모하기 때문입니다. Nova는 낮은 메모리 환경에서도 효율적으로 작동할 수 있습니다. 현재 일부 ZKVM도 Nova를 기반으로 구축하기 시작했습니다. 예를 들어 Nexus[3]가 있습니다. 우리는 Nova가 Web3 게임에 전례 없는 성능과 확장성을 가져오고, Web3 게임 발전을 촉진하는 핵심 기술이 될 것이라고 믿습니다. Zypher는 Nexus와 긴밀한 전략적 파트너십을 구축하고 있으며, Nexus의 Nova 시스템 기반 ZKVM을 활용하여 차세대 체인 상 탈중앙화 애플리케이션 인프라를 만들기 위해 적극적으로 협력하고 있습니다.
참고:
[1]https://eprint.iacr.org/2021/370