通过ZKP对PopCraft游戏性能优化的探索
问题背景在 PopCraft 游戏中,每一步操作都需要上链,这导致交互时间较长,用户体验较差。理想情况或目标:通过在 Solidity 合约中使用零知识证明 (ZKP) 加速游戏性能。具体目标是确保游戏的过程不上链,但同时防止作弊。玩家的每一步操作会生成 ZKP 证明,最后将结果证明发送到智能合约进行验证。研究过程、思路与挑战:**游戏过程与结果的防作弊:**仅对游戏结果生成 ZKP 证明是不够的,因为游戏的过程同样存在作弊的可能性。因此,既要对结果生成证明,也需要对游戏过程进行验证。**逐步生成证明的技术挑战:**为了防止作弊,希望可以在游戏的每一步操作后生成一个 ZKP 证明,最终在游戏结束时将最后一个证明上链进行验证。这个过程中,每一步的证明都会依赖于前一步的证明,直到游戏结束为止。但难题是:每次生成证明时需要依赖前一步的证明,这使得验证过程复杂化以及不确定能否实现,并且验证是在合约端做,第二次生成证明时又如何去验证第一步的证明是正确的。在智能合约端验证每个步骤的证明是否正确时,如何确保每个证明与前一个证明的连贯性,这是一个不确定的问题。公开游戏数据的问题: PopCraf...
通过ZKP对PopCraft游戏性能优化的探索
问题背景在 PopCraft 游戏中,每一步操作都需要上链,这导致交互时间较长,用户体验较差。理想情况或目标:通过在 Solidity 合约中使用零知识证明 (ZKP) 加速游戏性能。具体目标是确保游戏的过程不上链,但同时防止作弊。玩家的每一步操作会生成 ZKP 证明,最后将结果证明发送到智能合约进行验证。研究过程、思路与挑战:**游戏过程与结果的防作弊:**仅对游戏结果生成 ZKP 证明是不够的,因为游戏的过程同样存在作弊的可能性。因此,既要对结果生成证明,也需要对游戏过程进行验证。**逐步生成证明的技术挑战:**为了防止作弊,希望可以在游戏的每一步操作后生成一个 ZKP 证明,最终在游戏结束时将最后一个证明上链进行验证。这个过程中,每一步的证明都会依赖于前一步的证明,直到游戏结束为止。但难题是:每次生成证明时需要依赖前一步的证明,这使得验证过程复杂化以及不确定能否实现,并且验证是在合约端做,第二次生成证明时又如何去验证第一步的证明是正确的。在智能合约端验证每个步骤的证明是否正确时,如何确保每个证明与前一个证明的连贯性,这是一个不确定的问题。公开游戏数据的问题: PopCraf...
MUD开发过程总结
开发的游戏:https://mud.pixelaw.xyz/PixeLAW Corepaint、snake、2048、15puzzle、pop starMUD的优点在开发这些游戏中体验到的MUD的优点(以下仅对我们所使用到的方面进行评价,可能并不全面):数据处理和同步的便利性 在构建全链游戏时,智能合约的编写只是其中的一部分。然而,处理前端数据获取和页面渲染等任务却并非易事。传统的方法中,数据结构由合约定义,并存储在链上,而前端则需要通过RPC获取并处理这些数据,这既效率低下又复杂。然而,MUD框架提供了大量开箱即用的功能,利用标准化存储协议构建了熟悉的数据模型。这样它提供了一个索引器,使得前端程序可以轻松地获取链上数据并保持与链上数据的同步。这使得开发变得更加便捷和高效。减少开发成本和学习曲线 另一个MUD框架的优点在于,如果不使用它,构建全链游戏将会面临巨大的挑战。以 pixeLAW 为例,从零开始构建前端、后端以及二者之间的交互,还需考虑合约中的访问权限控制和数据处理等方面,这将需要大量精力和时间。前端部分,本身对于前端不熟练的我,需要掌握如何构建页面、如何处理数据索引以及...
MUD开发过程总结
开发的游戏:https://mud.pixelaw.xyz/PixeLAW Corepaint、snake、2048、15puzzle、pop starMUD的优点在开发这些游戏中体验到的MUD的优点(以下仅对我们所使用到的方面进行评价,可能并不全面):数据处理和同步的便利性 在构建全链游戏时,智能合约的编写只是其中的一部分。然而,处理前端数据获取和页面渲染等任务却并非易事。传统的方法中,数据结构由合约定义,并存储在链上,而前端则需要通过RPC获取并处理这些数据,这既效率低下又复杂。然而,MUD框架提供了大量开箱即用的功能,利用标准化存储协议构建了熟悉的数据模型。这样它提供了一个索引器,使得前端程序可以轻松地获取链上数据并保持与链上数据的同步。这使得开发变得更加便捷和高效。减少开发成本和学习曲线 另一个MUD框架的优点在于,如果不使用它,构建全链游戏将会面临巨大的挑战。以 pixeLAW 为例,从零开始构建前端、后端以及二者之间的交互,还需考虑合约中的访问权限控制和数据处理等方面,这将需要大量精力和时间。前端部分,本身对于前端不熟练的我,需要掌握如何构建页面、如何处理数据索引以及...
ZK-Rollup
什么是零知识证明 (Zero Knowledge Proof)?零知识证明可以让一方 (证明方) 在不透露任何实际信息的情况下向另一方 (验证方) 证明某保密信息或声明是真的。 为什么需要零知识证明?当我们不想披露任何信息,但需要说服其他人相信我们知道的保密信息和提出的声明是真的时候。 目前有两种零知识证明: 1.交互式的 (Interactive) 2.非交互式的 (Non Interactive): (非交互式证明是指证明者可以将证明发送给验证者,而无需任何进一步的通信或信息交换。这使得证明系统更加高效和实用。此属性是通过称为Fiat-Shamir 启发式的过程实现的。)区块链扩容 - RollupsRollup 是一种扩容解决方案,在 L1 外执行交易,但在 L1 上发布交易数据。这种工作办法可以让 rollup 对网络进行扩容,但依然受到以太坊共识的安全保护。 将计算转移到链下进行,实际上可以处理更多交易。因为只需要将 rollup 交易的一些数据放进以太坊区块中。 要做到这一点,rollup 交易在另一条链上执行,而这条链甚至可以运行一个 rollup 特定版本的 EV...
ZK-Rollup
什么是零知识证明 (Zero Knowledge Proof)?零知识证明可以让一方 (证明方) 在不透露任何实际信息的情况下向另一方 (验证方) 证明某保密信息或声明是真的。 为什么需要零知识证明?当我们不想披露任何信息,但需要说服其他人相信我们知道的保密信息和提出的声明是真的时候。 目前有两种零知识证明: 1.交互式的 (Interactive) 2.非交互式的 (Non Interactive): (非交互式证明是指证明者可以将证明发送给验证者,而无需任何进一步的通信或信息交换。这使得证明系统更加高效和实用。此属性是通过称为Fiat-Shamir 启发式的过程实现的。)区块链扩容 - RollupsRollup 是一种扩容解决方案,在 L1 外执行交易,但在 L1 上发布交易数据。这种工作办法可以让 rollup 对网络进行扩容,但依然受到以太坊共识的安全保护。 将计算转移到链下进行,实际上可以处理更多交易。因为只需要将 rollup 交易的一些数据放进以太坊区块中。 要做到这一点,rollup 交易在另一条链上执行,而这条链甚至可以运行一个 rollup 特定版本的 EV...

训如何训练精通特定领域的大语言模型
前言2022年11月ChatGPT发布了3.5版本,迅速成为了炙手可热的大语言模型。短时间内,网络上涌现出了许多基于ChatGPT的想法和应用。 ChatGPT展现了其毋庸置疑的强大能力,同时我们发现它在特定领域的能力依然不够突出。因此我们在思考:能否基于 ChatGPT 训练出一个专精于特定领域大语言模型,使之在该领域的认知更深入、更精准。 以 Metaverse 领域为例,在MetaCat官网中有大量 Metaverse 领域研究的重要文章,因此,我们在寻找一种方法能够将这些文章所传达观点、思维方式赋予类似 ChatGPT 的大语言模型,使之成为一个像 MetaCat 一样具备 Metaverse 领域深度见解的大语言模型,以下是探索过程。调研:寻找训练出专属数据的“ChatGPT”的方式我们开始时寻找是否已经有一个模型或者通过对现有模型的训练可以满足需求。通过查阅文档和进行初步的调研,预选了三种方式:LlamaIndex(原GPT-Index)GPT微调(Fine-tuning)BERT微调LlamaIndex:简单了解了一下它的作用和工作原理 LlamaIndex是一种面...

训如何训练精通特定领域的大语言模型
前言2022年11月ChatGPT发布了3.5版本,迅速成为了炙手可热的大语言模型。短时间内,网络上涌现出了许多基于ChatGPT的想法和应用。 ChatGPT展现了其毋庸置疑的强大能力,同时我们发现它在特定领域的能力依然不够突出。因此我们在思考:能否基于 ChatGPT 训练出一个专精于特定领域大语言模型,使之在该领域的认知更深入、更精准。 以 Metaverse 领域为例,在MetaCat官网中有大量 Metaverse 领域研究的重要文章,因此,我们在寻找一种方法能够将这些文章所传达观点、思维方式赋予类似 ChatGPT 的大语言模型,使之成为一个像 MetaCat 一样具备 Metaverse 领域深度见解的大语言模型,以下是探索过程。调研:寻找训练出专属数据的“ChatGPT”的方式我们开始时寻找是否已经有一个模型或者通过对现有模型的训练可以满足需求。通过查阅文档和进行初步的调研,预选了三种方式:LlamaIndex(原GPT-Index)GPT微调(Fine-tuning)BERT微调LlamaIndex:简单了解了一下它的作用和工作原理 LlamaIndex是一种面...

探秘Web2中的IFTTT与Web3中的Drippie: 底层原理解析与对比
导语IFTTT和Drippie都是用于自动化任务的工具,实现如果这样(this) 那就那样(that) 的需求。IFTTT已经发展了许多年,而Drippie是新生的产品。他们目标是一致的,但是实现的技术以及面向的对象有所区别,接下来看一看成熟的IFTTT和 新生的Web3 IFTTT——DrippieIFTTT介绍IFTTT (If This Then That) 是一款服务,提供了一种简单的方式来自动化各种日常任务。通过 IFTTT,用户可以将不同的应用程序和服务连接起来,然后创建称为“Applets”(也可以叫做Recipes)的自动化规则,使得在一个应用程序中发生的事件能够自动地触发另一个应用程序的响应。例如,用户可以创建一个Applets:如果他们的Twitter收到消息,那么就把这个消息发送到他们Gmaill。实现由于IFTTT集成了许多第三方服务,也会存在大量的Applets,那么对于数据的处理架构就需要非常完善严谨。 数据处理的基础架构:AWS Data Pipeline:AWS Data Pipeline 是一种自动化的 ETL(Extract, Transfor...

探秘Web2中的IFTTT与Web3中的Drippie: 底层原理解析与对比
导语IFTTT和Drippie都是用于自动化任务的工具,实现如果这样(this) 那就那样(that) 的需求。IFTTT已经发展了许多年,而Drippie是新生的产品。他们目标是一致的,但是实现的技术以及面向的对象有所区别,接下来看一看成熟的IFTTT和 新生的Web3 IFTTT——DrippieIFTTT介绍IFTTT (If This Then That) 是一款服务,提供了一种简单的方式来自动化各种日常任务。通过 IFTTT,用户可以将不同的应用程序和服务连接起来,然后创建称为“Applets”(也可以叫做Recipes)的自动化规则,使得在一个应用程序中发生的事件能够自动地触发另一个应用程序的响应。例如,用户可以创建一个Applets:如果他们的Twitter收到消息,那么就把这个消息发送到他们Gmaill。实现由于IFTTT集成了许多第三方服务,也会存在大量的Applets,那么对于数据的处理架构就需要非常完善严谨。 数据处理的基础架构:AWS Data Pipeline:AWS Data Pipeline 是一种自动化的 ETL(Extract, Transfor...