ZK技术破局“Play to Earn”

2024-02-03 20:09

免责声明 免责声明:内容来源于网络收集,不构成任何投资建议!

在“玩游戏赚钱”的理念下,玩家希望在享受游戏的同时还能赚钱。但GameFi受限于高昂的GAS成本和不完善的区块链游戏开发生态,其安全性和透明度很难得到玩家认可。这让GameFi走向了另一个极端。 ——不断优化经济模型和收益,收益周期不断缩短,最终引发踩踏事件。新周期中,L2、全链游戏引擎和ZK技术的普及将为用户带来链上隐私和更复杂的链上游戏机制。这同时解决了性能、隐私和可信度问题,将焦点从庞氏游戏转移到更值得信赖和复杂的链上游戏。利用应用层ZK技术,游戏开发者可以轻松构建对交互隐私场景有明确要求的链上策略游戏,也为更复杂的可信(链上)游戏场景带来了新的希望。 Salus将通过本文来探讨新的应用层ZK技术如何帮助游戏完成场景创新。

技术背景:递归 zkSNARK的出现

zk-SNARK 是一种密码证明系统,其中证明者可以证明拥有某些信息,而无需透露该信息,并且证明者和验证者之间无需任何交互。

递归zkSNARK 意味着开发人员可以验证zkSNARK 证明中的另一个zkSNARK 证明并生成zkSNARK 证明语句。递归允许 zkSNARK 证明者将更多知识压缩到他们的证明中的同时保持简洁,且递归验证过程不会明显减慢。

与常规zkSNARK 相比,递归 zkSNARK 通过允许将多个证明压缩为单个证明来提供增强的可扩展性和效率。这种递归组合减少了复杂或多步骤过程的计算负载和证明大小,使其特别有利于区块链游戏等发生大量交互和交易的应用。这将为用户和开发人员带来更高的性能和更低的成本。

ZK技术破局“Play to Earn”

图片来源- https://ethresear.ch/t/signature-merging-for-large-scale-consensus/17386

递归 SNARK 解锁新应用级属性

压缩

递归zkSNARK 允许证明者将“更多知识”放入证明中,同时确保这些证明仍然可以由验证者在恒定或多对数时间内验证。使用递归zkSNARK 作为信息“汇总”可以独立“汇总”比最大(非递归)电路更多的计算。

可组合性

使用递归zkSNARK,可以创建一个证明链,其中每一步都会将证明传递给新的参与者,每个参与者在不知道链其余部分的详细信息的情况下添加自己的知识声明。

递归SNARK的实现

一般来说,有两种方法可以实现完全递归的zkSNARK: 一种方法是使用配对友好的椭圆曲线,其中通过找到两条配对友好的曲线递归来实现高效,使得一的阶数曲线等于另一条曲线的场大小;第二种方法是在证明系统本身中强行通过并简单地实现一对友好曲线的椭圆曲线操作。

第一种方法,可配对椭圆曲线和循环。尽管许多研究人员仍在探索,但目前想要同时实现配对友好和循环这两个属性的曲线仍然很困难。下面定义了什么是配对友好椭圆曲线循环。

定义1:椭圆曲线是在有限域上定义的椭圆曲线的列表,其中曲线上的点数椭圆曲线://10001.com/等于下一条曲线的域的大小。

椭圆曲线的m 个周期由m 个不同的椭圆曲线ZK技术破局“Play to Earn” 组成,其中ZK技术破局“Play to Earn” 是质数,使得这些曲线上的点数满足公式:

llimg/c240203/1FE621434W40-41038.png" width="447" height="63" \>

高效的 zkSNARK 方案一般由配对友好型椭圆曲线去构建,而等式中的循环条件使得它们之间可以递归组合,并且避免产生在跨不同特征的有限域时所产生的昂贵的模运算。

定义 2: 椭圆曲线的配对友好型 m-循环是一个满足循环中每条椭圆曲线都是基础且具有较小嵌入度的 m-循环。

第二种方法是强行通过,并在证明系统本身中简单地实现单对友好曲线的椭圆曲线运算)。你可以将配对电路移植到BN 254 曲线上,然后在 Circom 中组装一个生长验证器。

以 groth 16 证明系统为例,groth 16 具有两个阶段的可信设置,第二阶段的设置是电路特定的。这意味着,当你在 SNARK 内部验证证明时,它将需要独立于外层 SNARK 的受信任设置。

因此最适合递归 groth 16 SNARK 的是那些递归到自身的应用,即在电路中验证的证明是同一电路本身的证明。这意味着我们只需要一个可信设置。如图展示了自递归 SNARK 的思路:

ZK技术破局“Play to Earn”

自递归 SNARK - 图片来源 https://0x parc.org/blog/groth 16-recursion

在每一步,你都有一个电路来证明计算

ZK技术破局“Play to Earn”的有效性 ( 可能 i 是对 SNARK 的公开输入),并且在第 i 个这样的证明中,您验证另一个计算有效性的证明 ZK技术破局“Play to Earn”的有效性。还有步骤ZK技术破局“Play to Earn”的有效性,在每次递归时,您的 SNARK 电路将保持不变。以Isokratia为例,每个ZK技术破局“Play to Earn”都是 ECDSA 签名验证。

总的来说,递归 zkSNARK 提供了更强的扩展性:减少多步骤游戏或动作所需的数据和计算,使它们在链上更加可行,确保复杂的游戏逻辑和状态转换快速、安全地验证。

案例研究:ZK-Hunt 及其影响

ZK Hunt 是一款类 RTS 的链上 PvP 游戏,探索了使用 ZK 技术实现复杂链上游戏机制和信息不对称。ZK Hunt 允许玩家在完全隐私的情况下执行动作,可以在不泄露任何基础数据的情况下验证每个动作。

ZK技术破局“Play to Earn”

在 ZK Hunt 平原上的移动是公开的,玩家 B 可以看到玩家 A 在移动时的位置更新。进入丛林也是公开的,但在丛林中移动是不可见的,因此玩家 A 无法确定玩家 B 在丛林中的位置,而只能模拟一组不断增长的潜在位置,这些位置用问号显示。离开丛林回到平原用户位置会再次公开,所以这个潜在的位置集合就消失了。

这种信息隐藏行为是 ZK Hunt 的基础;单位有一个状态(它们的位置),可以从公共状态变为私有状态,然后根据游戏中的动作再次变回来。这增强了游戏的策略性。

ZK技术破局“Play to Earn”

图片来源:https://gam3s.gg/zk-hunt/

如图所示:ZK Hunt 的状态验证过程主要为以下步骤:

  1. 本地更新私有状态:从 si-1 到 si(从公开转为私有或从私有转为公开)

  2. 生成有效转换状态的证明 :消耗 si-1 和 si(和之前的承诺 Ci-1,生成新的承诺 Ci)

  3. 提交到链上验证证明(合约为承诺 Ci-1  提供了值,以确保正确生成证明)

  4. 更新链上的承诺(保存 Ci 以便在下个转换时 可以将其用作 Ci-1)

承诺是一种工具,ZK 证明可以使用它来验证引用用户之前“承诺”的一些私有状态,而无需向验证者透露该状态。用户将承诺 C 作为公共输入提供给证明,将私有状态 s 作为私有输入,证明在内部计算 s 将产生的承诺,并检查它是否与 C 匹配:

ZK技术破局“Play to Earn”

尽管 ZK 证明验证的成本被认为是恒定的(至少对于某些证明系统,如 groth 16 等),实际上这个验证成本会根据公共输入的数量而增加,这在进行链上验证时可能很重要。同时,ZK Hunt 使用了poseidon hash 作为承诺方案,因为它在电路内计算比其他常见哈希函数效率高得多,每个消息位的约束更少。如果私有状态是从足够大的范围(例如私钥或随机种子)中随机选择的值,那么只需获取该值的哈希值就足以作为承诺。

类似的 ZK 技术可以实现的游戏创新场景还有很多,例如资产隐藏、决策隐私和进度保密。

  • 资产隐藏:在集换式卡牌游戏中,玩家可以使用零知识证明隐藏自己的手牌,只在打牌时显示必要的信息。

  • 决策隐私:在策略游戏中,玩家可以秘密选择下一步行动或分配资源,这些选择仅在特定点或由游戏逻辑触发时才会公开。

  • 进度保密:在冒险或角色扮演游戏中,玩家可能会完成任务或获得成就,而其他人并不确切知道他们已经完成了哪些任务,从而保持惊喜或竞争保密的元素。

通过采用零知识证明技术,ZK Hunt 允许玩家在保持隐私的同时进行游戏操作。这不仅是技术上的创新,更是链上游戏的一次规则变革。通过这种方式,游戏行动在不透露敏感数据的情况下得到验证,增强了策略的隐蔽性,并丰富了游戏的策略深度和惊喜元素。

如果您对在链上游戏中集成 ZK 技术以增强隐私和扩展性、实现游戏创新感兴趣,Salus提供相关服务和解决方案。通过与 Salus 合作,您可以探索 ZK 技术在游戏领域的广泛应用,为玩家提供更丰富、更安全、更具策略性的游戏体验。