4 个版本
0.1.3 | 2024年7月28日 |
---|---|
0.1.2 | 2024年7月27日 |
0.1.1 | 2024年7月27日 |
0.1.0 | 2024年7月27日 |
#467 in 数学
每月 249 次下载
20KB
358 行
noir-bignum-paramgen
rust 工具,用于生成 noir 的 noir-bignum
库(https://github.com/noir-lang/noir-bignum)的参数。
该工具接受一个大的整数模数,并打印出一个表示以下内容的字符串
- 一个可以用于静态定义域的
BigNumInstance
对象(当域模数是一个电路常数时使用) - 一个可以用于从见证值动态定义域的
runtime_bignum::BigNumInstance
对象(例如 RSA 签名验证) - 表示一个
BigNum
对象的Field 元素数组
- 表示
runtime_bignum::BigNumInstance
对象的 Barrett 减小参数的Field
元素数组
在构建静态域的参数时,应使用第 1 种情况。
如果格式化的 BigNum
肢是 noir 电路的公开/私有输入,则可以使用第 3 种情况来生成所需的见证值。
如果通过见证定义了域模数,则必须向电路提供 Barrett 减小参数。它仅在非约束函数中使用,可以直接提供而不需要在电路中推导。在这种情况下,应使用第 4 选项。
用法
cargo build --release
./target/release/paramgen [instance, runtime_instance, limbs, redc_param] [bignum modulus in hex or decimal] ?[parameter name]
第一个输入参数定义了正在生成哪个参数。第二个参数定义了大数模数,可以是10进制或16进制(16进制可以以 0x
开头,但不需要)第三个参数是参数名称。
示例用法
./target/release/paramgen实例 0x01C4C62D92C41110229022EEE2CDADB7F997505B8FAFED5EB7E8F96C97D87307FDB925E8A0ED8D99D124D9A15AF79DB117E776F218059DB80F0DA5CB537E38685ACCE9767254A4638810719AC425F0E39D54522CDD119F5E9063DE245E8001 MNT6_753_Fr>out.txt
./target/release/paramgen运行时实例 8444461749428370424248824938781546531375899335154063827935233455917409239041 BLS12_377_Fr>out.txt
./target/release/paramgen数位 01C4C62D92C41110229022EEE2CDADB7F997505B8FAFED5EB7E8F96C97D87307FDB925E8A0ED8D99D124D9A15AF79DB26C5C28C859A99B3EEBCA9429212636B9DFF97634993AA4D6C381BC3F0057974EA099170FA13A4FD90776E240000001 MNT4_753_Fr>out.txt
./target/release/paramgenredc_param 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff Secp256r1_Fq>out.txt
依赖项
~2.4–3MB
~62K SLoC