当前位置: 首页 > news >正文

Polygon Miden VM架构总览

1. 计算类型

Programs程序有2种类型:

  • 1)Circuit电路:即,程序即电路。将程序转换为电路。
  • 2)Virtual machine虚拟机:即,程序为电路的输入。【Miden VM属于此类型】
    在这里插入图片描述

2. 何为ZK virtual machine?

常规虚拟机为:

  • 输入有:
    • 初始状态
    • 待执行程序
  • 输出有:
    • 基于初始状态,执行完该程序后的最终状态。
      在这里插入图片描述

Zero-Knowledge(ZK)虚拟机为:

  • 输入有:
    • 初始状态
    • 待执行程序:可为公开输入,也可为隐私输入。
    • witness(可选项,用作private input)
  • 输出有:
    • 基于初始状态,执行完该程序后的最终状态。
    • 相应的proof
      在这里插入图片描述

使用ZK虚拟机的好处在于:

  • 1)易于使用:无需学习密码学知识和ZKP系统知识。
  • 2)通用性:图灵完备的ZK虚拟机,可为任意计算生成proofs。
  • 3)简单性:单个(相对)简单约束集合,可描述整个虚拟机。
  • 4)递归性:proof验证流程,可看成是执行在虚拟机上的另一程序。

ZK虚拟机的缺点在于:

  • 1)特殊的计算结构:并非所有的ZKP证明系统都可用于构建ZK虚拟机。如具有很多重复的结构,对于R1CS证明系统来说并不容易死。
    • 但对STARKs(AIR算术化➕FRI)证明系统来说,这不是问题。
  • 2)性能:专门定制的特殊电路可能会更快,特别是对于简单计算。【虚拟机模式有很多额外的开销,如对程序解码、对内存的随机访问等。对于简单计算来说,这些额外开销可能会超过实际电路。】
    • 不过,可在ZK虚拟机内部使用这种专门定制的特殊电路。

3. Polygon Miden VM架构

Polygon Miden VM设计时,做了如下选择:

  • 1)ZKP系统:为 STARKs ➕ multiset checks:快速且完美匹配机器计算。
  • 2)Prover:为 Winterfell:为以Rust编写的通用STARK prover。
  • 3)Field:为 Goldilocks域 2 64 − 2 32 + 1 2^{64}-2^{32}+1 264232+1:快速且完美匹配32位整数运算。
  • 4)Instruction Set指令集:为 定制指令集架构:基于Stack的、针对ZK优化的指令集架构,基于MAST的programs。

3.1 Polygon Miden VM组件

Polygon Miden VM 关键组件有:

  • Stack
  • Memory
  • Bus
  • Chiplets:专门定制的特殊电路。
  • Advice provider
    在这里插入图片描述

Chiplets为专门定制的特殊电路,当前有如下类型的chiplets:

  • 1)Range checks:
    • 16-bit range checks:Miden VM的内存会大量使用16-bit range checks,用于做32位运算,如将某域元素分解为2个32位value等。
  • 2)Rescue hash:
    • 2-to-1 hashes
    • Linear hashes
    • Merkle paths
  • 3)Bitwise operations:
    • 基于32位值的bitwise AND、XOR。

3.2 Polygon Miden VM Execution Trace

Miden VM execution trace结构为:
在这里插入图片描述
以stack execution trace为例:
在这里插入图片描述
其中还引入了overflow table:【实际实现时使用multi-set checks】

  • 1)当items无法放入stack的top 16 slots时,会将这些items推入到overflow table中。
  • 2)当有items从stack中移除时,会将overflow table中的items移回到stack中。

以hash chiplets为例:【通过bus,区分了stack trace和hasher trace。仍然需使用multi-set checks。】
在这里插入图片描述

4. Polygon Miden VM程序执行

Polygon Miden VM中:

  • 输入的程序采用Miden Assembly汇编语言编写。
  • 然后将用Miden Assembly汇编语言程序,编译为Program MAST。
  • 最终,在Miden VM中实际执行的是Program MAST。
    在这里插入图片描述

准确来说,Miden VM程序为VM指令的Merklized abstract syntax trees(MAST)。其具有如下关键属性:

  • 1)所有程序可被reduce为单个哈希(其MAST的root)。
  • 2)每个内部节点自身为某更小程序的MAST。
  • 3)program MAST的叶子节点,为(无control flow的)linear programs。

具体示例为:【join表示依次执行其左右子节点;split表示要么执行其左子节点,要么执行其右子节点。】
在这里插入图片描述

4.1 选择MAST的原因

选择MAST的原因在于:

  • 1)效率:在VM中仅需对所执行的代码进行哈希。
  • 2)安全性:所有已执行代码是静态已知的(无自修改代码 或 动态跳转)
  • 3)隐私:可支持隐私程序输入,该隐私程序具有公开的前置条件或后置条件。

参考资料

[1] 2022年9月Bobbin Threadbare分享视频 09 Miden VM architecture overview

Miden系列博客

  • zk、zkVM、zkEVM及其未来
  • Polygon L2扩容方案揭秘
  • STARKs and STARK VM: Proofs of Computational Integrity
  • Feeding Program Source Code to ZK VMs
  • 混合Rollup:探秘 Metis、Fraxchain、Aztec、Miden和Ola
  • Polygon Miden:扩展以太坊功能集的ZK-optimized rollup
  • Polygon Miden zkRollup中的UTXO+账户混合状态模型
  • Polygon Miden交易模型:Actor模式 + ZKP => 并行 + 隐私
  • Polygon Miden状态模型:解决状态膨胀,而不牺牲隐私和去中心化
  • Polygon Miden中的nullifier sets设计
  • Polygon Miden VM中的哈希函数对比
  • Polygon MidenVM中的recursive STARK verification优化

相关文章:

Polygon Miden VM架构总览

1. 计算类型 Programs程序有2种类型: 1)Circuit电路:即,程序即电路。将程序转换为电路。2)Virtual machine虚拟机:即,程序为电路的输入。【Miden VM属于此类型】 2. 何为ZK virtual machine…...

ultralytics yolov8 实例分割 训练自有数据集

参考: https://docs.ultralytics.com/datasets/segment/coco/ http://www.bryh.cn/a/613333.html 1、数据下载与转换yolo格式 1)数据集下载: 参考:https://universe.roboflow.com/naumov-igor-segmentation/car-segmetarion 下载的是coco格式,需要转换 2)coco2yolo t…...

linux之进程地址空间

文章目录 1.进程地址空间回顾1.1进程地址空间划分1.2验证进程地址空间划分1.简单划分2.完整划分 2.初探进程地址空间2.1初看现象2.2Makefile的简便写法 3.进程地址空间详解3.1地址空间是什么?3.2地址空间的设计/由来3.3空间区域划分3.4如何理解地址空间?3.5解释3.2的&#x1…...

Cloud微服务

当我们谈论“云微服务”时,通常是指基于云计算和微服务架构的应用程序开发和部署模型。以下是关于云微服务的一些详细信息: 微服务架构: 微服务架构是一种软件设计和开发模式,将应用程序划分为一组小型、独立的服务单元。每个服…...

BLIP-2:冻结现有视觉模型和大语言模型的预训练模型

Li J, Li D, Savarese S, et al. Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models[J]. arXiv preprint arXiv:2301.12597, 2023. BLIP-2,是 BLIP 系列的第二篇,同样出自 Salesforce 公司&…...

PyQt(学习笔记)

学习资料来源: PyQt快速入门——b站王铭东老师 PyQt官网的所有模块 C具体实现的官方文档 PyQt(学习笔记) PyCharm环境准备运行第一个程序QPushButtonQLabelQLineEdit调整窗口大小、位置、图标布局信号与槽PyQt引入多线程 PyCharm环境准备 新…...

策略模式应用(内窥镜项目播放不同种类的视频)

新旧代码对比 策略模式 基本概念 策略模式是一种行为设计模式,它定义了一系列算法,将每个算法封装起来,并且使它们可以互相替换。策略模式允许客户端选择算法的具体实现,而不必改变客户端的代码。这样,客户端代码就…...

【操作系统】Bochs安装和配置

Bochs是使用C编写的高度可移植开源IA-32(X86)PC模拟器,能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU,从386早期到最新的x86-64英特尔和AMD处理器甚至…...

【Vue】Node.js的下载安装与配置

目录 一.下载安装 官网: 二.环境变量的配置 三.设置全局路径和缓存路径 四.配置淘宝镜像 五.查看配置 六.使用npm安装cnpm ​ 一.下载安装 官网: https://nodejs.org/en/download 下载完之后,安装的时候一直点next即可&#xff0c…...

C语言从入门到实战——数组和指针的强化练习题

数组和指针的强化练习题 前言1. sizeof和strlen的对比1.1 sizeof1.2 strlen1.3 sizeof和strlen的对⽐ 2. 数组和指针笔试题解析2.1 一维数组2.2 字符数组2.3 二维数组 3. 指针运算笔试题解析3.1 题目1:3.2 题目23.3 题目33.4 题目43.5 题目53.6 题目63.7 题目7 前言…...

经典滑动窗口试题(一)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、将x减到0的最小操作数1、题目讲解2、讲解算法原理3、代码实现 二、无重复的最长子串1、题…...

【paddlepaddle】

安装paddlepaddle 报错 ImportError: /home/ubuntu/miniconda3/envs/paddle_gan/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/ubuntu/miniconda3/envs/paddle_gan/lib/python3.8/site-packages/paddle/fluid/libpaddle.so) 替换 /home/ubu…...

String 、StringBuffer 和 StringBuilder 的区别?

String 使用 String 声明一个字符串的时候,该字符串会存放在堆中的字符串常量池中。因为在java中所有的String 都是以常量表示,且由 final 修饰,因此在线程池中它的线程是安全的 且 不可变的 。每个 String 在被创建后就不再发生任何变化。 …...

【DevOps】Git 图文详解(六):Git 利器 - 分支

Git 利器 - 分支 1.分支 Branch2.分支指令 &#x1f525;3.分支的切换 checkout4.合并 merge & 冲突4.1 &#x1f538; 快速合并&#xff08;Fast forward&#xff09;4.2 &#x1f538; 普通合并4.3 处理冲突 <<<<<<< HEAD 5.变基 rebase 分支是从主…...

万界星空科技QMS质量管理系统介绍

QMS&#xff08;Quality Management System&#xff09;质量管理系统是五大基础系统之一&#xff0c;在工业企业中被广泛的应用&#xff0c;在质量策划、生产过程质量监督、体系审核和文档管理等业务上发挥着不可替代的作用。 一般制造业工厂现状&#xff1a;质量成本高&#x…...

C练习题_14

一、单项选择题&#xff08;本大题共 20小题&#xff0c;每小题 2分&#xff0c;共 40分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案&#xff0c;并将所选项前的字母填写在答题纸的相应位置上。) 以下叙述不正确的是&#xff08;&#xff09; A.一个C源程序可…...

解决方案 | 政策与技术加持,法大大电子劳动合同让人事管理更省心

政策加持&#xff0c; 助力劳动合同电子化推广 近年来&#xff0c;国家人社部多次发文&#xff0c;明确电子劳动合同法律效力&#xff0c;鼓励推广电子劳动合同全面应用&#xff0c;积极引导、支持企业和劳动者依法规范订立电子劳动合同&#xff0c;优化人力资源社会保障公共服…...

Linux基础命令5

su——切换用户命令 例如&#xff0c;切换到stu用户底下 而切换到管理员的命令就是下图 切换完的区别就是 stu——root $——# 退出——exit 关机与重启命令 如果在右上角直接点x号&#xff0c;就相当于把电源拔断了&#xff0c;这样做的次数多了&#xff0c;有可能系统就…...

springboot(ssm中医学习服务管理系统 医学生在线学习平台Java(codeLW)

springboot(ssm中医学习服务管理系统 医学生在线学习平台Java(code&LW) 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或…...

springboot宠物领养系统-计算机毕设 附源码 44261

springboot宠物领养系统 摘 要 网络发布信息有其突出的优点&#xff0c;即信息量大&#xff0c;资源丰富&#xff0c;更新速度快等&#xff0c;很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个网上宠物领养系统&#xff0c;为宠物爱好者提供一个信息…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...