전链 게임 어두운 숲: 불완전 정보 게임, 게임에서 ZK의 응용 잠재력에 대해 이야기해보자
저자: Snapfingers DAO
서문
흑산 EDCON 대회에서 V 신은 향후 10년 동안 zk-SNARK가 블록체인만큼 중요할 것이라고 언급했습니다. 전체 체인 게임인 다크 포레스트는 zk-SNARK 기술을 활용하여 V 신으로부터 "정말 흥미롭다"는 평가를 받았습니다.
다크 포레스트는 MMO "암호학 전쟁 안개" 체인 게임입니다. 전쟁 안개는 게임 플레이어에게 익숙한 메커니즘으로, 《스타크래프트》와 《워크래프트 3》 모두 이 디자인을 채택하고 있으며, 정보 숨김은 "전쟁 안개"를 통해 이루어집니다. 즉, 게임 맵의 영역은 플레이어가 발견할 때까지 가려져 있습니다. 이러한 환경과 양측 전술의 예측 불가능성 메커니즘은 불완전 정보 게임이라고도 불리며, 거의 모든 인기 있는 MMO 게임은 불완전 정보 게임입니다. 이는 플레이어가 더 풍부하고 극적인 전략 공간을 탐험할 수 있도록 허용합니다.
블록체인에서는 데이터가 완전히 공개되고 투명하여 불완전 정보 메커니즘을 구현할 수 없습니다. 다크 포레스트는 제로 지식 증명 zkSNARKs 기술을 활용하여 플레이어가 공개적으로 검증 가능한 유효한 행동을 제출하면서도 개인 정보를 유지할 수 있도록 하여 불완전 정보를 실현했습니다.
다음에서는 전체 체인 게임 다크 포레스트의 프로젝트 개요와 흥미로운 디자인을 소개하고, 이 게임을 통해 Web3 세계가 어떻게 전체 체인 불완전 정보 게임을 실현하는지를 살펴보겠습니다. 또한 "전체 체인 게임", "정보 게임", "암호화된 전쟁 안개" 등의 개념을 하나하나 설명하여 용어 장벽을 허물겠습니다. 이 글이 다크 포레스트의 개요를 이해하고 전체 체인 게임의 재미를 탐험하고자 하는 분들에게 도움이 되기를 바랍니다.
* 본 문서는 정보 공유를 위한 것이며 투자 조언이 아니므로 특정 토큰이나 NFT 구매를 권장하지 않습니다. DYOR을 권장합니다.
01 게임 배경
다크 포레스트는 이더리움과 Gnosis(이전 xDai) 체인에 기반하여 구축된 탈중앙화 RTS(실시간 전략) 전체 체인 게임입니다. 이 게임은 MMO 우주 정복 게임으로, 류츠신의 대표작 삼체 시리즈 두 번째 소설인 다크 포레스트를 원작으로 하고 있습니다. 게임의 주요 내용은 다른 플레이어의 침략자를 물리치고, 별자리에서 무작위로 분포된 자원을 수집하며, 가능한 한 당신의 우주 제국을 확장하는 것입니다.
* MMO는 대규모 다중 사용자 온라인 게임의 약자로, 100명에서 1000명까지의 플레이어가 인터넷을 통해 동시에 참여할 수 있는 온라인 게임을 의미합니다.
다크 포레스트의 아이디어를 처음 제안한 사람은 @Gubsheep이며, 그는 제로 지식 증명에 관한 회의에 참석한 후 류츠신이 묘사한 다크 포레스트 이론에 매료되어 제로 지식 증명을 활용하여 "암호화된 세계의 다크 포레스트"를 만들겠다는 아이디어를 떠올렸습니다. 처음에는 매우 실험적이고 심지어 장난 같은 아이디어였지만, 게임은 고빈도 상호작용 애플리케이션으로서 당시와 지금의 블록체인 환경에서 엄청난 도전에 직면해 있었습니다. 막 싹트기 시작한 제로 지식 증명을 이렇게 복잡한 시스템에 적용할 것이라고는 아무도 생각하지 못했지만, 다크 포레스트는 이 개념을 실현했을 뿐만 아니라 블록체인 역사에서 이정표가 되었습니다.

초기 다크 포레스트 팀의 주요 멤버
초기 다크 포레스트 팀의 주요 멤버는 Gubsheep, Alan, Ivan, Moe로 구성되어 있습니다. 팀은 2020년 8월 7일 금요일 이더리움 Ropsten 테스트 네트워크에서 게임의 첫 번째 테스트 버전(Dark Forest v0.3)을 출시했습니다. 대회 우승자는 총 1024 DAI를 받게 됩니다.
02 간단한 튜토리얼
사용자가 게임을 플레이하기 위해 준비해야 할 것은 무엇인가요?
공식 게임 웹사이트: https://zkga.me/
웹사이트 초기 설정
잠금 아이콘을 클릭하여 웹사이트 설정으로 들어가 "팝업 창 및 리디렉션"과 "안전하지 않은 콘텐츠" 두 가지 설정을 차단에서 허용으로 변경합니다;
팝업 창 및 리디렉션: 게임에 처음 로그인할 때 팝업 창을 통해 서명 거래를 요청합니다;
안전하지 않은 콘텐츠: 원격으로 지도를 열 때 이 옵션을 활성화해야 합니다.

- xdai 준비
게임은 xDai 체인에서 실행되며, 계정은 이더리움 계정과 완전히 호환됩니다. 게임 내에서 각 작업은 xDai를 가스 비용으로 소모하며, xDAI를 사용하여 행성의 HAT 또는 플레이어가 시장에서 판매하는 유물을 구매할 수 있습니다. 공식적으로 진행된 각 게임 라운드에서 검증 키의 주소로 0.05 xDai가 전송되어 게임 초기 시작을 위한 자금이 제공되며, 커뮤니티 라운드에서는 xDai가 배포되지 않을 수 있습니다. 어쨌든, 먼저 계정에 정량의 xDai를 준비해야 합니다.
xDai를 얻는 방법은 두 가지로 나눌 수 있습니다:
중앙화 거래소 구매: AscendEX
크로스 체인 브리지 교환: 예를 들어, Li.Finance, Hop, xPollinate - V2, xDai Bridge …
- 초대 코드 준비
보통 공식은 게임 전에 이전 라운드의 적격 참가자에게 이메일로 몇 개의 초대 코드를 배포합니다. 친구에게 요청하거나 커뮤니티의 Discord에서 요청할 수 있습니다. 그러나 게임 전에 공식 웹사이트에서 이메일 목록을 구독해야 하며, 그렇게 하면 키를 받을 기회도 생깁니다. 커뮤니티 라운드에서 키를 얻는 방법은 미리 지정된 커뮤니티를 주의 깊게 살펴봐야 합니다.

03 "안개 숲" 메커니즘
최초의 실시간 전략 게임인 《샌드웰 2》부터 전쟁 안개 개념이 도입되고 공식적으로 제안되었습니다. 워크래프트의 플레이어는 전투 안개 시스템에 익숙할 것입니다. 플레이어의 부대가 탐색하기 전에는 상대의 부대와 지형 등의 정보가 표시되지 않으며, 이는 전투 장면에서의 불확실한 요소입니다.
《커맨드 앤드 컨커》 이후, 게임 내 전쟁 안개는 점차적으로 맵 레이어와 유닛 레이어 두 가지로 나뉘어 정의되었습니다. 맵 레이어에 포함된 지형은 변경하기 어렵거나 아예 불가능하여 유닛이 이동한 후에도 정보의 유효성을 보장합니다. 반면 유닛 레이어는 해당 지역의 활동 유닛의 상태를 나타내며, 상대가 여전히 그곳에 머물고 있을 것이라고 보장할 수 없기 때문에 우리 측 정보원이 사라진 후(예: 정찰 유닛이 이동한 경우) 다시 가려지게 됩니다. 두 가지 레이어의 안개는 관습적으로 서로 다른 정도의 검은색으로 구분되며, 맵 레이어의 검은색이 더 짙고, 맵 레이어가 열리면 남겨진 유닛 레이어의 안개는 상대적으로 더 연합니다. 이러한 전쟁 안개 형태는 비교적 고전적이며 널리 채택되었습니다. 이 고전적인 패턴은 대부분의 후속 실시간 전략 게임에 계승되었으며, 이후 RTS 게임과 턴제 전략 게임에서도 전쟁 안개가 사용되었습니다. 이러한 디자인은 4x 게임 개념에서 필수적인 요소가 되었습니다.

다크 포레스트의 전쟁 안개는 맵에서 플레이어가 볼 수 없는 부분입니다. 새로운 계정을 생성할 때, 시작 지역의 일부만 플레이어에게 표시되며, 우주의 나머지 부분은 전쟁 안개로 가려져 있습니다. 별자리는 CPU 계산을 통해 탐색되어 확장되며, 탐색 속도는 CPU 성능에 따라 달라집니다. 별자리를 탐색한 후 이 정보는 지속적으로 관찰되며, 전통적인 웹2 게임의 전쟁 안개처럼 정찰 유닛이 떠난 후 다시 안개 상태로 돌아가지 않습니다. 따라서 별자리 탐색 속도는 정보 수집량에 직접적인 영향을 미칩니다. 정보량이 많을수록 의사결정도 더 정확해집니다.
다시 다크 포레스트 게임으로 돌아가 보겠습니다. 웹2 게임의 전쟁 안개는 시야, 지형, 탐색, 날씨 등을 종합하여 작동합니다. 웹3 체인 게임으로서 제로 지식 증명은 탈중앙화된 암호화된 다크 포레스트를巧妙하게 구축할 수 있습니다. 우주를 탐색하고 적의 좌표를 방송하는 이러한 방식은 이전 게임에서는 나타나지 않았습니다.
전체 체인 게임과 일반 체인 게임의 가장 큰 차이점은 모든 게임 데이터가 체인에 존재한다는 것입니다. 블록체인 데이터의 공개성과 투명성을 결합하여 대부분의 소위 전체 체인 게임은 완전 정보 게임이 됩니다. 따라서 전쟁 안개 요소를 채택하는 것이 높은 플레이 가능성을 가진 전체 체인 MMO 게임을 만드는 것이 어렵다는 일반적인 견해가 있습니다.
다크 포레스트는 zkSNARK 기술을 사용하여 플레이어의 행동을 정확하게 검증할 수 있지만, 다른 플레이어에게는 숨겨진 상태를 유지합니다. 플레이어의 관점에서 볼 때, 우주의 전체 상태는 완전히 드러나지 않으며, 플레이어는 체인에서 맵을 탐색하고 미지의 세계를 발견하는 즐거움을 누릴 수 있습니다. 심지어 전쟁 안개 원리를 활용하여 여러 경로로 발전하고, 별자리의 다양한 지역에서 행성을 확장할 수 있습니다. 다른 플레이어가 당신을 탐색하고 공격할 능력이 있을 때, 자원이 지나치게 집중되어 한 번에 전멸하는 일이 없으며, 다른 곳에서 재정비할 수 있습니다.
04 ZK 기술을 통한 불완전 정보 게임 구현
Zkp(제로 지식 증명)는 특정 권리의 합법적인 소유자임을 충분히 증명할 수 있지만, 검증자에게 구체적인 정보를 보여주지 않습니다. zkSNARK는 Zkp 구현 방법 중 하나입니다. 다크 포레스트는 zkSNARK를 사용하여 플레이어의 행동이 정확하게 세부적으로 검증될 수 있지만, 다른 플레이어에게는 숨겨집니다. 따라서 전체 체인 게임이지만 기밀 정보가 있기 때문에 다크 포레스트는 불완전 정보 게임이라고 할 수 있습니다.
완전 정보 게임과 불완전 정보 게임은 익숙하지 않을 수 있지만, 개념 자체는 간단합니다. 체스나 바둑과 같은 게임은 완전 정보 게임이라고 할 수 있습니다. 왜냐하면 누구의 관점에서 보더라도 보드 위의 모든 정보가 모두에게 공개되기 때문입니다. StepN 또한 완전 정보 게임입니다. 모든 플레이어는 누가 어떤 신발을 가지고 있는지, 각 신발의 특성이 무엇인지 알고 있습니다.
다크 포레스트는 불완전 정보 게임으로 알려진 전체 체인 게임입니다. 우리가 익숙한 게임으로 불완전 정보 게임을 설명하자면, 마작이나 포커와 같은 숨겨진 정보가 있는 게임입니다. 마작의 경우 상대의 손패와 패 조합은 숨겨져 있으며, 포커에서도 상대의 손패와 패 조합 정보는 숨겨져 있습니다. 다크 포레스트의 혁신은 이러한 불완전 정보 게임을 체인에 구현한 것입니다. 검증 가능하고 유효한 행동을 공개 정보로 전송하면서도 각 플레이어는 개인 상태를 유지합니다.

다크 포레스트는 zkSNARK를 사용하여 공유 맵의 위치를 숨기고 전쟁 안개를 생성합니다.
플레이어는 정복한 행성의 좌표를 스마트 계약에 전송할 필요가 없으며, 행성 위치를 claim하기 위해 행성 좌표를 해시 처리하고 해시가 유효한 제로 지식 증명을 제공하여 행성 위치의 비공개성을 보장합니다.
플레이어가 이동할 때, 그들은 떠나는 행성의 해시 값과 목적지의 해시 값을 전송하며, 이는 유효한 행동임을 증명하는 제로 지식 증명과 함께 전송됩니다.

해시 값을 역추적하는 것은 어렵기 때문에 다크 포레스트 계약을 조회한다고 해서 다른 플레이어의 실제 위치를 알 수 없습니다. 당신은 별자리 탐색을 통해 다른 플레이어를 찾아야 합니다. 별자리 탐색 시 목적지 정보를 미리 알 수 없기 때문에 플레이어의 결정은 현재 상황에서 최적의 해답이 됩니다. 새로운 행성이나 유물을 탐색할 때마다 플레이어는 현재의 모든 정보를 기반으로 다시 분석하고 결정해야 합니다. 상대의 행성을 공격할 수 있는지 또는 이 유물을 얻는 비용이 얼마나 되는지와 같은 질문을 고려해야 합니다. 언제나 그때그때 상황에 따라 최적의 해답을 선택하는 것이 불완전 정보 게임의 정수입니다.
05 개방형 플러그인 시스템으로 플레이 가능성 향상
다크 포레스트의 주요 목적은 사용자가 다양한 방법으로 즐거움을 얻을 수 있도록 하는 것입니다. 게임의 경쟁 목표는 가능한 한 많은 점수를 얻는 것이며, 비록 당신이 경쟁 플레이어가 아니더라도 많은 다른 방법으로 즐거움을 얻을 수 있습니다. 플러그인은 다크 포레스트 게임에서 중요한 부분으로, 선구적인 게임으로서 다양한 기능의 실험장이기도 합니다. 현재 공식적으로 검토된 오픈 소스 플러그인은 55개에 달합니다. 주로 세 가지 범주로 나뉩니다:
- 시각화: 게임의 원래 인터페이스는 비교적 간단하며, 플레이어는 자신의 필요에 따라 다양한 기능을 개발할 수 있습니다. 예를 들어 데이터 시각화(히트맵, 미니맵, 행성 간 전송 시간을 계산하는 맵 내보내기 도구 등), 특정 목표의 강조 또는 표시(친구를 강조하고 하이라이트, 행성 버프 강조 등).
- 거래 시장: 주로 플레이어 간의 다양한 자원 교환을 촉진하여 플레이어에게 새로운 게임 동기를 부여합니다. 여기에는 유물 거래 시장, 다른 게임의 장비 거래 시스템과 유사한 좌표 보상 시장, 행성 보상 시장 등이 포함됩니다.
- 자동화: 이 유형의 플러그인은 일반적으로 더 자주 사용되며, 스크립트를 통해 플레이어가 원래 복잡하고 번거로운 작업을 단순화하고 실행 효율성을 높이는 데 도움을 줍니다. 자원 관련(유물의 포획 및 관리 Hunt Artifacts, Artifactory, 은광의 일괄 분배 Distribute Silver, 자원 집합 Centralize Resources 등), 전투 관련(주변 행성 포획 Crawl Planets, 자동 반복 공격 Repeat Attack, 일괄 협동 공격 Simultanous Attack, 심지어 플레이어를 직접 겨냥하여 전쟁을 시작하는 Wage War 등).
결론
다크 포레스트에서는 Fi 요소를 약화시키고 게임성에 더 중점을 두어 풍부한 게임 경험과 다양한 플레이 방식을 구축했습니다. 동시에 새로운 기능에 대한 실험도 이루어졌습니다. 게임 균형을 해치는 버그를 제외하고, 사기, 뇌물, 협력, 자동화는 모두 허용됩니다. 왜냐하면 당신은 "다크 포레스트" 안에 있기 때문입니다.
새로운 게임 경험은 다크 포레스트를 체인 게임의 다크 호스로 만들었으며, 개방형 길드 시스템은 탈중앙화의 요구를 더 잘 충족시킵니다. 미래의 스냅핑거스 연구소는 이 전체 체인 게임을 지속적으로 주목할 것입니다.















