问题背景在 PopCraft 游戏中,每一步操作都需要上链,这导致交互时间较长,用户体验较差。理想情况或目标:通过在 Solidity 合约中使用零知识证明 (ZKP) 加速游戏性能。具体目标是确保游戏的过程不上链,但同时防止作弊。玩家的每一步操作会生成 ZKP 证明,最后将结果证明发送到智能合约进行验证。研究过程、思路与挑战:**游戏过程与结果的防作弊:**仅对游戏结果生成 ZKP 证明是不够的,因为游戏的过程同样存在作弊的可能性。因此,既要对结果生成证明,也需要对游戏过程进行验证。**逐步生成证明的技术挑战:**为了防止作弊,希望可以在游戏的每一步操作后生成一个 ZKP 证明,最终在游戏结束时将最后一个证明上链进行验证。这个过程中,每一步的证明都会依赖于前一步的证明,直到游戏结束为止。但难题是:每次生成证明时需要依赖前一步的证明,这使得验证过程复杂化以及不确定能否实现,并且验证是在合约端做,第二次生成证明时又如何去验证第一步的证明是正确的。在智能合约端验证每个步骤的证明是否正确时,如何确保每个证明与前一个证明的连贯性,这是一个不确定的问题。公开游戏数据的问题: PopCraf...