Plonky2:最好的SNARKs和STARKs

news2024/12/26 23:28:05

1. 引言

在这里插入图片描述
Plonky2为Polygon团队2022年1月发起的项目。其定位为ZKP证明系统。
开源代码实现见:

  • https://github.com/0xPolygonZero/plonky2(Rust + 汇编)

Plonky2可解锁当今2大主流ZKP类型——SNARKs和STARKs的扩容优势。

每个ZKP证明系统都有2大基本要素:

  • 1)在某算术电路内编写程序的方式。
  • 2)多项式承诺方案(Polynomial Commitment Scheme,PCS)。

2. Plonky2加速秘诀之:FRI多项式承诺方案——Fast、Small、Big、Slow

许多ZKRollups采用KZG作为其承诺方案。

KZG的问题之一在于其有限域是基于椭圆曲线的,椭圆曲线密码学有诸多限制,如:

  • 1)以太坊当前并不原生支持,可高效进行递归的椭圆曲线。
  • 2)椭圆曲线需要使用更大的有限域(至少256位),这在当代CPU上效率更低。

不同于KZG或Bulletproofs,Polygon Zero团队选择FRI多项式承诺方案,FRI多项式承诺方案通常与STARKs关联。

当需考虑到speed速度时,FRI提供了有趣的 time-space 权衡:

  • 1)FRI支持快的证明生成时效,但所生成的proof很大。大的proof若提交到以太坊主网上将非常昂贵和复杂。
  • 2)FRI也可生成很小的proof,但会非常慢。

Plonky2支持以上2种场景:

  • 1)当关注速度时,采用大proof。
  • 2)当关注proof size时,采用小proof。

为此,Plonky2的递归中的所有步骤,采用不同的参数,来对特定的proofing layer进行优化。因此Plonky2可充分利用FRI中独特的time-space权衡。正是这种灵活性使Plonky2在一系列实现中如此有用。

3. Plonky2加速秘诀之:Goldilocks Field

Plonky2解锁了FRI的性能提升能力,如何要让生成证明的速度更快?

正如Bredan在ZK Whiteboard Session中所指出:
若想真正更快,需关注到在硬件层面何为快?
即,可通过对用户硬件优化来构建更快速的生成ZKP的工具。且当今消费级CPU原生支持64位运算。

之前的recursive proof composition方案,需要:

  • trusted setup
  • cycles of expensive, pairing-friendly elliptic curves

但Plonky2不需要,秘诀就在于:

  • Polygon’s Hamish Ivey-Law所提议的Goldilocks Field—— p = 2 64 − 2 32 + 1 p=2^{64}-2^{32}+1 p=264232+1

Goldilocks Field针对硬件端的优化有2方面:

  • 1)其为64位,即意味着任意小于 p p p的域元素都可以64位表示。
  • 2) p p p的代数结构,支持在CPU上非常高效运算。

以域运算性能评估,简单的采用Goldilocks 64位域,比KZG承诺中的256位域,证明速度要快40倍。

4. Plonky2加速秘诀之:Starky for Fold

ZKP中的“recursion递归”属性,是指:

  • 使用单个proof,来证明多个独立的proofs。

递归是使用ZKP来解决区块链扩容的关键,因为其可将多个交易proofs,转换为单个proof,从而大幅降低验证交易的开销。

Plonky2是为递归而生的:
在这里插入图片描述
在ZK电路内写VM的最好方式不是采用Plonky2,而是采用Starky。

Starky为Polygon Zero团队开发的另一互补证明系统:

  • Plonky2:为针对递归和relational connectivity而优化。相比于为单笔交易生成证明所需,其更robust。
  • Starky:采用与Plonky2相同的有限域和哈希函数,但是没有computation-heavy arithmetizations。

因此,从交易层来看,Starky并行生成证明,然后Plonky2用于在每个额外层进行递归。

每组proofs可采用Plonky2来转换为(具有lower rate的)单个proof,因为:【即,rate越低,对应 fastest (and largest) proof;而rate越高,对应smallest proof size。】

  • the smallest rate compatible with the transition constraints renders the fastest (and largest) proof.
  • Those large proofs are again converted into a single proof using a higher rate, which generates the smallest proof size possible for posting to Ethereum’s Mainnet.

即,根据需要让proof生成速度快,或者根据需要让proof小。

  • 2020年,首个提交到以太坊的递归证明,生成用时约60秒。
  • 而2022年11月,Plonky2在MacBook Pro上生成递归证明用时仅需170毫秒。

参考资料

[1] Polygon Labs 2022年11月博客 Plonky2: A Deep Dive

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

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

相关文章

Selenium自动化测试中常见的异常详解

概要 开发人员在编写代码时总是会考虑到不同的应用场景,但也可能会出现实现效果不如预期的情况。同样的原则也适用于测试代码,编写测试代码的主要目的是测试现有产品的功能、发现错误并使产品100%无错误。 有句话说得好:"真相总是比小说…

SpringBoot使用@Value获取不到yaml中配置的值

在最近的开发中遇到一个问题,使用Value获取yml文件中配置的属性时始终获取不到值,一开始我以为是没有注入的问题,或者没有写setter方法的问题,后来我发现这些都都写了然后开始百度发现获取不到属性值有这么几个原因 获取不到值的原因 1.没有使用Component注解,也就是没有注入…

J2EE的N层体系结构

J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。 RMI/IIOP:RMI(Remote Method Invocation,远程方法调用)是Java的…

Qt Signals Slots VS QEvents - Qt跨线程异步操作性能测试与选取建议

相关代码参考:https://gitcode.net/coloreaglestdio/qtcpp_demo/-/tree/master/qt_event_signal 1.问题的由来 在对 taskBus 进行低延迟改造时,避免滥用信号与槽起到了较好的作用。笔者在前一篇文章中,叙述了通过避免广播式地播发信号&…

HarmonyOS鸿蒙原生应用开发设计- HarmonyOS Sans 字体

HarmonyOS设计文档中,为大家提供了独特的字体,开发者可以根据需要直接引用。 开发者直接使用官方提供的字体内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又可以防止使用别人的字体侵权意外情况等,减少自主创…

大模型:机器学习的崭新时代

原创 | 文 BFT机器人 在机器学习领域,随着计算能力和数据规模的不断增长,大模型成为一种引人注目的技术。这些具有大规模参数和参数量的机器学习模型正在改变着我们对于人工智能的认识,大模型的出现使得机器学习模型能够处理更复杂的任务&am…

看完这篇 教你玩转渗透测试靶机Vulnhub——Mr-Robot :1

Vulnhub靶机Mr-Robot :1渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:暴力破解:③:登入后台GetShell&#xff1a…

docker入门加实战—项目部署之DockerCompose

docker入门加实战—项目部署之DockerCompose 我们部署一个简单的java项目,可能就包含3个容器: MySQLNginxJava项目 而稍微复杂的项目,其中还会有各种各样的其它中间件,需要部署的东西远不止3个。如果手动的逐一部署&#xff0c…

RTSP/Onvif安防平台EasyNVR接入EasyNVS,出现报错“Login error, i/o deadline reached”的解决方法

EasyNVS管理平台具备汇聚与管理EasyGBS、EasyNVR等平台的能力,可以将接入的视频资源实现视频能力统一输出,并能进行远程可视化运维等管理功能,还能解决设备现场没有固定公网IP却需要在公网直播的需求。 有用户反馈,RTSP/Onvif协议…

C语言用筛选法求 100 之内的素数(挖去 1,被除数平方根)

完整代码: // 用筛选法求 100 之内的素数(挖去 1,被除数平方根) //筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来…

三刷操作系统之一文带你搞懂FreeRTOS——互斥信号量和递归互斥信号量

1.互斥信号量 互斥信号量其实就是一个拥有优先级继承的二值信号量,在同步的应用中(任务与任务或中断与任务之间的同步)二值信号量最适合。互斥信号量适合用于那些需要互斥访问的应用中。在互斥访问中互斥信号量相当于一个钥匙,当任务想要使用资源的时候就必须先获得这个钥匙…

apple MFI工厂认证,干货,为防止MFI工作人员查看,已设置VIP阅读

一开始以为审核特别严格,准备了好久,经历过了之后会发现很简单,1个小时完成了所有审核事项。 好好招待审计员,比如能接送就接送,到点吃饭就尽量约时间吃饭后再审计,找个正式的会议室,该摆盘水果就摆上,让审计员感觉到公司是很重视这次的MFI审核,但是不能贿赂发红包那…

第一章 | 计算机网络原理 谢希仁(第八版)_ 习题答案

文章目录 计算机网络原理 谢希仁(第八版)第一章习题答案1-011-021-031-041-051-061-071-081-091-101-111-121-131-141-151-161-171-181-191-201-211-221-231-241-251-261-271-281-291-301-311-321-331-341-351-36 计算机网络原理 谢希仁(第八…

Arm 警告其 GPU 驱动漏洞正被活跃利用

导读Arm 周一警告其 Mali 系列 GPU 驱动漏洞 CVE-2023-4211 正被活跃利用。 Mali GPU 被广泛用于 Google Pixels 等 Android 手机,Chromebook 等 Linux 设备。 本地非特权用户可利用该漏洞访问已释放的内存。访问不再使用的系统内存是将恶意代码加载到攻击者可执行…

MFC+OSG(Open Secene Graph)场景实现中文HUD(head up display)效果,防止中文乱码

MFCOSG(Open Secene Graph)场景实现中文HUD(head up display)效果,防止中文乱码 背景:为什么同时使用MFC和OSG 我建立了一个MFC工程,以OSG作为视图显示的基础,通过点击MFC菜单启动某些功能。因此&#xf…

基于springboot实现地方废物回收机构平台管理系统【项目源码+论文说明】

基于springboot实现地方废物回收机构管理系统演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把地方废物回收机构管理与现在网络相结合,利用java技术建设地方废物回收机构管理系统,实现地方废物回收机构的信息化。则对于进一步提高地方废物回收机…

【Javascript】运算符(赋值,算术,自增,自减)

目录 赋值 算术 单个变量: 多个变量: 在字符串,数组中充当连接符 自符串与字符串 数组与数组 数组与字符串 自增与自减 前置 自增 自减 后置 自增 自减 赋值 var a 1;算术 单个变量: var a 1;a 1;console.l…

最小二乘法,可视化UI界面

import tkinter as tk import numpy as np import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from pylab import mplmpl.rcParams[font.sans-serif] [FangSong] # 指定默认字体 mpl.rcParams[axes.unicode_minus] False …

【matplotlib】matplotlib的颜色表

【matplotlib】matplotlib的颜色表 文章目录 【matplotlib】matplotlib的颜色表1. 颜色表Reference 1. 颜色表 在使用matplotlib库进行绘图的时候,只需要指定关键字coloryour_color就能修改绘制的颜色了,具体的颜色表如下。 Reference https://finthon…

文献阅读(207)FPGA HBM

题目:HBM Connect: High-Performance HLS Interconnect for FPGA HBM时间:2021会议:FPGA研究机构:UCLA Jason Cong 题目:Demystifying the Memory System of Modern Datacenter FPGAs for Software Programmers throug…