我有一个问题,我一直没能弄清楚,如下所示:假设我有一个游戏运行在区块链(一个坚固/聪明的合同游戏),其中有有限的土地,人们可以购买。隐藏在每一块土地上的是一些资源和物品--这些是游戏开发人员(me)事先就知道的,并且以加密的方式存储在IPFS或类似的东西上。拥有这些地块的游戏玩家必须采取各种行动,以某种方式探索这块土地。在每次行动结束时,聪明的契约应该向玩家揭示(A)是否由于玩家的行动而发现任何隐藏的项目;(B)如果发现了,项目到底是什么以及它的所有特征是什么。
我在网上看到的大多数关于IPFS数据加密存储的信息都是关于玩家/用户如何以加密的方式存储自己的数据。但是在我的例子中,我希望数据对所有玩家都是隐藏的,并且只能被聪明的契约所访问。实际上,即使是智能契约也不应该能够完全访问数据--智能契约应该只能回答玩家的行为是否导致隐藏项被发现的问题。这表明我真正需要的是IPFS上的一个层,其功能只有智能契约才能访问,它可以使用播放机的一系列操作和加密数据(这些数据可能已经被先前的操作更新)来回答有关发现隐藏项的问题。
我知道Chainlink可能有一些解决方案的元素,但不幸的是,Chainlink的成本对于任何重复操作的人来说都是令人望而却步的--比如每个请求0.1-0.2链接,结果大约是2-5美元。
还有其他人遇到过这样的问题吗?我该怎么解决呢?
发布于 2021-09-22 08:19:08
看看黑暗森林的密码迷雾的战争。
它没有直接回答你的问题,因为它不是智能合同解密有关IPFS的数据(我认为合同不能这样做),但是你对隐藏地图项目的描述让我想起了很多黑暗森林。
“黑暗森林”背后的一个核心理念是战争的保密密码迷雾。在黑暗森林中,玩家不会将他们征服的行星坐标提交给核心智能契约,而是向他们的行星位置提交承诺(通过散列行星坐标),以及零知识证明哈希是有效的。这会让行星的位置保持秘密。
他们使用零知识,这样用户就可以证明他们知道地图上的内容,而不显示地图上的内容。为了揭示地图上的区域,你必须从根本上对这些区域施加暴力,这就像一个揭示特征的工作证明,并且必须由用户在当地完成。
https://ethereum.stackexchange.com/questions/110350
复制相似问题