EigenLayer生态中的一个AVS——Brevis,其亮点是提供去中心化的ZK协处理器。但是ZK协处理器是什么?为何说其可以真正提升区块链的效能?Rollups难道还不够吗?本文将简单介绍。
内容目录
Toggle
ZK协处理器想解决什么问题?
使用场景:产品数据搜集与计算
问题一:区块链虚拟机不适合大量运算
问题二:套用外部数据有信任假设问题
Web3数据的两难
ZK协处理器介绍
将计算工作从EVM独立出来
ZK协处理器如何避开上述问题
ZK协处理器与Rollups提升的效率不同
ZK协处理器实作项目介绍
Brevis
Axiom
ZK协处理器不是唯一解
现有的Web3产品,总觉得好像少点什么功能,就是跟Web2产品有落差,像是自动推荐、忠诚度计划、精准营销等,这些在传统软件已经行之有年的标配,为何在Web3的产品中没有看到?
举个更具体的例子,某用户上Netflix看影集,后台会搜集用户所有的观看记录与操作行为,藉由搜集这些数据,经过算法计算后找到用户可能喜爱的内容,最后进行个性化的推播与广告。
但是在Web3生态中,某用户在Uniswap常常使用稳定币交易对,将USDT兑换成USDC,为何Uniswap的界面无法将这名用户常使用的交易对自动显示呢?
其实上述问题出在「数据」,Web2的产品能有系统地搜集并对数据进行计算,就像是搜集用户观看记录,但是Web3产品则不行,就算只是简单的交易记录。
可能有读者会问「交易记录不是本来就在区块链上吗?为何会无法读取?」其实还真的不行,又或者更精确地说:成本很高、不然就要承担风险。
要做到上述应用场景,需要做到许多计算资源,再以Uniswap的例子来说,如果要做到「历史交易对自动显示在首页,方便用户更快完成目的。」会需要以下努力:
搜集用户交易记录
比较各种交易记录使用次数并选出最高者
执行
最后一部执行基本上现在智能合约就做得很好了,有问题的是前两步骤。
针对第一步,虽然交易记录都在链上没错,但是虚拟机跟区块链历史账本是两回事,虚拟机要读取历史账本会需要非常多的燃料费用。且每次要调用就用重新读取一次或是储存,但不管什么做法都非常耗费资源,不适合在分散式虚拟机使用。
第二步则是数据的处理,虽然相对简单,但因为在EVM之上也同样需要大量资源去计算,若问题再难一点(例如分析用户观看纪录与观看时间决定等等要推播的内容),那么绝对是项目无法负担的成本。
不论是Layer1还是Layer2,其原本设计都不适合读取大量数据或是计算的任务,区块链TPS再高仍对此问题没有帮助。
「如果链上无法计算,那就链下处理吧!」这是非常合理的思路,包含Etherscan、Dune、DeBank等服务都是使用此方式,确实可以解决许多问题。
但是如果这些链下计算结果跟庞大的TVL或是用户权益有关系,那么其中的信任假设风险带来的风险就会增加。
像是区块链空投,判定规则就算是公开的,但实际上进行筛选行为还是由团队负责,最后在公开结果,但这之间存在信任假设(怎么知道团队没有作弊),也难怪每次空投社群常常出现争议与怨言。更别说真的有问题的数据会造成什么后果。
因此,链下计算这条路在许多应用场景似乎也不可行。
这样就会出现两难,若直接抓取数据并计算成本太高昂,但如果使用链下计算结果则增加信任假设。也难怪目前没有原生使用Web3数据的服务出现。
所有主流的Web2应用与产品,几乎都是藉由数据打造体验并维持优势,而Web3若真的想打造「杀手级应用」的目标,数据虽然不是全部但绝对必要。
因此,市场出现ZK协处理器的概念尝试解决此问题,同时做到链下计算但又可以不增加信任假设,完美地解决此问题。
ZK协处理器(ZK Coprocessor)又称为ZK辅助处理器,其核心概念是将EVM不擅长计算的部分拉出来,藉由链下计算与零知识证明,做到同时高效率且无需信任,进一步增加区块链的效率。
协处理器的名称其实就是从CPU与GPU之间的关系而来的,GPU将CPU不擅长大量针对图像运算的工作拿来做,藉由这种辅助专业分工,最大化电脑效率。而区块链其实也就是一种去中心化的电脑,当然也可以使用类似的做法。
协处理器抽象来看,主要就是把两件事做好:
数据读取:读取区块链账本中的交易记录,并透过ZK证明数据真伪。
数据计算:根据数据与需求做出相应的计算,并再次透过ZK证明结果真伪。
最后再把数据回传给智能合约,智能合约可以藉由零知识证明以低成本的方式快速验证与使用,最大化增加执行效率。
ZK协处理器更多的是在提升前端的过程,也就是数据搜集与数据处理的效率,而Rollups则是提升数据处理与执行的效率,两者并不是竞争者,更像是互补的关系。
ZK协处理器目前主流的项目包含Brevis、Herodotus、Axiom等,核心运作概念如同上述内容,不过实作上的手段有些许差异。
Brevis是由Celer Network相同团队成员创办,该服务架构可以分为三部分:
zkFabric:负责搜集区块链上的数据,并将区块链头信息计算零知识证明。
zkAggregatorRollup:负责储存数据并传输给区块链上的智能合约,包含zkFabric搜集到的数据与zkQueryNet。
zkQueryNet:处理Web3智能合约所需要的数据与运算。
Axiom的服务是提供无需信任的区块链查询服务,与上述中心化的链下查询架构不同,Axiom所提供的数据都可以藉由零知识证明确认数据正确性。
ZK协处理器可以解决Web3数据搜集与计算的问题,对于提升产品使用体验与精准营销都是非常关键的。
但其实如果要解决「区块链上的数据运算」,还有其他解决方式,例如Smart Layer就是利用附加外部数据的方式,可以做到相同的事情,但其信任假设风险则取决于Smart Layer网络本身的安全性。
推荐阅读:
Smart Layer是什么?如何将Web3与现实生活真实场景结合?
推荐原因:该文章详加介绍Smart Layer的设计架构与运作原理,非常推荐可以与此文章相互参照,可以对于ZK协处理器想解决的问题有更立体的认识。
若是相对不重要的信息,当然也可以直接仰赖链下计算,而不用所有信息都要完全无需信任,重要的还是解决什么问题。
Brevis
ZK Coprocessor
ZK协处理器
零知识证明
衍伸阅读
EigenLayer即将发币!第一批AVS能提供哪些真实用例?
zkSync拥有什么技术创新?为何有机会影响现有Rollups生态?