Web3 游戏是传统游戏领域的一个特殊的垂类板块,因构建在区块链上,Web3 游戏通常具备去中心化、游戏资产确权、P2E 等系列特性,并备受追捧。虽然 Web3 游戏代表了一种先进的的意识形态,但 Web3 游戏因基建设施的不足,在游戏体验、游戏内容等方面仍旧无法与 Web2 游戏媲美。

现阶段,绝大多数链底层在性能上呈现出了捉襟见肘的局面,比如此前爆火的铭文赛道就扯下了不少 Layer1、Layer2 的性能底裤,所以在底层设施仍不完美的当下,直接将游戏逻辑完全部署在链上通常是不可行的,这会导致游戏运行卡顿、玩家参与游戏的成本极高。所以绝大多数 Web3 游戏团队的做法是将游戏逻辑写在链下的服务器中,仅仅将游戏中的资产放在链上并通过链上交易反过来更新服务器中的数据,二者不断通过数据枢纽同步数据,即 Web2.5。所以当游戏逻辑运行在中心化的服务器上、游戏数据保存在服务器上、链上链下需要不断同步数据时,游戏本身在可信、效率、安全性等方面会存在一些挑战,而 Web2.5 的做法本身也与 Web3 所秉承的理念相悖。

与此同时,主流的区块链秉承公开透明的特性即不支持隐私,所以对于玩家的很多游戏私有信息通常都是公开可查的,同样对于一些 SLG、MMORPG 游戏中比如扑克游戏、大富翁以及集换式卡片游戏等,不可预测的随机性、隐私性是必要,多数区块链通常无法为其提供有效支持。而一些具备原生隐私特性的链底层,在资产流动性、用户活跃度等方面相对落后,且游戏开发者而言并不友好。

ZKP 或成解决问题的关键方案

零知识证明(Zero-Knowledge Proof, ZKP)是一种先进的密码学技术,允许一方(证明者)向另一方(验证者)证明自己拥有某项信息或满足某个条件,而无需泄露任何具体信息。这种技术的核心在于保护用户的隐私,同时确保数据的真实性、安全性与可信性。目前,ZKP 方案正在被引入到游戏领域中,以进一步实现游戏的可信化运行,提升游戏的效率、安全性并为游戏赋予隐私特性。

Zypher Network 是这一趋势的推动者,通过推出基于 ZKP 方案的游戏引擎,能够让开发者更低门槛的开发链上游戏或者将游戏迁移至链上,并通过提供了 Services SDK 工具包,让开发者低门槛的将游戏写在 ZKP 电路中,并将电路直接编译成 wasm,同时可以在浏览器或应用中运行。

在游戏运行时,Zypher Network 引擎中的节点会将玩家的一些连续游戏行为所产生的动作日志聚合成 ZK 证明,在一定的周期内这些游戏动作(每一个都是一笔交易)被聚合在一个 ZKP 证明中,并且多个证明被以单个交易的方式提交到链上,这种方式不仅大幅降低了 Gas 费,同时能够确保玩家无延迟的游戏体验。

与此同时, Zypher Network 推出的秘密引擎,能够为不同的游戏提供可选择性的隐私方案。该引擎通过优化的 WASM 和预编译的合约实现了 Shuffling SDK,从而实现了高性能、低成本的去中心化洗牌过程。洗牌电路和协议保证了在链上执行可验证的加密计算的安全性,确保了战略元素在链上保密。除了扑克、大富翁、集换式卡片游戏之外,SDK 还可以应用于其他需要无信任性和随机性的 SLG 用例。该引擎也将用来保证玩家在游戏中信息的安全性与隐私性,包括游戏内的信息以及玩家身份信息都将基于 ZK 方案保密在链上,以保证游戏的公平性,并隐藏玩家信息。

此外,Zypher Network 的链下计算网络会为 ZKP 所需要的计算资源,持续提供支持。

整体上, Zypher Network 基于 ZKP 的游戏引擎方案正在让链上游戏摆脱中心化服务器,走向服务器抽象、真正面向 Web3 的新时代。

Zypher Network 引擎的游戏用例:Ten Sum Rings

以 Ten Sum Rings 游戏为例,该游戏的玩法是让用户在屏幕上圈出一个特定区域。如果该区域内所有数字的和等于 10,则本次操作成功。用户在进行游戏时,实际上是在利用零知识证明的原理。具体来说,用户可以向验证者证明自己所圈区域的和确实为 10,而不需要透露该区域内的具体数字。通过这样的设计,用户可以保护自己的私有信息,同时确保游戏的公平性。

在游戏实现中,用户的圈选区域可以通过 zk 电路进行验证,验证者根据电路生成的证明来确认和是否符合条件。这样,即使验证者无法访问用户的具体圈选数字,依然能够信任用户的操作结果。通过零知识证明,Ten Sum Rings 游戏不仅增强了隐私保护,还提高了参与者的安全感,推动了区块链技术在游戏和应用中的创新使用。

目前,在 Zypher Network 游戏引擎集成了 CocosCreator,支持开发者直接通过 CocosCreator 开发链上游戏,现阶段 Zypher 生态游戏开发者已经在 TON Network 上推出了数十款采用 ZKP 方案的优质 Telegram 小游戏。

接下来,我们将介绍如何一步步实现通过 CocosCreator 开发基于 ZKP 的 Telegram 游戏,希望本教程对你有所帮助。

使用 CocosCreator 快速部署 TON 游戏(第三部分):如何通过 CocosCreator 开发基于 ZKP 的 Telegram 游戏

如果你对 CocosCreator 以及 Telegram 不是很了解,可以首先参考下列内容(教程的第一部分):

https://www.chaincatcher.com/article/2140947

教程的第二部分:Web2 游戏如何使用 Ton 支付

https://www.chaincatcher.com/article/2146780

以及 Zypher Network 的开发者文档:

https://docs.zypher.network/

零知识电路(zk 电路)是零知识证明系统的核心组件,主要用于描述特定的逻辑或数学计算。通过 zk 电路,证明者能够在不泄露任何私有信息的情况下,向验证者证明某个计算的正确性。这种技术广泛应用于隐私保护、区块链、身份验证等领域,为数据的隐私和安全提供了保障。

zk 电路是一种逻辑电路模型,由多个门(gates)和线(wires)构成。每个门表示一个基本运算,如加法、乘法和比较等,而线则代表数值的输入、输出或中间结果。zk 电路的设计使得复杂的计算可以通过简单的基本运算进行组合,从而实现任意计算逻辑。

在 zk 电路中,有三个重要组成部分:

  1. 输入值:包括公开输入(public input)和私有输入(private input)。公开输入是验证者可以访问的数据,而私有输入则是证明者的机密数据,无法直接泄露给验证者。

  2. 电路逻辑:由一系列运算构成,这些运算定义了计算的逻辑流程。电路的设计需要确保能够有效地表达复杂的计算过程,并优化运算效率。

  3. 输出值:zk 电路最终生成的输出数据,供验证者使用。输出值通常用于验证计算的正确性,而不透露输入的具体内容。

通过这种方式,zk 电路在保护隐私的同时,保证了计算的透明性和可信性,推动了隐私计算的应用与发展。

以下是包含电路的合约:

在部署 TON 合约之前,需要完成以下准备工作:

  1. 编写合约代码:使用 FunC 语言或其他支持 TON 虚拟机(TVM)的合约语言编写合约逻辑,确保合约的功能需求和安全性。

  2. 安装 TON CLI 工具:使用 TON 官方提供的命令行工具,这些工具能够帮助你编译、部署合约以及与区块链进行交互。

  3. 准备 TON 钱包:创建并准备一个 TON 钱包,以便为合约提供初始部署费用,这个钱包必须有足够的 TON 代币。

部署和交互的整体流程:

  1. 编写合约代码:使用 FunC 或其他合约语言编写合约逻辑。

  2. 编译合约代码:使用 func 工具编译合约代码,生成 .fif 文件。

  3. 生成合约的 .boc 字节码:通过 fift 工具将 .fif 文件转换为合约的字节码(.boc 文件),这是合约在 TON 上运行的关键。

  4. 生成合约地址:根据合约的字节码和初始化参数生成合约地址。

  5. 提供初始资金:为生成的合约地址充值,以满足部署费用。

  6. 部署合约到 TON 网络:使用 TON CLI 的 deploy 命令将合约部署到网络上。

  7. 验证合约状态:通过查询合约地址确认合约是否成功部署。

  8. 与合约交互:使用 TON SDK 或 CLI 调用合约的方法,进行数据查询或状态更新。

 

ten sum rings合约部署代码:

在 Cocos Creator 中调用 TON 合约的流程如下:当 TON 合约部署成功并获得合约地址后,前端可以通过集成 TON SDK(如 TonWeb 或 TonConnect)来实现与合约的交互。在 Cocos Creator 项目中,使用 JavaScript 调用 SDK 提供的接口,根据合约地址和方法名发送请求,并传递必要的参数和签名信息。然后处理合约返回的数据,以实现前端与链上合约的交互。

以上就是在 Cocos Creator 中,实现基于 zk 电路和 TON 合约的链上验证流程,主要包括以下步骤:编写 zk 电路来设计隐私计算逻辑,生成零知识证明(ZKP),然后将合约编写为 FunC 代码并编译成 TVM 字节码,部署到 TON 网络上。通过 TON 合约进行验证和数据交互,实现高效且隐私安全的链上验证,确保数据的完整性与用户隐私的保护。