arkworks工具栈概览

news2024/11/13 23:45:39

1. 引言

arkworks定位为zkSNARK编程的Rust生态。其开源代码见:

  • https://github.com/arkworks-rs/

arkworks目前已广泛用于大量项目中,如:Aleo、anoma、celo、Espresso、Findora、Manta、Mina、Nimiq、penumbra等等。
在这里插入图片描述
参与arkworks开源实现的contributors众多:
在这里插入图片描述

arkworks通过通用抽象和模块化的设计,其总体工具栈架构为:
在这里插入图片描述

其中:

  • 1)Algebra(通用有限域、曲线和多项式接口层):希望达成的效果为:很容易添加实现新的域或曲线;性能与特定手工优化的实现相当甚至更优。不希望有大量重复冗余的代码和工作量。

    • 所有SNARKs都需要高效有限域运算(ark-ff),以及基于这些有限域的高效多项式运算(ark-poly)
    • 许多流行的SNARKs(如Groth16、Marlin、PLONK、Halo等)还要求实现扩域(ark-ff) 以及基于这些扩域的 椭圆曲线(ark-ec为抽象的各种traits,ark-curves为具体的椭圆曲线实现)

    基于人类工程学考虑,为实现椭圆曲线,相应的流程为:

    • 1.1)实现相关的域
    • 1.2)实现该曲线
      • 1.2.1)指定曲线方程式系数。
      • 1.2.2)指定cofactor和generator。
        在这里插入图片描述
        在这里插入图片描述
        如上所示,arkworks抽象出的接口非常简单高效,很容易实现新曲线,如:
    • 以太坊、ZCash、Algorand使用的:BLS12-381,以及相应的Jubjub和Bandersnatch曲线。
    • 以太坊使用的:BN254曲线。
    • Mina和ZCash使用的:Palla和Vesta 2-cycle曲线。
    • Celo和Aleo使用的:BLS12-377,以及相应的BW6和CP6曲线。
    • MNT6-298和MNT4-298 2-cycle曲线。
    • MNT4-753和MNT6-753 2-cycle曲线。
      在这里插入图片描述

    同时arkworks模块化的设计,其通用曲线接口规范,很容易在不同曲线间切换,如:
    在这里插入图片描述
    arkworks的通用实现,与特定专业且手工优化实现,性能相当或更优:
    在这里插入图片描述

  • 2)SNARK开发(通用SNARK和约束系统接口层):主要关心的是:性能优化;数学实现;易于比较和benchmark。不关心曲线细节,以及约束生成。
    模块化目的是:通过通用SNARK接口,使得易于在不同证明系统和多项式承诺方案间切换。
    在这里插入图片描述
    人类工程学考虑为:代码应与数学公式匹配,以便于审计和发现bug。如以Groth16 Verifier为例:
    在这里插入图片描述

  • 3)约束系统编程(通用SNARK应用框架):直接编写代数约束是痛苦的。有多种高级方法来编写约束系统并编译为代数约束,但需要在性能和人类工程学中做权衡。
    其关注的点是:好的性能;具备人类工程需的约束编写体验。不关注的点是:SNARKs细节,以及曲线细节。
    以Karatsuba乘法为例:
    在这里插入图片描述
    而arkworks的约束编写与直观算法匹配,符合人类工程学设计,易于审计:
    在这里插入图片描述

参考问下

[1] 2022年4月视频 arkworks: Rust Ecosystem for zkSNARKs

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

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

相关文章

黑客必备工具Kali Linux,安装与使用教程全包含,从入门到精通,全网最详细全面的Kali Linux教程

Kali Linux是一个高级渗透测试和安全审计Linux发行版,目前可以说是网络安全人员的专用系统。 Kali Linux功能非常强大,能够进行信息取证、渗透测试、攻击WPA / WPA2保护的无线网络、离线破解哈希密码、将android、Java、C编写的程序反编译成代码等等&am…

CRM与chatGPT结合的效果

2023年ChatGPT是当之无愧的行业热词,从诞生到爆红短短5天,注册用户数就超过100万,截止到2023年1月底已经有超过1亿用户。在这样的背景下,Zoho CRM系统在业内较早推出集成ChatGPT的相关功能,接下来我们就来分享CRM接入C…

【Unity】ShaderGraph应用(浮动气泡)

【Unity】ShaderGraph应用(浮动气泡) 实现效果 一、实现的方法 1.使用节点介绍 Position:获取模型的顶点坐标 Simple Noise:简单的噪声,用于计算顶点抖动 Fresnel Effect:菲涅耳效应,用于实现气泡效果 计算用节点 Add&…

大模型赛道如何实现华丽的弯道超车

导读:Alluxio作为一款强大的分布式统一大数据虚拟文件系统,已经在众多领域展现出了其卓越的应用价值,并且为AI/ML训练赋能提供了一个全新的解决方案。 在人工智能(AI)和机器学习(ML)领域&#x…

基于STM32的简化版智能手表

一、前言 本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果。项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DHT11,RTC,LED,KEY等器…

752. 打开转盘锁

链接&#xff1a; 752. 打开转盘锁 题解&#xff1a; class Solution { public:int openLock(vector<string>& deadends, string target) {std::unordered_set<std::string> table(deadends.begin(), deadends.end());if (table.find("0000") ! t…

怎么把ppt压缩到10m以内?一分钟学会ppt压缩

在现代办公中&#xff0c;PowerPoint演示文稿已经成为我们日常工作中不可或缺的一部分&#xff0c;然而&#xff0c;随着我们对演示文稿的要求越来越高&#xff0c;其文件大小也往往变得越来越大。有时候&#xff0c;一个简单的PPT文件就可能占用数十兆甚至上百兆的空间&#x…

【算法专题突破】滑动窗口 - 水果成篮(13)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;904. 水果成篮 - 力扣&#xff08;Leetcode&#xff09; 题目有很长一段话&#xff0c;但是我们读一遍题目可以提炼转化出题目的要求 &#xff1a; 其实就是找出一个最长…

金融行业的软件测试分析

随着金融行业的业务不断增加&#xff0c;金融交易模式的不断变化&#xff0c;金融机构对信息化的要求也越来越高&#xff0c;高质量的金融软件对于金融机构来说显得尤为重要。如何保证金融行业软件的质量&#xff0c;对金融行业软件的测试人员来说&#xff0c;也提出了更高的要…

轻量级的Python IDE —— Thonny

现在的开发工具太多了&#xff0c;而且每个开发工具都致力于做成最好用最智能的工具&#xff0c;所以功能越堆越多&#xff0c;越怼越智能。安装这些开发工具比较烧脑&#xff0c;经常需要经过许多配置步骤。作为一个 Python 开发者来说&#xff0c;好多人光是这些配置都要弄半…

程序与保持健康的六个秘诀

虽然编程并不被视为是一个高危职业,但我们发现一大批数量惊人的开发人员正遭受健康问题的折磨。坐在办公桌很舒适,但有研究表明,它并不像你想象的那样健康。幸运的是,有很多非常容易做到的方法可以改善你的健康。 1.锻炼 尽管这可能是最明显的方法,但很多开发人员常常会…

嵌入式学习笔记(26)5S5PV210串行通信编程实战

5.5.1整个流程分析 整个串口通信相关程序包含2部分&#xff1a;uart_init负责初始化串口&#xff0c;uart_putc负责发送一个字节 5.5.2串口初始化关键步骤 &#xff08;1&#xff09;初始化串口的Tx和Rx引脚所对应的GPIO(查原理图可知Tx和Rx分别对应GPA0_1和GPA0_0) &#…

排序算法-----插入排序

目录 前言&#xff1a; 插入排序 原理图 代码实现 分析总结 二分法插入排序 代码实现 前言&#xff1a; 嗨嗨^_^&#xff0c;米娜桑&#xff0c;今天我们继续学习排序算法中的插入排序&#xff0c;激不激动&#xff0c;兴不兴奋呢&#xff01;好了废话不多说&#xff0c;…

合肥对新通过(CMMI)五级、四级、三级认证的软件企业,对新通过信息技术服务标准(ITSS)认证的软件企业,给予最高50万奖励

合肥市加快软件产业发展 推进软件名城创建若干政策实施细则 为贯彻落实《合肥市人民政府办公室关于印发合肥市加快软件产业发展推进软件名城创建若干政策的通知》&#xff08;合政办〔2023〕9号&#xff09;文件精神&#xff0c;规范政策资金管理&#xff0c;制定本实施细则。…

Convai:让虚拟游戏角色更智能的对话AI人工智能平台

【产品介绍】​ 名称 Convai​ 具体描述​ Convai是一款专为虚拟世界而设计的对话人工智能平台&#xff0c;它可以让你为你的游戏或应用中的角色 赋予人类般的对话能力。Convai利用了最先进的生成式对话人工智能技术&#xff0c;让你的角色可以…

物联网行业案例 - Splashtop 助力成都谷帝科技有限公司远程维护安卓设备

成都谷帝科技有限公司专注于提供针对特定行业需求的全面物联网软硬件解决方案。其产品系列包括智慧路灯系统、智能门禁、智能柜控、智慧体育步道、农业灌溉、工业焙烧系统、水质在线检测系统等。 客户需求 成都谷帝科技有限公司提供物联网软硬件解决方案&#xff0c;还需要对…

20230912在ubuntu18.04下使用pigz来提高tar命令压缩解压缩的速度

20230912在ubuntu18.04下使用pigz来提高tar命令压缩解压缩的速度 2023/9/15 22:19 https://blog.csdn.net/wb4916/article/details/128447298 20221226编译Toybrick的TB-RK3588X开发板的Android12系统2-SDK预处理 4、单线程压缩。 建议使用&#xff1a;pigz多线程压缩&#xf…

Virtualbox中Ubuntu根目录空间不足

现象 Virtualbox中Ubuntu根目录空间不足 解决 动态存储 虚拟机关闭先在虚拟介质管理里把硬盘Size调大开启Ubuntu用Disks或者GParted重新调整分区大小重新启动 步骤参考: https://zhuanlan.zhihu.com/p/319431032 https://blog.csdn.net/ningmengzhihe/article/details/1272…

OpenCV(四十五):ORB特征点

1.特征点的组成 特征点由关键点和描述子两部分组成&#xff1a; 关键点是在图像中检测到的具有显著变化的位置坐标。描述子是用于表示关键点周围局部区域特征的向量或特征向量。 2.ORB特征点原理 ORB特征点由关键点FAST角点 和描述子BRIEF组成。 2.1提取FAST角点的算法 FA…

STM32 Cubemx 基本定时器Basic Timers

文章目录 前言简介Cubemx使用 前言 持续学习stm32中… 简介 基本定时器有TIM6和TIM7&#xff0c;是一个16位的向上定时器。基本定时器的用途较少&#xff0c;只能用于纯粹的定时器以及驱动DAC模块。 注&#xff1a;基本定时器各自独立&#xff0c;不存在共用的资源。 基本定…