文件名称:plonky:基于Plonk和Halo的递归SNARK
文件大小:156KB
文件格式:ZIP
更新时间:2024-05-29 23:15:27
cryptography halo zk-snarks plonk Rust
隆基 Plonky是递归参数的原型实现。 它大致基于 ,并进行了一些自定义: 虽然PLONK使用的基于配对的多项式承诺方案,但我们使用技术的批处理变体来递归验证基于离散对数的多项式承诺。 标准的PLONK模型是为算术电路设计的; 它使用单个约束来验证加性和乘性关系。 我们使用各种自定义门,例如执行置换步骤的门。 我们的约束的最大程度为8,而标准PLONK中为3。 在标准PLONK中,每个门与三根导线相互作用,通常被认为是两根输入导线和一根输出导线。 我们使用更高的Arity-每个门9条线-尽管置换参数中仅涉及6条线。 可以将其他3条视为“建议”线。 Plonk论文中的零知识技术会导致每个见证人多项式的阶次略高于2的幂,这不适用于Halo。 我们使用。 有关更多详细信息,请参见。 免责声明 该代码尚未经过彻底的审查或测试,因此不应在任何生产系统中使用。
【文件预览】:
plonky-master
----tests()
--------prove_and_verify.rs(16KB)
--------prove_and_verify_recursive.rs(2KB)
----.rustfmt.toml(55B)
----src()
--------pseudorandom.rs(880B)
--------target.rs(3KB)
--------circuit_foreign_field.rs(4KB)
--------bin()
--------hash_to_curve.rs(5KB)
--------halo.rs(8KB)
--------verifier.rs(14KB)
--------util.rs(899B)
--------circuit_ordering.rs(4KB)
--------serialization.rs(12KB)
--------field()
--------plonk_proof.rs(14KB)
--------partition.rs(6KB)
--------plonk_recursion.rs(23KB)
--------conversions.rs(928B)
--------mds.rs(2KB)
--------bigint()
--------rescue.rs(4KB)
--------plonk_util.rs(13KB)
--------plonk.rs(27KB)
--------polynomial.rs(18KB)
--------plonk_challenger.rs(10KB)
--------curve()
--------fft.rs(8KB)
--------witness.rs(8KB)
--------poly_commit.rs(4KB)
--------lib.rs(2KB)
--------circuit_bigint.rs(19KB)
--------gates()
--------circuit_builder.rs(40KB)
--------circuit_curve.rs(26KB)
----Cargo.toml(1KB)
----benches()
--------bls12_base.rs(1KB)
--------hash_to_curve.rs(647B)
--------bls12_g1_summations.rs(1KB)
--------bigint_arithmetic.rs(772B)
--------bls12_g1.rs(2KB)
--------bls12_scalar.rs(1KB)
--------fft.rs(2KB)
--------tweedledee_base.rs(1KB)
----.gitignore(50B)
----.cargo()
--------config(43B)
----plookup()
--------tests()
--------src()
--------Cargo.toml(217B)
--------README.md(82B)
----README.md(2KB)