Testudo:Spartan + Groth16 的R1CS ZKP证明系统

news2024/12/27 12:39:05

1. 引言

前序博客有:

  • Spartan: zkSNARKS without trusted setup学习笔记
  • Spartan: zkSNARKS without trusted setup 源代码解析
  • Signatures of Correct Computation 学习笔记(本文称为PST承诺方案)
  • Groth16 学习笔记
  • ZCash bellman版本 Groth16代码解析

Testudo为Cryptonet团队开源的R1CS ZKP系统,其开源代码见:

  • https://github.com/cryptonetlab/testudo(Rust)

Testudo借助Spartan+Groth16,定位为实现具有更小setup的高效SNARK(其Prover为near linear-time)方案,实际代码实现时的3个核心组件为:

  • 1)sumcheck-based方案:在微软https://github.com/microsoft/Spartan的基础上,使用arkworks进行了修改,使用Groth16来验证sumchecks。
  • 2)改进版的PST承诺方案:为 Signatures of Correct Computation 学习笔记 中pairing-based多变量承诺方案(即multilinear多项式承诺方案)的快速版本,具有square-root trusted setup。
  • 3)Groth16层:使用Groth16来验证sumchecks。
    其中:https://github.com/nikkolasg/ark-blst 中封装了支持GPU版本的快速arkworks blst库。

Testudo的主要特点为:

  • 为near linear-time prover SNARK,Prover会运行:
    • N \sqrt{N} N 次size为 N \sqrt{N} N 的multi-exps运算,对应约为 O ( N ∗ λ / log ⁡ ( N ) ) O(N*\lambda/\log(N)) O(Nλ/log(N))次group运算,其中 λ > > log ⁡ ( N ) \lambda>>\log(N) λ>>log(N) for security。
  • Small & Universal setup:其trusted setup具有square-root size,即:对于size为 N N N的某R1CS,其trusted setup size为 O ( N ) O(\sqrt{N}) O(N )。对于大电路来说,可将trusted setup size由GB级压缩为MB级。
  • Very fast prover:以data-parallel computations为例,比现有最快的Groth16实现(即Bellperson)还要快,快约5倍。
  • Small Proofs & Fast Verifier:具有constant size proofs和constant size verification time。
  • Use R1CS:当前最流行的电路表达方式,从而具有如下优势:
    • 使得Testudo可复用已有的R1CS代码
    • 无需以不同的算术化方式重写电路

以size为 2 25 2^{25} 225的多项式为例,Testudo中所实现的multilinear多项式承诺方案要比现有的arkworks实现 快:
在这里插入图片描述
以size为 2 20 2^{20} 220的subcircuit重复 128 = 2 7 128=2^7 128=27次,对应size为 2 27 2^{27} 227电路约束,与size为 2 27 2^{27} 227的Bellperson R1CS约束电路性能对比为:
在这里插入图片描述

参考资料

[1] Protocol Labs 2023年4月5日 twitter Testudo
[2] 2023年3月博客Testudo: Efficient SNARKs with Smaller Setups

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

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

相关文章

Spring Boot的日志文件

目录 日志的作用 日志的打印 常见的日志框架 自定义的日志打印 为什么不用sout来打印日志 Spring Boot日志打印 1.得到日志对象 2.使用日志对象提供的方法打印日志 日志级别 日志级别的顺序 日志级别的设置 日志持久化 配置日志文件的保存路径 配置日志文件的文件…

学习spark笔记

✨ 学习 Spark 和 Scala 一 ​ 🐦Spark 算子 spark常用算子详解(小部分算子使用效果与描述不同) Spark常用的算子以及Scala函数总结 Spark常用Transformations算子(二) Transformation 算子(懒算子):不会提交spark作业&#…

AWT——事件处理机制

事件处理: 定义: 当某个组件上发生某些操作的时候,会自动地触发一段代码的执行 在GUI事件处理机制中涉及到4个重要的概念需要理解。 事件源:操作发生的场所,通常指某个组件,例如按钮、窗口等 事件&…

Spring Boot Web请求

在上一讲,学习了Spring Boot Web的快速入门以及Web开发的基础知识,包括HTTP协议以及Web服务器Tomcat等内容。基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。运行启动类启…

不能接受就滚,某外卖企业在汕尾的蛮横做法,或是它衰退的开始

近期某外卖平台因为大举降低外卖骑手的单价,引发高度关注,直到汕尾的外卖骑手集体抵制,引发与该外卖平台的激烈博弈,而外卖平台也显示了它的强硬手段,此举只会进一步激化矛盾,进而导致该外卖企业的衰落。 据…

Nginx的优化和防盗链

一、隐藏版本号 1、隐藏版本号的操作步骤 可以使用 Fiddler 工具抓取数据包,查看 Nginx版本, 也可以在 CentOS 中使用命令 curl -I http://192.168.229.90 显示响应报文首部信息。 curl -I http://192.168.2.661.1、方法一:修改配置文件方…

上海车展:预售价109.8万元,仰望U8见证国产品牌崛起

如果要评选2023上海车展上比亚迪展台“最亮的星”,估计很多媒体和观众都会毫不迟疑地把票投给仰望U8。 没办法,因为在本届车展上,仰望U8的表现实在是太吸睛了。 作为比亚迪旗下的高端新能源品牌,仰望汽车在上海车展上携两款车型—…

element+vue小技巧和报错解决(持续更新)

目录 1-关于el-table复选框中表头和内容不对齐问题 2-日期选择器传值给后端格式不对 3-获取表格的当前行数据#default"{row}" 1-关于el-table复选框中表头和内容不对齐问题 <el-table:data"tableData"stripestyle"width: 100%"tooltip-ef…

Flink IntervalJoin 笔记

Flink Join 一、Fink IntervalJoin 1、简要说明 Flink 中基于 DataStream 的join&#xff0c;只能实现在同一个窗口的两个数据流进行Join。但是实际中会存在数据乱序或者延时情况&#xff0c;导致两个流的数据进度不一致。无法在同一个窗口内Join。 Flink 基于 KeyedStream…

详论YUM仓库的部署和NFS共享服务

目录 一:YUM仓库服务 1.YUM概述 2.安装源的准备 &#xff08;1&#xff09;软件仓库的提供方式 &#xff08;2&#xff09;RPM软件包的来源 &#xff08;3&#xff09;创建Centos7软件仓库 &#xff08;4&#xff09;在软件仓库加入非官方RPM包 3.访问YUM仓库 4.安装FT…

商品页面翻页功能--购物车拓展

之前我们在mvc练习中曾经写过翻页功能&#xff0c;现在我们给购物车产品显示界面也加一个 1、把productlist中dao的sql语句做出修改&#xff0c;并传递需要用到的参数 再来一个返回product总数的方法 2、 对productlist的servlet拓展相关操作&#xff0c;准备好翻页的功能 3、…

访问图像像素

Opencv访问图像像素 预备知识: 图像矩阵的大小取决于所用的颜色模型(或者说通道数)&#xff0c;灰度图矩阵如下: 多通道图像&#xff0c;如RGB颜色模型的矩阵如下&#xff1a; 注&#xff1a;opencv的通道顺序是BGR&#xff0c;而不是RGB 访问图像中像素方法: import num…

新建虚拟机更改ip(连接xshell)

# 查看网络设备 [rootcentos79 ~]# nmcli device DEVICE TYPE STATE CONNECTION ens32 ethernet 已连接 ens32 ens33 ethernet 已连接 ens33 virbr0 bridge 已连接 virbr0 lo loopback 未托管 -- # 查看…

Unity之OpenXR+XR Interaction Toolkit实现 抓取物体

前言 我们今天来说一下如何使用XR Interaction Toolkit来实现和3D物体的交互之&#xff1a;抓取&#xff0c;简单说就是通过VR手柄拿起来一个物体。 二.准备工作 有了前两篇的配置介绍,我们就不在详细说明这些了&#xff0c;大家自行复习 Unity之OpenXRXR Interaction Toolk…

PyCharm连接远程服务器配置过程

目录 背景 一、建立远程服务器连接 1.创建远程连接 2.进行本地项目与远程项目之间的文夹路径映射 3.设置自动上传项目&#xff08;如有需要&#xff0c;可设置&#xff09; 4.验证是否连接成功&#xff08;调出服务器的文件目录&#xff09; 二、本地配置Python解释器 …

【社区图书馆】-《科技服务与价值链》总结

【为什么研究价值链】 价值链及价值链协同体系是现代产业集群的核心枢纽&#xff0c;是推进城市群及产业集群化、服务化、生态化发展的纽带。因而推进价值链协同&#xff0c;创新发展价值链协同业务科技资源体系&#xff0c;既是科技服务业创新的重要方向&#xff0c;也是重塑生…

NetApp ONTAP: 企业级数据管理软件,为无缝混合云奠定基础

为何选择 NetApp ONTAP 进行企业数据管理 NetApp ONTAP 数据管理软件可帮助您快速应对新的业务挑战&#xff0c;简化日常活动并给您的团队留下深刻印象。无论您在内部环境和云中有着怎样的数据管理需求&#xff0c;ONTAP 都能满足您。 1、支持当今的数据驱动型企业 当今的企…

升级底座、打破壁垒、消灭报销,让业财融合一触即发!

一个平台 一个入口 一站服务 以移动互联网、云计算、大数据、人工智能、5G与物联网、区块链为代表的新一代信息通信技术&#xff08;ICT&#xff09;的集群式、交互式发展&#xff0c;驱动企业进入数智化新阶。商业创新是打造企业竞争力的必然选择&#xff0c;在数字化转型大潮…

p68 内网安全-域横向 PTHPTKPTT 哈希票据传递

数据来源 ​ ​ Kerberos 协议具体工作方法&#xff0c;在域中&#xff0c;简要介绍一下&#xff1a; 客户机将明文密码进行 NTLM 哈希,然后和时间戳一起加密(使用krbtgt 密码 hash 作为密钥)&#xff0c;发送给 kdc&#xff08;域控&#xff09;&#xff0c;kdc 对用户进行检…

C语言从入门到精通第11天(数组的基本操作)

数组的基本操作 数组的概念一维数组二维数组 数组的概念 在程序设计中&#xff0c;为了方便处理数据把具有相同类型的若干变量按有序形式集合在一起&#xff0c;这些按序排列的同类数据元素的集合称为数组。 在C语言中&#xff0c;数组属于构造数据类型&#xff0c;一个数组可…