GameFi是玩家在游戏中赚取利润的概念,但受到高昂的GAS成本和不发达的区块链游戏生态系统的制约。新的周期中,L2、跨链游戏引擎和ZK技术的广泛采用将为用户带来更复杂的链上游戏机制,解决了性能、隐私和信任问题。递归zk-SNARK技术可以提高可扩展性和效率,适用于涉及大量交互和交易的区块链游戏。ZK-Hunt是一款基于区块链的RTS风格的PvP游戏,利用ZK技术实现复杂的链上游戏机制和信息不对称。Salus6提供端到端的ZK服务和解决方案,帮助游戏开发者探索ZK技术在游戏领域的广泛应用,为玩家提供更丰富、更安全、更具战略性的游戏体验。
原文标题:Completely Recursive SNARK Circuit - The Savior of “Play to Earn”
原文作者:Mirror
原文来源:ethresear
编译:Kate, 火星财经
在“边玩边赚”的概念中,玩家希望在享受游戏的同时赚取利润。然而,GameFi 受到高昂的 GAS 成本和不发达的区块链游戏生态系统的制约,由于安全性和透明度问题,导致玩家难以接受。这就把GameFi推向了不断优化经济模式和盈利机制的极端,缩短了盈利周期,最终可能导致崩盘。在新周期中,L2、跨链游戏引擎和ZK技术的广泛采用将为用户带来链上隐私和更复杂的链上游戏机制。这解决了性能、隐私和信任问题,将重点从庞氏骗局转移到更值得信赖和复杂的链上游戏。应用层ZK技术使游戏开发者能够轻松打造针对交互式隐私场景量身定制的链上策略游戏,为复杂可信(链上)游戏场景带来新的可能性。Salus 将在本文中讨论新的应用层 ZK 技术如何帮助创新的游戏场景开发。
zk-SNARK是一个加密证明系统,证明者可以在不泄露某些信息的情况下证明拥有某些信息,并且证明者和验证者之间没有交互。
递归 zk-SNARK 意味着开发者可以在 zk-SNARK 证明中验证另一个 zk-SNARK 证明,并生成 zk-SNARK 证明的语句。递归允许 zk-SNARK 证明者在保持简洁性的同时将更多的知识压缩到他们的证明中,并且递归验证过程不会明显减慢。
与常规的 zk-SNARK 相比,递归 zk-SNARK 允许将多个证明压缩为一个证明,从而提供了增强的可扩展性和效率。这种递归组合减少了复杂或多步骤过程的计算负载和证明大小,使其特别适用于涉及大量交互和交易的区块链游戏等应用程序。这将为用户和开发人员带来更高的性能和更低的成本。
图片来源:Signature Merging for Large-Scale Consensus1
递归 zkSNARK 允许证明者将“更多知识”放入证明中,同时确保这些证明仍然可以由验证者在恒定或多对数时间内进行验证。使用递归 ZK SNARK 作为信息的“rollup”,可以独立“rollup”比最大(非递归)电路可以处理的计算更多的计算。
使用递归 SNARK,创建证明链是可行的,在每一步中,都会将证明传递给新的参与者。每个参与者都向其添加自己的知识陈述,而无需了解链中其他部分的细节。这种可组合性方面允许按顺序构建证明,其中每个参与者都以增量方式做出贡献,同时保持整个证明结构的完整性和机密性。
通常,有两种方法可以实现完全递归的 SNARK:
1.使用配对友好椭圆曲线的循环:此方法涉及查找两条友好配对的椭圆曲线,使得一条曲线的阶数等于另一条曲线的场大小。这通过利用这些曲线的属性来创建有效的递归。然而,要找到同时满足对 Preformatted text 环境友好和周期性的曲线是具有挑战性的,这仍然是一个正在进行的研究领域。
2.使用单对友好曲线强制通过:第二种方法更直接,涉及在证明系统本身内对单对友好曲线的简单实现椭圆曲线操作。这种方法不依赖于查找具有特定属性的一对曲线,而是在单个曲线的约束范围内工作。
关于第一种方法,配对友好椭圆曲线循环的概念定义如下:
定义 1:椭圆曲线循环是在有限域上定义的椭圆曲线列表,其中一条曲线上的点数循环等于定义下一条曲线的场的大小。椭圆曲线的 m-cycle是 m 条不同椭圆曲线的列表
其中 q1,...,qm 是素数,使得这些曲线上的点数满足
高效的 zkSNARK 结构是通过配对友好的椭圆曲线获得的,方程中的循环条件使其能够递归组合,同时避免了跨不同特征的场进行昂贵的模块化算术。
定义2:椭圆曲线的配对友好m-cycle是指周期内的每条椭圆曲线都是普通的且嵌入度小的m-cycle。
第二种方法是强制通过并简单地在证明系统本身中的一对友好曲线上实现椭圆曲线算术。你可以将配对电路移植到 BN254 曲线上,然后在 Circom 中组装一个增长验证器。
例如,Groth16 验证系统具有两相可信设置,其中第二阶段是特定于电路的。这意味着,当你在 SNARK 内部验证证明时,它将需要独立于外部 SNARK 的受信任设置。
因此,递归 groth16 SNARK 最适合的应用是那些递归到自身的应用,这意味着在电路中验证的证明是电路本身的证明。这意味着我们只需要执行一次可信设置。下图说明了自递归 SNARK 的概念:
SNARK 自递归 图片来源:0xPARC2
在每一步中,你都有一个证明计算有效性的电路 Ai,Ai+1 ......(也许 i 作为 SNARK 的公共输入),在第 i 个这样的证明中,你验证了另一个证明计算有效性的证明 Ai+1,Ai+2 ......以及步骤 Ai 的有效性。在每次递归时,你的 SNARK 电路将保持不变。例如,在 Isokratia1 的情况下,每个 Ai 都是 ECDSA 签名验证。
总之,递归 zkSNARK 提供了增强的可扩展性:它们减少了多步游戏或动作所需的数据和计算,使其在链上更加可行,并确保快速安全地验证复杂的游戏逻辑和状态转换。
ZK-Hunt 是一款基于区块链的RTS风格的PvP游戏,探索利用ZK技术实现复杂的链上游戏机制和信息不对称。ZK-Hunt 允许玩家在完全隐私的情况下执行操作,从而在不泄露任何基础数据的情况下验证每个操作。
在平原上的移动是公开的,玩家 B 可以看到玩家 A 在移动时的位置更新。进入丛林也是公开的,但在丛林中移动是私人的,因此玩家 A 会忘记玩家 B 在丛林中的位置,并且只能模拟越来越多的潜在位置,这些位置用问号显示。离开丛林回到平原再次公开,因此一组潜在阵地崩溃了。
这种信息隐藏行为是 ZK Hunt 的基础,单位有一个状态(它们的位置),可以根据游戏中的行动从公共切换到私人,然后再次切换回来。这增强了游戏玩法的战略深度。
ZK Hunt 中的状态验证过程主要涉及以下步骤:
1. 本地更新私有状态:从 Si−1 过渡到 Si (从 Si−1 public 切换到 private,反之亦然)。
2. 生成有效状态转换的证明:利用 Si−1 和 Si (连同之前的承诺 Ci−1 ,生成新的承诺 Ci )。
3. 提交证明进行链上验证(合约为承诺 Ci−1 提供价值,以确保正确生成证明)。
4. 更新链上的承诺(存储 Ci ,以便它可以用作 Ci−1 下一次过渡的验证)。
承诺是一种工具,ZK证明可以使用它来验证用户先前“承诺”的某些私有状态,而不会向验证者透露该状态。用户将承诺C作为证明的公共输入,将私有状态s作为私有输入。证明在内部计算s将产生的承诺,并检查它是否与C匹配:
尽管验证 ZK 证明的成本被认为是恒定的(至少对于某些证明系统(如 Groth16),但实际上,这种验证成本会随着公共输入的数量而增加,这在链上验证期间可能很重要。同时,ZK Hunt 采用Poseidon hash作为其承诺方案,因为与其他常见的哈希函数相比,它在电路内计算的效率要高得多,每个消息位需要的约束更少。如果私有状态是从足够大的范围(例如私钥或随机种子)中随机选择的值,那么只需获取此值的哈希值就足以作为承诺。
类似的ZK技术可以实现很多其他的游戏创新场景,比如资产隐藏、决策隐私、进度保密等。
资产隐藏:在一劳永逸的纸牌游戏中,玩家可以使用零知识证明来隐藏自己的手牌,只在打牌时显示必要的信息。
决策隐私:在策略游戏中,玩家可以秘密选择下一步行动或分配资源,而这些选择只有在特定时间点或由游戏逻辑触发时才会公开。
进度保密性:在冒险或角色扮演游戏中,玩家可以在其他人不知道他们完成什么的情况下完成任务或获得成就,从而保持惊喜或竞争保密的元素。
通过采用零知识证明技术,ZK Hunt 允许玩家在保持隐私的同时玩游戏。这不仅是技术创新,更是链上游戏的规则变革。通过这种方式,在不泄露敏感数据的情况下验证游戏动作,增强了策略的隐蔽性,丰富了游戏的战略深度和惊喜元素。
如果你有兴趣将 ZK 技术集成到链上游戏中,以增强隐私性、可扩展性并实现游戏创新,Salus6 提供端到端的 ZK 服务和全面的解决方案。通过与我们合作,你可以探索ZK技术在游戏领域的广泛应用,为玩家提供更丰富、更安全、更具战略性的游戏体验。