Stwo:基于Circle STARK和M31的下一代STARK证明系统

1. 引言

StarkWare团队和Polygon Labs团队,历时数月,构造了基于Mersenne素数域M31的Circle STARK协议,通过使用M31 over a circle,可基于任意有限域构造高效STARKs,具体见2024年2月19日论文《Circle STARKs》。

基于Circle STARK协议,StarkWare团队开发了超快的证明系统:Stwo,大幅改进了现有Stone prover(见Stone Prover:StarkWare的STARK Prover)。

Stwo开源代码见:

  • https://github.com/starkware-libs/stwo(Rust)

BabyBear域背景知识见:

  • RISC Zero的Babybear域 及其 扩域
  • 技术探秘:在RISC Zero中验证FHE——RISC Zero应用的DevOps(2)

Mersenne素数域M31背景知识见:

  • Plonky3 Mersenne素数域的Reed-Solomon codes设计
  • 基于circle group的Reed-Solomon codes

传统STARKs协议,其组成步骤要求代数结构:

  • 需要一个素数域 p p p,其 p − 1 p-1 p1可被2的大幂整除。

即传统STARKs,其所使用的域内要有一个smooth order的cyclic group。
原因在于STARKs协议中有2大核心:

  • FFT:使用FFT算法来高效插值点,并编写包含相邻行的约束。
  • FRI

这就排除了许多尺寸较小的域,尽管这些域非常适合高效计算。如,Mersenne素数域M31,其 p = 2 31 − 1 p=2^{31}-1 p=2311,而 p − 1 = 2 ( 2 30 − 1 ) p-1=2(2^{30}-1) p1=2(2301)甚至不能被 4 4 4整除。从而陷入僵局:

  • 传统STARKs协议无法与M31结合使用

数年前,曾希望让STARKs协议适用于2种主流加密曲线:secp256k1 和 secp256r1。但这2条曲线也不满足上面的要求。为此,还研究出了Elliptic Curve Fast Fourier Transform (ECFFT) Part I: Fast Polynomial Algorithms over all Finite Fields论文,其使用椭圆曲线为FFT和FRI提供了替代的结构源,在该论文中,详细介绍了将STARKs用于任意域的机制——使用某椭圆曲线的cyclic group。

为能让M31与STARKs结合使用,StarkWare团队和Polygon Labs团队合作,最终有了Circle STARKs:

  • 一种紧凑、优雅的协议,避免了ECFFT论文的重型机制。
  • 简而言之:当 p + 1 p+1 p+1可被2的大幂整除时(如M31),基于该素数域的circle curve( x 2 + y 2 = 1 x^2+y^2=1 x2+y2=1)提供了适于FFT和FRI所需的结构。

在这里插入图片描述

2. Stwo:基于Circle STARK和M31的下一代STARK证明系统

Stwo:

  • 利用 Circle STARK 和各种其他优化来带来前所未有的证明性能。

Stone(为St-one)为一代,而Stwo(S-two)为二代。已基于Stone系统构建的应用链和Starknet,都不受影响,高级Cairo将与Stwo完全兼容。当时机到来时,Stwo 已准备好推出,Starknet 生态系统(即用户和开发人员)将受益于 Stwo 的下一级别的扩展,而无需执行任何操作!Stwo 将与编写合约的高级Cairo代码兼容,也与Sierra兼容。当前基于Stone的Starknet prover(s),未来将使用Stwo。用户/构建者/dapp 也将在延迟和费用方面受益。

3. 性能对比

在《Circle STARKs》论文中,对基于M31的Circle STARKs,和,基于Babybear域的传统STARK(使用的Babybear代码为https://github.com/Plonky3/Plonky3/commit/86d13ddf269427c4788cdd41f413308a6050f9f3)做了性能对比,要快约1.4倍:
在这里插入图片描述

参考资料

[1] StarkWare 2024年3月博客 Stwo Prover: the next-gen of STARK scaling is here
[2] 2024年2月21日 Circle STARKs

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6 | (二)ES6 新特性(下) | 尚硅谷Web前端ES6教程

文章目录 📚迭代器🐇定义🐇工作原理🐇自定义遍历数据 📚生成器函数🐇声明和调用🐇生成器函数的参数传递🐇生成器函数案例 📚Promise📚Set🐇Set的定…

Carla自动驾驶仿真九:车辆变道路径规划

文章目录 前言一、关键函数二、完整代码效果 前言 本文介绍一种在carla中比较简单的变道路径规划方法,主要核心是调用carla的GlobalRoutePlanner模块和PID控制模块实现变道,大体的框架如下图所示。 一、关键函数 1、get_spawn_point(),该函数根据指定r…

Docker容器资源限制与优化全攻略:CPU、内存、磁盘IO一网打尽

🐇明明跟你说过:个人主页 🏅个人专栏:《Docker入门到精通》 《k8s入门到实战》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、docker容器技术概述 2、资源限制与优化的重要性 …

C++设计模式_创建型模式_工厂方法模式

目录 C设计模式_创建型模式_工厂方法模式 一、简单工厂模式 1.1 简单工厂模式引入 1.2 简单工厂模式 1.3 简单工厂模式利弊分析 1.4 简单工厂模式的UML图 二、工厂方法模式 2.1 工厂模式和简单工厂模式比较 2.2 工厂模式代码实现 2.3 工厂模式UML 三、抽象工厂模式 3.1 战斗场景…

IDEA的安装教程

1、下载软件安装包 官网下载:https://www.jetbrains.com/idea/ 2、开始安装IDEA软件 解压安装包,找到对应的idea可执行文件,右键选择以管理员身份运行,执行安装操作 3、运行之后,点击NEXT,进入下一步 4、…

RISC-V特权架构 - 特权模式与指令

RV32/64 特权架构 - 特权模式与指令 1 特权模式2 特权指令2.1 mret(从机器模式返回到先前的模式)2.2 sret(从监管模式返回到先前的模式)2.3 wfi(等待中断)2.4 sfence.vma(内存屏障) …

官宣 | 凯琦供应链成为亚马逊SPN物流服务商!

再播一条喜讯!在亚马逊官方平台的筛选考核下,凯琦供应链近日正式入驻亚马逊SPN服务商平台,成为亚马逊SPN第三方承运商。 这也标志着凯琦9年来在FBA物流领域的服务质量得到了客户、官方及行业的广泛认可,未来凯琦将继续为亚马逊卖家…

【LeetCode题解】2182. 构造限制重复的字符串+82. 删除排序链表中的重复元素 II+83. 删除排序链表中的重复元素

文章目录 [2182. 构造限制重复的字符串](https://leetcode.cn/problems/construct-string-with-repeat-limit/)思路: [82. 删除排序链表中的重复元素 II](https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/)[83. 删除排序链表中的重复元素](htt…

swoole

php是单线程。php是靠多进程来处理任务,任何后端语言都可以采用多进程处理方式。如我们常用的php-fpm进程管理器。线程与协程,大小的关系是进程>线程>协程,而我们所说的swoole让php实现了多线程,其实在这里来说,就是好比让php创建了多个进程,每个进程执行一条…

前端学习第六天-css浮动和定位

达标要求 了解浮动的意义 掌握浮动的样式属性 熟练应用清除浮动 熟练掌握定位的三种方式 能够说出网页布局的不同方式的意义 1. 浮动(float) 1.1 CSS 布局的三种机制 网页布局的核心——就是用 CSS 来摆放盒子。CSS 提供了 3 种机制来设置盒子的摆放位置,分…

基于原子变量的内存模型优化

概述 线程间同步通常的实现方法通常为互斥锁,但互斥锁对性能造成了影响,C11引入了内存模型,定义了STD::memory_order枚举,结合原子性操作,实现无锁线程数据同步。 关于memory_order memory_order_relaxed&#xff1…

前端打包部署(黑马学习笔记)

我们的前端工程开发好了,但是我们需要发布,那么如何发布呢?主要分为2步: 1.前端工程打包 2.通过nginx服务器发布前端工程 前端工程打包 接下来我们先来对前端工程进行打包 我们直接通过VS Code的NPM脚本中提供的build按钮来完…