zkWASM:ZK+zkVM的下一站?

1. 引言

在这里插入图片描述
在这里插入图片描述
ZK技术具备极大通用性,也帮助以太坊从去中心化投资走向去信任化的价值观。“Don’t trust, Verify it!”,是ZK技术的最佳实践。ZK技术能够重构链桥、预言机、链上查询、链下计算、虚拟机等等一系列应用场景,而通用型的ZK协处理器就是实现ZK技术落地的工具之一。对于ZK协处理器,其应用边界之广,任何真实的dapp应用场景都能覆盖,从理论上来说,任何Web2应用能做到的事情,有了ZK处理器就都能实现。

NEAR 和 Polygon 等团队认为:

  • EVM 是以太坊生态系统的完美补充。EVM 不是能够将所有虚拟机整合在一起的唯一虚拟机。
  • WASM 与 Cosmos 等竞争生态系统的联系更为紧密(Cosmos 甚至举办了一场专门讨论 CosmWASM 的会议)。
  • WASM有望能将所有VM整合。
  • WASM为Web2开发者,解锁了Web3。开发者只需用其熟悉的语言来使用尖端科技。
    • WASM 是除 HTML、CSS 和 JavaScript 之外的四种 Web 语言之一。
    • 所有 Web 浏览器都支持WASM,并且允许任何编译为WASM的编程语言在 Web 上运行。
    • 因此,能够编写编译为 WASM 的代码的开发人员数量远远超过能够编写 Solidity 的开发人员。
  • zkVM将成为为ZK开发的圣杯。(见2022年11月15日以太坊基金会视频Solidity Dev to ZK Dev: Why and How You Should Start ZK Dev Now)
  • 通用zkVM是Web3的未来。
    • 通用的 zkVM 不仅可完成 zkEVM 所能完成的任务(方便 Web3 开发者上手),还可从 Web2 所有成熟的生态系统和工具链中获得强大的支持。

zkWASM是:

  • ZK Web Assembly的缩写
  • 描述了生成计算证明的虚拟环境。
  • 由zkWASM VM运行代码代码,用户进行验证,而用户无需运行整个计算。
    • Prover:获取初始状态,运行程序,然后使用witness进行计算,输出最终状态和proof。
    • Verifier:验证proof。大大降低计算要求。

当前:

  • Cosmos 认为 CosmWASM 是在其多链生态系统中构建强大、安全的 dApp 的安全引擎。
  • Polkadot 强调 WASM 是任何去中心化系统开发的基础。
  • Solana 的 NEON EVM 允许部署 WASM 智能合约以及原生 Solana 合约。
  • Axelar 和 LayerZero 都使用 WASM 来促进跨链互操作性,以实现链之间的高效通信。
  • NEAR 和 Polygon 共同致力于开发 zkWASM 环境。拒绝各自为营,坚信推动该领域发展的是合作而不是零和思维。

2. ZK魔力

ZK技术可用于解决区块链中的各种问题:
在这里插入图片描述
见2022年11月15日以太坊基金会视频Solidity Dev to ZK Dev: Why and How You Should Start ZK Dev Now:
在这里插入图片描述
在这里插入图片描述

3. 何为zkVM?

在这里插入图片描述
上图摘自Polygon Miden创始人Bobbin Threadbare Feeding Program Source Code to ZK VMs

zkVM:

  • 为通过ZKP来保证安全和可验证可信的虚拟机。
  • 以无需信任的方式输出新状态和证明。
  • 让所有运行在虚拟机中的应用程序都拥有零知识证明的超能力。
  • 开发人员只需要一个可以在 zkVM 中运行的程序,zkVM 会处理其余所有事情。

根据2022年9月27日视频ZK8: How to build a zk-VM - Ferdinand Sauer - Neptune,zkVM的构建,本质分为3步:

  • 1)创建虚拟机(实现虚拟机的所有指令集)。有很多指令集可供选择,如WASM、RISC-V、EVM bytecode、新的定制指令集等。不同的指令集有不同的特性:
    在这里插入图片描述

  • 2)添加SNARK/STARK引擎(添加证明系统)

  • 3)将 ZK 添加到 SNARK/STARK 引擎(启用隐私)

在这里插入图片描述
目前最为知名的 zkVM 可能就是以太坊 Layer2 的 zkEVM。

4. ZK协处理器

在传统的世界中,处理器也没有一个正式定义,只要能作为协助协助完成任务的单独芯片都叫处理器。 当前业内对ZK处理器的定义并不完全相同,如ZK-Query、ZK-Oracle、ZKM等都是协处理器,能够协助查询链上的完整数据、链下的可信数据以及链下的计算结果,从这个定义来看,实际上layer2也算是以太坊的协处理器。
在这里插入图片描述

目前业内比较知名的协处理分成三大部分,分别是:

  • 链上数据索引
  • 预言机
  • ZKML

这三大应用场景,而三种场景都包含的项目为General-ZKM,在链下运行的虚拟机又各有不同,如Delphinus 的zkWASM,和Risc Zero 的Risc-V架构。

在这里插入图片描述

4.1 协处理器 vs. Layer2

与Layer2不同的是:

  • 协处理器是面向应用的
  • 而Layer2仍然是面向客户端的。

协处理器可作为一个加速组件或者模块化的组件,构成以下几种应用场景:

  • 1)作为ZK Layer2的链下虚拟机组件,这些Layer2可以将自己的VM换成协处理器。
  • 2)作为公链上应用offload算法到链下的处理器。
  • 3)作为公链上应用程序获取其它链可验证的数据机。
  • 4)作为一条链上跨链桥的传递渠道。

对于处理器来说,需要了解其带来了全链的同步数据与高性能节点可信计算的潜力,能够通过处理器重构几乎整个区块链的所有中间件。包括:

  • Chainlink、The Graph目前也在开发自己的ZK预言机
  • 跨链桥如Wormhole、Layerzero等也在研发基于ZK的跨链桥技术
  • 链下的LLMs(大模型预言)的训练以及可信推理
  • 等等。

4.2 协处理器遇到的问题

协处理器遇到的问题:

  • 1)有影响力,ZK技术从业,但是技术点仍然在不断发展,因此,由于掌握技术,可能更多地关注自身,从而进一步提高工作效率。
  • 2)zkVM 性能非常复杂涉及多个维度(包括硬件、单节点与多节点性能、内存使用、递归成本、哈希函数选择等因素),目前各个维度都有在构建项目中,性能处于非常早期,并且还不明朗。
  • 3)从硬件来看,目前主流的ASIC以及FPGA方式构建,厂商包括Ingonyama、Cysic等,也仍然处于实验室阶段,仍未商业化落地,期待硬件是ZK技术大规模落地的前提。
  • 4)技术路径相似,很难在技术上隔代领先,目前主要比较拼的VC资源以及团队BD能力,是否能拿下主流应用和公链的生态位。

参考资料

[1] NEARWEEK 2024年3月14日博客 zkWASM: The VM to rule them all?
[2] Hyper Oracle 2022年11月26日博客 zkWASM, The Next Chapter of ZK and zkVM
[3] Gate Ventures 2024年6月20日博客 “ZK” Is All You Need

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】镜像

目录 1. 镜像拉取 2. 镜像查询 3. 镜像导出 4. 镜像上传 5. 镜像打标签 6. 镜像上推 7. 镜像删除 8. 镜像运行及修改 8.1 在registry 节点运行 mariadb 镜像,将宿主机 13306 端口作为容器3306 端口映射 8.2 查看容器ID 8.3 进入容器 8.4 创建数据库xd_d…

SK Hynix 3D DRAM良率突破56.1%,开启存储新时代

根据韩国财经媒体Business Korea独家报道:在刚刚结束的VLSI 2024国际研讨会上,韩国半导体巨头SK Hynix公布了一项振奋人心的进展:其五层堆叠3D DRAM的制造良率已达到56.1%。此成果标志着3D DRAM技术在商业化道路上迈出了坚实的一步&#xff0…

JUC 队列

常见的阻塞队列 Queue接口 public interface Queue<E> extends Collection<E> {//添加一个元素&#xff0c;添加成功返回true, 如果队列满了&#xff0c;就会抛出异常boolean add(E e);//添加一个元素&#xff0c;添加成功返回true, 如果队列满了&#xff0c;返回…

sudo 权限之危险的 bash 命令

文章目录 [toc]事出有因干就完事了创建用户配置 sudo 权限sudo 验证使用 bash 命令执行 chmod 命令使用 bash 命令执行删根 事出有因 使用普通用户安装 tidb 时&#xff0c;发现报错了&#xff0c;报错内容如下&#xff1a; ERROR SSHCommand {"host": "…

三十九篇:UML与SysML:掌握现代软件和系统架构的关键

UML与SysML&#xff1a;掌握现代软件和系统架构的关键 1. 引言 1.1 为什么系统设计如此关键 在当今快速发展的技术环境中&#xff0c;系统设计的重要性不言而喻。无论是软件开发还是复杂的系统工程&#xff0c;良好的设计是确保项目成功的基石。系统设计不仅关系到功能的实现…

【Windows】Windows 10 + PowerToys 快捷键

1、Windows 10 快捷键2、PowerToys 快捷键2.1、始终置顶2.2、颜色选择器2.3、打开FancyZones编辑器2.3.1、FancyZones编辑器编辑布局2.3.2、将窗口放置到指定区域 2.4、鼠标实用工具2.4.1、查找我的鼠标2.4.2、启用/关闭鼠标荧光笔2.4.3、启用/关闭鼠标跳转2.4.4、 启用/关闭鼠…

Spring统一功能

文章目录 一、什么是统一功能二、拦截器2.1 什么是拦截器2.2 拦截器的使用2.3 案例&#xff1a;不拦截前端的请求2.4 拦截器是如何实现的 ---- >分析DispatcherServlet源码分析 三、适配器模式四、统一数据返回格式五、统一异常六、案例&#xff1a;在图书管理系统使用统一功…

【Linux】锁|死锁|生产者消费者模型

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ ​ 访问互斥 …

ChatGPT在程序开发中的应用:提升生产力的秘密武器

在当今飞速发展的科技时代&#xff0c;程序开发已经成为许多企业和个人必不可少的技能。然而&#xff0c;编写代码并非总是顺风顺水&#xff0c;面对复杂的算法、繁琐的调试、持续不断的需求变更&#xff0c;程序员们常常感到压力山大。在这种情况下&#xff0c;ChatGPT应运而生…

ArkTS开发系列之Web组件的学习(2.9)

上篇回顾&#xff1a;ArkTS开发系列之事件&#xff08;2.8.2手势事件&#xff09; 本篇内容&#xff1a; ArkTS开发系列之Web组件的学习&#xff08;2.9&#xff09; 一、知识储备 Web组件就是用来展示网页的一个组件。具有页面加载、页面交互以及页面调试功能 1. 加载网络…

深度学习(理论知识)

一、监督学习、自监督和半监督 1、监督学习&#xff08;Supervised Learning&#xff09; 概念 监督学习是一种机器学习方法&#xff0c;通过使用带标签的数据进行训练&#xff0c;模型学习从输入到输出的映射关系。数据集中的每个样本都包含输入特征&#xff08;features&am…

【前端】实现时钟网页

【前端】实现时钟网页 文章目录 【前端】实现时钟网页项目介绍代码效果图 项目介绍 时钟显示在网页中央&#xff0c;并且使网页能够切换白天和夜晚两种模式。搭建基本的html结构&#xff0c;动态得到实时的时&#xff0c;分&#xff0c;秒 通过Date()函数获得。将得到的数字根…

力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列)

力扣爆刷第153天之TOP100五连刷26-30&#xff08;接雨水、环形链表、最长上升子序列&#xff09; 文章目录 力扣爆刷第153天之TOP100五连刷26-30&#xff08;接雨水、环形链表、最长上升子序列&#xff09;一、300. 最长递增子序列二、415. 字符串相加三、143. 重排链表四、42.…

Flutter页面状态保留策略

目的: 防止每次点击底部按钮都进行一次页面渲染和网络请求 1. 使用IndexedStack 简单,只需要把被渲染的组件外部套一层IndexedStack即可 缺点: 在应用启动的时候,所有需要保存状态的页面都会直接被渲染,保存起来. 对性能有影响 2. 使用PageController 实现较为复杂,但是不用…

软件构造 | 期末查缺补漏

软件构造 | 期末查缺补漏 总体观 软件构造的三维度八度图是由软件工程师Steve McConnell提出的概念&#xff0c;用于描述软件构建过程中的三个关键维度和八个要素。这些维度和要素可以帮助软件开发团队全面考虑软件构建的方方面面&#xff0c;从而提高软件质量和开发效率。 下…

利用LinkedHashMap实现一个LRU缓存

一、什么是 LRU LRU是 Least Recently Used 的缩写&#xff0c;即最近最少使用&#xff0c;是一种常用的页面置换算法&#xff0c;选择最近最久未使用的页面予以淘汰。 简单的说就是&#xff0c;对于一组数据&#xff0c;例如&#xff1a;int[] a {1,2,3,4,5,6}&#xff0c;…

2024年6月26日 (周三) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键&#xff0c;实现一键唤起、一键隐藏的 Windows 工具&#xff0c;并且支持窗口动态绑定快捷键&#xff08;无需设置自动实现&#xff09;。 土豆录屏: 免费、无录制时长限制、无水印的录屏软件 《Granblue Fantasy Versus: Risi…

PS教程29

图层蒙版 以案例来解释蒙版的作用 将这两张图片原框背景切换将图二的背景选中使用套索工具选中区域切换图一CtrlA全选CtrlC复制编辑-选择性粘贴-贴入即可贴入如果位置不对用移动工具进行调整 这就是图层蒙版 图层蒙版本质作用&#xff1a;是临时通道&#xff0c;支持黑白灰三种…

Linux开发讲课16--- 【内存管理】页表映射基础知识2

ARM32页表和Linux页表那些奇葩的地方 ARM32硬件页表中PGD页目录项PGD是从20位开始的&#xff0c;但是为何头文件定义是从21位开始&#xff1f; 历史原因&#xff1a;Linux最初是基于x86的体系结构设计的&#xff0c;因此Linux内核很多的头文件的定义都是基于x86的&#xff0c…

Java中Collection的成员及其特点

Collection集合 list集合系列 ArrarList集合 底层基于数组来实现 查询速度快&#xff08;根据索引查询数据&#xff09; 删除效率低&#xff08;可能需要把后面很多的数据往后移&#xff09; 添加效率…