RISC-V与RISC Zero zkVM的关系

news2024/11/24 3:38:27

1. 引言

本文基本结构为:

  • 编程语言背景介绍
  • RISC-V虚拟机作为zkVM电路
  • 为何选择RISC-V?

2. 编程语言背景介绍

高级编程语言不专门针对某个架构,其便于人类编写。高级编程语言代码,经编译器编译后,会生成针对专门某架构的汇编代码,汇编代码是供机器使用的。
在这里插入图片描述

也可以直接编写汇编代码:
在这里插入图片描述
以上汇编代码示例中:

  • 蓝色框表示:所编码的数据和指令。
  • 黄色框:为对蓝色框的反汇编。
  • 黑色框:为这些op codes的位置信息。可将黑色框的内容看成是addresses。

直接写汇编代码的好处之一是:

  • 可对系统进行细粒度的控制。

但汇编代码存在如下问题:

  • 表达性有限
  • 专门针对特定机器
  • 难于维护

而借助编译器,使用高级编程语言,可解决以上问题,如:
在这里插入图片描述
各种高级编程语言,经相应的语言后端,可生成相应的LLVM bytecode,然后经LLVM编译出特定机器架构的汇编代码:
在这里插入图片描述

2.1 何为RISC-V?

何为RISC-V?:

  • RISC = Reduced Instruction Set Computer
  • V = This is UC Berkeley’s 5th RISC ISA(Instruction Set Architecture)

具体的RISC-V说明书见:

  • The RISC-V Instruction Set Manual
    在这里插入图片描述

RISC-V有如下模块:
在这里插入图片描述

  • 1)RV32I:Base整数指令集。每个寄存器为32位。有32个寄存器。【使用XLEN术语来表示x寄存器的宽度位数,如是32、64还是128。】

    • 有31个通用寄存器x1-x32来保存整数值,x0寄存器固定为常数值0。
      在这里插入图片描述
    • 没有固定子程序返回地址连接寄存器,但标准软件通常使用寄存器x1来保存返回地址。
    • 有一个额外的用户可见的寄存器:pc,为program counter,用于存储当前指令的地址。
    • 具有的指令集为:【其中ecall指令用于特殊功能】
      在这里插入图片描述
  • 2)RV32E:Base整数指令集。每个寄存器为32位。为RV32I的子集,只有16个寄存器。

  • 3)RV64I:Base整数指令集。每个寄存器为64位。

  • 4)RV128I:Base整数指令集。每个寄存器为128位。

  • 5)M:表示为对整数乘法和触发的标准扩展。以RV32M为例,其具有的指令集为:
    在这里插入图片描述

RISC-V可实现为:

  • 1)硬件芯片
  • 2)或 虚拟机:RISC Zero 将RISC-V用作虚拟机。
    在这里插入图片描述

当将RISC-V用作虚拟机时,其:

  • 以软件来实现RISC-V寄存器和内存
  • 运行RISC-V指令

相应的流程为:
在这里插入图片描述

  • 即,以程序代码编译后的RISC-V汇编代码(ELF二进制文件)作为RISC-V虚拟机的输入,经RISC-V执行,获得相应的程序结果。

3. RISC-V虚拟机作为zkVM电路

zkVM的目的为:

  • 为程序执行生成receipts

RISC Zero zkVM的目的为:

  • 为RISC-V程序执行生成receipts

为生成receipt,需:

  • 1)有RISC-V代码执行的execution trace
  • 2)有相应的一组约束,如:
    • 每个bit应为 0或1:x * (x-1) = 0。
    • 每个寄存器应包含32位数据。
    • 每个指令执行完后,program counter应变化。
  • 3)基于RISC-V虚拟机输出的程序结果 + execution trace + 约束,经某证明系统数学处理,生成相应的receipt。
    在这里插入图片描述

这样,完整的流程即为:
在这里插入图片描述

实际在实现RISC-V虚拟机时,如何区分zkVM中所执行的是哪个程序代码呢?

答案就是Image ID。所谓Image ID,是加载到内存的ELF二进制的Merkle root。会将Image ID写入到seal中。
在这里插入图片描述

4. 为何选择RISC-V?

当前主流的机器芯片架构有:
在这里插入图片描述
选择RISC-V架构的原因在于:

  • 1)minimal:所有指令可在一页PPT内展示:
    在这里插入图片描述
  • 2)模块化:可仅使用所需要的模块。
  • 3)编程语言支持:现有的语言和工具均成熟。

参考资料

[1] RISC Zero团队2023年2月视频 What does RISC V have to do with RISC Zero’s zkVM【slide见What RISC-V has to do with RISC Zero’s zkVM】
[2] ARM新规,芯片行业震动丨X86、ARM、RISC-V和MIPS对比汇总
[3] The RISC-V Instruction Set Manual

RISC Zero系列博客

  • RISC0:Towards a Unified Compilation Framework for Zero Knowledge
  • Risc Zero ZKVM:zk-STARKs + RISC-V
  • 2023年 ZK Hack以及ZK Summit 亮点记
  • RISC Zero zkVM 白皮书
  • Risc0:使用Continunations来证明任意EVM交易
  • Zeth:首个Type 0 zkEVM
  • RISC Zero项目简介
  • RISC Zero zkVM性能指标
  • Continuations:扩展RISC Zero zkVM支持(无限)大计算
  • A summary on the FRI low degree test前2页导读
  • Reed-Solomon Codes及其与RISC Zero zkVM的关系
  • RISC Zero zkVM架构

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

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

相关文章

Azure 机器学习 - 设置 AutoML 训练时序预测模型

目录 一、环境准备二、训练和验证数据三、配置试验支持的模型配置设置特征化步骤自定义特征化 四、可选配置频率和目标数据聚合启用深度学习目标滚动窗口聚合短时序处理非稳定时序检测和处理 五、运行试验六、用最佳模型进行预测用滚动预测评估模型精度预测未来 七、大规模预测…

网络基础扫盲--TCP/UDP

博客内容:TCP/UDP 文章目录 一、TCP与UDP二、tcp可靠性如何保证?1、三次握手2、TCP报头3、TCP四次挥手 一、TCP与UDP tcp与udp都是传输层的协议,用于数据的传输。 对于tcp而言数据的传输会比较可靠,主要依赖于tcp面向链接的&…

openGauss学习笔记-114 openGauss 数据库管理-设置安全策略-设置帐号有效期

文章目录 openGauss学习笔记-114 openGauss 数据库管理-设置安全策略-设置帐号有效期114.1 注意事项114.2 操作步骤 openGauss学习笔记-114 openGauss 数据库管理-设置安全策略-设置帐号有效期 114.1 注意事项 创建新用户时,需要限制用户的操作期限(有…

Prompt 设计与大语言模型微调,没有比这篇更详细的了吧!

本文主要介绍了Prompt设计、大语言模型SFT和LLM在手机天猫AI导购助理项目应用。 ChatGPT基本原理 “会说话的AI”,“智能体” 简单概括成以下几个步骤: 预处理文本:ChatGPT的输入文本需要进行预处理。 输入编码:ChatGPT将经过预…

如何使用Python和matplotlib绘制机器人运动偏差路径图——实用教程与代码解析

前言 科研论文中需要绘制一个精美的机器人运动路径图(其中包含了机器人的期望运动路径和实际运动路径)。我的期望路径是是一个方形,用Python代码是这样表示的: n_list [n1,n2,n3,n4] e_list [e1,e2,e3,e4] #n_list和e_list的各…

C++笔记之动态数组的申请和手动实现一个简单的vector

C笔记之动态数组的申请和手动实现一个简单的vector code review! 文章目录 C笔记之动态数组的申请和手动实现一个简单的vector1.C语言中动态数组的申请与使用1.动态数组的申请使用new和delete使用std::vector 1.std::vector的底层实现2.手动实现一个简单的vector:使用一个指向…

项目实战:展示第一页数据

1、在FruitDao接口中添加查询第一页数据和查询总记录条数 package com.csdn.fruit.dao; import com.csdn.fruit.pojo.Fruit; import java.util.List; //dao :Data Access Object 数据访问对象 //接口设计 public interface FruitDao {void addFruit(Fruit fruit);vo…

文件复制加密、文件落地加密、文件移动加密如何设置?

文件加密在保护信息安全方面具有重要作用。合格、好用的文件加密软件可以帮助企业保护商业机密、更遵守法律法规、提高企业核心竞争力、防止数据泄密等。 一般的加密都是对文件本身加密,比如加密某个WORD /PPT之类的,很少有能够加密某个文件夹的。今天就…

单链表基本操作的实现,初始化,头插,尾插,判空,获取个数,查找,删除,获取前置和后置位,清空,销毁

目录 一.单链表的设计 二.单链表的实现 三.单链表的总结 一.单链表的设计 1.单链表的结构定义: typedef struct Node{int data;//数据域struct Node* next;//后继指针}Node,*List; 2.单链表的设计示意图: 3.注意,单链表的最后一个节点的next域为NULL; 4.为什么要有一个头…

唯一ID如何生成,介绍一下目前技术领域最常使用的几种方法

纵使十面大山,又如何,无妨… 概述 唯一ID(Unique Identifier)是在计算机科学和信息技术领域中用于标识某个实体或数据的唯一标识符。生成唯一ID的方法可以根据具体需求和应用场景的不同而有所不同。以下是一些目前技术领域中常用…

2023-mac rz sz 安装

之前安装过一次,没问题,这次按照之前教程装了就不管上传下载都会卡住; step1: brew install lrzsz step2:在/usr/local/bin 路径下配置两个sh,之前从网上找到的直接用都不对,下面这个是调试过的正式可用的 iterm2…

【C语言进阶】之动态内存管理

【C语言进阶】之动态内存管理 1.为什么我们需要动态内存管理2.动态内存管理的函数介绍2.1malloc函数和free函数2.1.1malloc函数2.1.2 free函数 2.2calloc函数2.3realloc函数 3.动态内存管理中经常出现的一些问题总结。3.1 越界访问3.2 对空指针进行解引用操作3.3 对同一片空间进…

安全防御——二、ENSP防火墙实验学习

安全防御 一、防火墙接口以及模式配置1、untrust区域2、trust区域3、DMZ区域4、接口对演示 二、防火墙的策略1、定义与原理2、防火墙策略配置2.1 安全策略工作流程2.2 查询和创建会话 3、实验策略配置3.1 trust-to-untrust3.2 trust-to-dmz3.3 untrust-to-dmz 三、防火墙的区域…

归并排序--C语言实现

1. 简述 归并排序的原理是将&#xff0c;两个较大的数组分为大小几乎一致的两个数组。 再将两个数组进行合并成新的有序数组。 合并两个数组的时候需要额外的一个数组的空间。 2. 实现 上图说明过程 代码 #include <stdio.h>void Merge(int *arr, int *tmp, int …

freertos入门(stm32f10c8t6版闪烁灯)

首先到官网下载freertos源码&#xff0c;然后找一个stm32f10c8t6的空模板&#xff0c;这个空模板实现点灯之类的都行。 然后在这个空模板的工程下新建一个FreeRtos文件夹 接着在FreeRtos文件夹下新建三个文件夹&#xff0c;分别是src存放源码 inc 存放头文件&#xff0c;port …

Linux下查看文件夹大小命令

在Vscode上连接服务器&#xff0c;想查看文件夹大小&#xff1b; du -h path

4 个最常见的自动化测试挑战及应对措施

有人说&#xff1a;“杂乱无章的自动化只会带来更快的混乱。”不仅更快&#xff0c;而且是更严重、更大的混乱。如果使用得当&#xff0c;自动化可以成为测试团队中令人惊叹的生产力助推器和系统的质量增强器。自动化测试的关键是要正确运用&#xff0c;这是初始最困难的部分。…

动态路由协议OSPF优化提速特性

1.OSPF协议通信过程与部署&#xff1b; 2.OSPF协议在项目上的应用场景&#xff1b; 3.OSPF有哪些优化特性&#xff1f; - OSPF - 开放式最短路径优先 - 一个动态路由协议 - 路由协议 - 理解魏 运行在路由器的一个软件 - 目的&#xff1a;为了帮助路由器和路由器彼…

短期经济波动:均衡国民收入决定理论(二)

短期经济波动:国民收入决定理论(二) 文章目录 短期经济波动:国民收入决定理论(二)[toc]1 IS曲线1.1 IS曲线的代数推导1.1.1 代数法&#xff1a;计划支出等于实际支出1.1.2 代数法&#xff1a;计划投资等于储蓄1.1.3 代数法&#xff1a;非计划存货等于0 1.2 IS曲线的几何推导1.2…

ZZ038 物联网应用与服务赛题第D套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (D卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工具、软件安装文件等,都…