撰文:Yooma
(WEEX交易所官网:www.weex.com)图片来源:https://unsplash.com/photos/people-inside-library-1mwPOXb_pB8
遇到的问题
PopCraft 是一款全链上的消除游戏,每局游戏时长 4 分钟,玩家在规定时间内消除棋盘上所有元素,会获得代币奖励。
由于全链上的特性,玩家在游戏过程中的每次操作都需要跟区块链交互。以太坊二层的区块时间通常为 2 秒,导致玩家在游戏中每次操作需要***少等待 2 秒才能完成,这远远超过同类 Web2 游戏中的等待时间,从而使 PopCraft 游戏体验欠佳。
PopCraft 游戏主界面
设想的方案
我们设想在 PopCraft中利用零知识证明技术(以下简称 ZKP),减少玩家在游戏过程中与区块链的交互次数。
预期的方式是:游戏过程不上链,但有机制可以确保无作弊风险。玩家在游戏中每一步操作都会生成 ZKP,后一步操作的 ZKP基于前一步的 ZKP 来生成,从而形成一种类似区块链结构的自包含 ZKP,游戏结束时将***后一步操作的 ZKP 发送到链上,交由智能合约验证其结果。
方案调研与推导
1. 游戏过程与结果的防作弊:仅对游戏结果生成 ZKP 是不够的,因为游戏的过程同样存在作弊可能。因此,既要对游戏结果生成 ZKP,也要对游戏过程进行验证。
2. 逐步生成 ZKP 的技术挑战:为了防作弊,需要对玩家在游戏中的每一个操作都生成 ZKP,在游戏结束时将***后一个 ZKP 上链进行验证。这个过程中,每一步的 ZKP 都会依赖于前一步的 ZKP,直到游戏结束为止。
但难点是:
1> 新的 ZKP 生成需要依赖前一步的 ZKP,这使得验证过程复杂且不确定能否可实现。此外, ZKP 验证通过智能合约(链上)来做,后一步生成 ZKP 时该如何去验证前一步的 ZKP 是正确的。
2> 在通过智能合约验证每一步的 ZKP 是否正确时,如何确保每个 ZKP 与前一个 ZKP 的连贯性,该问题不确定是否有方案可以解决。
3. 公开游戏数据的问题:PopCraft 的游戏数据是公开的,因此通过 ZKP 做信息隐藏没必要。如果上述验证步骤均可实现的话,下一步需要考虑在合约端保存游戏数据。然而问题在于 ZKP 的性质无法解出具体的游戏数据,此时也不可直接相信客户端传给智能合约的游戏结果数据,这意味着智能合约无法直接存储这些数据。
4.PopCraft 中消耗游戏道具(消耗Token)的问题:当游戏过程涉及到通过游戏道具完成孤立元素的消除时,本质上对应的是 Token 消耗,需要将用户钱包中对应的 Token 转移,如何处理这一步 ZKP 生成和验证也是一个问题。
1> 一个可能的解决方案是:这一步继续按照之前的流程生成 ZKP,验证消耗的 Token 数量并***终发送给智能合约。然而,由于智能合约无法通过ZKP 得到具体游戏数据,因此无法判断应该转移的 Token 数量。
此外,假设玩家拥有 3 个 Token A,却尝试在游戏中消耗 4 个 Token A,这种错误会在游戏结束时才被发现,而不是在用户操作实时被发现。
2> 另一个可能的解法是:在使用 Token 完成孤立元素的消除时,直接与智能合约交互完成消除,然后更新玩家的 Token 余额。生成的 ZKP 只负责保存此时游戏操作和状态的证明。
那么此时在转移 Token 成功之后,还需要像前面操作一样继续生成 ZKP,如果不生成,那么在转移 Token 操作的上一步生成的 ZKP 与下一次生成的 ZKP 中间,多了一次与智能合约交互的步骤,那么 ZKP 中的游戏状态就会冲突,这样游戏结束时生成的 ZKP 是否有效也是一个悬而未决的问题。
5. ZKP 的数据隐藏问题:对于 PopCraft 这种不需要隐藏游戏数据的场景来说,通过 ZKP 做数据隐藏是多余的,且增加了游戏数据获取的难度以及工程实现方案的不确定性。PopCraft 只需确保游戏过程和结果无作弊风险即可,并不需要隐藏游戏过程数据。
结论
在 PopCraft 这样的游戏中,游戏数据不需要隐藏,因此通过 ZKP 做信息隐藏没有必要。为了通过缩短响应时间来提升游戏体验,可以考虑游戏过程不上链,仅将***终结果上链。关键在于找到一种方法,可以确保从玩游戏的***步到***后一步都没有作弊可能,***后将正确的结果上链验证即可。
如果通过 ZKP 进行信息隐藏,反倒是增加了工程实现难度。其次是如何确保游戏过程无作弊风险,使用 ZKP 能确保单个游戏操作无作弊风险,但为了减少跟区块链的交互次数,又不能生成一次 ZKP 就提交一次。所以从游戏开始的***步操作到游戏结束整个过程,又该如何保证无作弊风险,目前看来 ZKP 无法解决该问题。
从我们的调研来看,游戏领域 ZKP 适合做两类事情:
非完全信息博弈类游戏的信息隐藏,比如:黑暗森林、德州扑克、狼人杀、炉石传说等。
游戏过程为单步的游戏结果证明,比如:彩票、猜数字、石头剪刀布、骰子游戏等。
由于我们在零知识证明技术上的储备有限,本文内容可能存在事实性错误或不合理的工程设想,恳请具备丰富经验的零知识证明领域专家批评指正。
WEEX唯客交易所是全球交易深度***好的合约交易所之一,位居CMC交易所流动性排名前五,订单厚度、价差领先同行,微秒级撮合,零滑点、零插针,***大程度降低交易成本及流动性风险,让用户面对极端行情也能丝滑成交。
WEEX交易所宣布将于今夏上线其全球生态激励通证WEEX Token(WXT)。WXT被设计为WEEX交易所生态系统的基石,作为动态激励机制,主要用于激励WEEX交易平台社区的合作伙伴、贡献者、先驱和活跃成员。
WXT总供应量100亿枚,初始流通量39亿枚,WEEX交易平台投资者保护基金、WXT生态基金各持有15%,15%用于持币激励,5%面向代理、渠道等合作伙伴私募,其余50%将全部用于WEEX交易所生态激励,包括:团队激励(20%)、活动拉新(15%)、品牌建设/KOL合作(15%)。WEEX Token是一种实用型代币,规划了丰富的使用场景和赋能机制,包括:Launchpad、近10项持有者专属权益,以及回购销毁通缩机制等。
据悉,WXT仅开放代理、渠道等合作伙伴折扣认购,未来零售投资者可通过新用户注册、交易挖矿、参与平台活动等方式获得WXT奖励。
点此注册 WEEX 账户,领取 1050 USDT 新用户奖励
WEEX官网:weex.com
WXT专区:weex.com/wxt
你也可以在 CMC|Coingecko|非小号|X (Twitter)|中文 X (Twitter)|Youtube|Facebook|Linkedin|微博 上关注我们,***时间获取更多投资资讯和空投福利。
在线咨询:
WEEX华语社群:https://t.me/weex_group
WEEX英文社群:https://t.me/Weex_Global
还没有评论,来说两句吧...