GKR+Groth16:更快的MiMC证明

news2024/12/26 20:44:35

1. 引言

Consensys团队Alexandre Belling等人2022年论文 Recursion over Public-Coin Interactive Proof Systems; Faster Hash Verification 中,提出了:

  • 用GKR来证明MiMC哈希计算的完整性
  • 将GKR verifier嵌入到SNARK(Groth16)电路中
  • 由于GKR为public-coin interactive协议,若直接使用Fiat-Shamir将导致更差的性能。为此本文将GKR优化为one-round协议。
  • 相比于直接用Groth16来验证MiMC,其性能提升了约35倍:
    在这里插入图片描述

开源代码实现见:

  • https://github.com/Consensys/gnark/tree/test/gkr_api(Go)

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

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

相关文章

【开发篇】十四、SpringBoot整合Quartz实现定时任务

文章目录 1、关于定时任务2、Java原生实现3、相关名词4、SpringBoot整合Quartz5、Quartz的通用配置6、关于QuartzJobBean7、关于调度器Scheduler的绑定8、Quartz持久化 1、关于定时任务 定时任务在实际开发中使用场景很多,比如: 年度报告各种统计报告某…

vs code 离线安装 CodeLLDB 包[Acquiring CodeLLDB platform package]

1. 问题描述 最近在配置使用vscode编译c,一打开vscode就弹出以下信息“Acquiring CodeLLDB platform package” 2. 问题原因 vscode在安装CodeLLDB插件时,速度太慢,一直不能成功 3. 解决方案: 离线下载 CodeLLDB插件&#xff0c…

前后端通信到底是怎样一个过程

前后端通信是怎样 前言:Http协议 超文本传输协议 规定:每一次前后端通信,前端需要主动向后端发出请求,后端接收到前端的请求后,可以给出响应 1、Http报文 浏览器向服务器发送请求时,请求本身就是信息&…

ROS导航——环境感知(激光雷达)

下载相关驱动包(激光雷达厂商应该会给出) 编译后可能会出现部分错误,以下是部分情况: (1) 移植功能包后出现c文件无法找到头文件的情况:解决链接 修改代码:(以我的雷达为…

将pyc文件转换为py文件

1.首先将pip版本升级 pip install --upgrade pip 2.然后安装uncompyle6 pip install uncompyle6 3.在系统的环境变量中,添加“python_home” 4.在系统变量Path中添加: %python_home%\Scripts\ 5.运行下面的代码,就会在你.pyc对应文件夹…

腾讯云服务器完整建站过程(新手搭建网站教程)

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网分享使用腾讯云服务器建站教程,新手站长搭…

第二章 进程与线程 十九、管程

目录 一、定义 管程是一种特殊的软件模块,由以下部分组成: 二、管程的基本特征 三、使用管程解决生产者消费者问题 四、总结 一、定义 管程是一种特殊的软件模块,由以下部分组成: 1、局部于管程的共享数据结构说明;&#xf…

[QT编程系列-45]: 内存检测工具Dr.Memory在Windows上的使用实践与详解

目录 一、使用前的澄清 二、下载地址 三、功能概述 四、 使用方法与步骤 4.1 常见命令 4.2 命令选项详解 4.3 常见问题监测 4.3.1 内存泄露相关参数 4.4 结果输出参数 4.5 输出分析 一、使用前的澄清 (1)之前在https://blog.csdn.net/fengbin…

SNAP与Sen2Cor下载与安装

SNAP软件下载与安装 一、下载地址 首先进入网站 找到DOWNLOAD下载页, 安装完成后,界面如下 还需要再装一个Sen2cor下载好之后,解压到用户文件夹下 然后打开L2A_Process.bat文件 打开CMD,输入 cd C:\Users\lenovo\AppData\L…

【算法训练-二分查找 一】【基本二分】二分查找、在排序数组中查找元素的第一个和最后一个位置

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是螺旋矩阵,使用【二维数组】这个基本的数据结构来实现 二分查找【EASY】 从最简单的二分查找入手,进而开始解决一系列其变体…

【Linux基础】Linux云服务器(腾讯云、阿里云、华为云)环境部署 | 安装远程XShell | 基本账号管理(超详细教程)

👉 系列专栏:【LLinux基础】 🙈 个人主页:sunnyll 目录 一、前言 二、 Linux环境安装 💦 Linux 环境的搭建方式 💦如何购买云服务器 三、 安装远程控制XShell 💦下载 XShell &#x1f4…

阿里云对象存储OSS SDK的使用

官方文档 https://help.aliyun.com/zh/oss/developer-reference/java 准备工作 windows安装好JDK,这里使用JDK1.8为例 windows安装好IDEA,这里使用IDEA2022 登录阿里云控制台,通过免费试用OSS或开通OSS 步骤 配置访问凭证 有临时和长期…

STM32F4学习笔记读取芯片UID和MAC地址

一、简介 在嵌入式设备开发过程中有时会需要为设备设置唯一的ID用以标识设备唯一,比如要求同一总线上的所有设备ID不能重复,要求设备具体唯一的MAC地址等等。每个STM32微控制器都自带一个96位的唯一ID,这个ID在任何情况下都是唯一且不允许修…

谷歌地球引擎GEE账户注册的快速、百分百成功方法

本文介绍免费注册谷歌地球引擎(Google Earth Engine,GEE)账户的方便、快捷的最新方法;基于这一方法,只要我们创建一个谷歌Cloud Project,就可以直接访问GEE。 GEE在原本(大概前几年的时候&#…

day 10.4

服务器 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QLine> #include <QTcpServer> #include <QTcpSocket> #include <QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Wid…

Java中如何实现定时任务?

文章目录 定时任务基本介绍前言基本概念介绍线程类实现定时任务Thread类实现定时任务Runnable接口实现定时任务Callable接口实现定时任务 Timer实现定时任务Timer的常用方法Timer的优缺点schedule和scheduleAtFixedRate的区别代码示例 ScheduledExecutorService实现定时Schedul…

僵尸进程的产生与处理

僵尸进程&#xff08;Zombie Process&#xff09;是指在操作系统中已经完成了执行&#xff0c;但其父进程尚未调用wait()或waitpid()来获取其终止状态的子进程。当一个进程结束时&#xff0c;操作系统会保留该进程的一些基本信息&#xff0c;包括进程ID&#xff08;PID&#xf…

C++_pen_类

类的成员函数 构造函数析构函数普通成员函数 构造函数与析构函数 #include <stdio.h> class STU{ public:STU(){printf("STU\n");}STU(int id){printf("STU(int id)\n");}~STU(){printf("STU Bye!!!\n");} };int main(int argc, char c…

图像分类概述

图像分类概述 图像分类&#xff0c;也称图像识别&#xff0c;是计算机根据已有的固定分类标签集合和图像所反馈的信息特征从标签集合中找出一个分类标签&#xff0c;并分配给该图像的视觉处理方法。 譬如规定一个分类标签为猫和狗的集合&#xff0c;给计算机输入一张猫或狗的…