From 82d5ac50710b37bb091dab1eb5086f4a8ec38bc4 Mon Sep 17 00:00:00 2001 From: eittah Date: Sat, 28 Sep 2024 12:57:08 +0800 Subject: [PATCH] 45_plonky3 --- 45_Plonky3.md | 1127 +++++++++++++++++ Appendix/Plonky3/.github/dependabot.yml | 6 + Appendix/Plonky3/.github/workflows/ci.yml | 127 ++ Appendix/Plonky3/.gitignore | 3 + Appendix/Plonky3/Cargo.toml | 38 + Appendix/Plonky3/LICENSE-APACHE | 202 +++ Appendix/Plonky3/LICENSE-MIT | 21 + Appendix/Plonky3/README.md | 206 +++ Appendix/Plonky3/air/Cargo.toml | 12 + Appendix/Plonky3/air/src/air.rs | 224 ++++ Appendix/Plonky3/air/src/lib.rs | 11 + Appendix/Plonky3/air/src/virtual_column.rs | 125 ++ ...gon Plonky3 Updated Final Audit Report.pdf | Bin 0 -> 284198 bytes Appendix/Plonky3/baby-bear/Cargo.toml | 34 + .../Plonky3/baby-bear/benches/bench_field.rs | 55 + .../Plonky3/baby-bear/benches/extension.rs | 37 + .../Plonky3/baby-bear/src/aarch64_neon/mod.rs | 4 + .../baby-bear/src/aarch64_neon/packing.rs | 33 + .../baby-bear/src/aarch64_neon/poseidon2.rs | 64 + Appendix/Plonky3/baby-bear/src/baby_bear.rs | 237 ++++ Appendix/Plonky3/baby-bear/src/extension.rs | 45 + Appendix/Plonky3/baby-bear/src/lib.rs | 51 + Appendix/Plonky3/baby-bear/src/mds.rs | 211 +++ Appendix/Plonky3/baby-bear/src/poseidon2.rs | 171 +++ .../Plonky3/baby-bear/src/x86_64_avx2/mod.rs | 4 + .../baby-bear/src/x86_64_avx2/packing.rs | 34 + .../baby-bear/src/x86_64_avx2/poseidon2.rs | 64 + .../baby-bear/src/x86_64_avx512/mod.rs | 4 + .../baby-bear/src/x86_64_avx512/packing.rs | 35 + .../baby-bear/src/x86_64_avx512/poseidon2.rs | 64 + Appendix/Plonky3/blake3/Cargo.toml | 14 + Appendix/Plonky3/blake3/src/lib.rs | 34 + Appendix/Plonky3/bn254-fr/Cargo.toml | 35 + .../Plonky3/bn254-fr/benches/bench_field.rs | 28 + Appendix/Plonky3/bn254-fr/src/lib.rs | 385 ++++++ Appendix/Plonky3/bn254-fr/src/poseidon2.rs | 140 ++ Appendix/Plonky3/challenger/Cargo.toml | 15 + .../challenger/src/duplex_challenger.rs | 233 ++++ .../challenger/src/grinding_challenger.rs | 60 + .../Plonky3/challenger/src/hash_challenger.rs | 172 +++ Appendix/Plonky3/challenger/src/lib.rs | 126 ++ .../challenger/src/multi_field_challenger.rs | 187 +++ .../challenger/src/serializing_challenger.rs | 248 ++++ Appendix/Plonky3/circle/Cargo.toml | 39 + Appendix/Plonky3/circle/benches/cfft.rs | 71 ++ Appendix/Plonky3/circle/examples/lde.rs | 52 + Appendix/Plonky3/circle/src/cfft.rs | 375 ++++++ Appendix/Plonky3/circle/src/deep_quotient.rs | 253 ++++ Appendix/Plonky3/circle/src/domain.rs | 404 ++++++ Appendix/Plonky3/circle/src/folding.rs | 189 +++ Appendix/Plonky3/circle/src/lib.rs | 23 + Appendix/Plonky3/circle/src/ordering.rs | 118 ++ Appendix/Plonky3/circle/src/pcs.rs | 552 ++++++++ Appendix/Plonky3/circle/src/point.rs | 174 +++ Appendix/Plonky3/circle/src/proof.rs | 42 + Appendix/Plonky3/circle/src/prover.rs | 152 +++ Appendix/Plonky3/circle/src/twiddles.rs | 78 ++ Appendix/Plonky3/circle/src/verifier.rs | 139 ++ Appendix/Plonky3/commit/Cargo.toml | 24 + .../commit/src/adapters/extension_mmcs.rs | 89 ++ Appendix/Plonky3/commit/src/adapters/mod.rs | 4 + Appendix/Plonky3/commit/src/domain.rs | 171 +++ Appendix/Plonky3/commit/src/lib.rs | 18 + Appendix/Plonky3/commit/src/mmcs.rs | 78 ++ Appendix/Plonky3/commit/src/pcs.rs | 92 ++ Appendix/Plonky3/commit/src/testing.rs | 172 +++ Appendix/Plonky3/dft/Cargo.toml | 28 + Appendix/Plonky3/dft/benches/fft.rs | 161 +++ Appendix/Plonky3/dft/src/butterflies.rs | 53 + Appendix/Plonky3/dft/src/lib.rs | 21 + Appendix/Plonky3/dft/src/naive.rs | 107 ++ Appendix/Plonky3/dft/src/radix_2_bowers.rs | 130 ++ Appendix/Plonky3/dft/src/radix_2_dit.rs | 69 + .../Plonky3/dft/src/radix_2_dit_parallel.rs | 194 +++ Appendix/Plonky3/dft/src/traits.rs | 126 ++ Appendix/Plonky3/dft/src/util.rs | 25 + Appendix/Plonky3/field-testing/Cargo.toml | 18 + .../Plonky3/field-testing/src/bench_func.rs | 255 ++++ .../Plonky3/field-testing/src/dft_testing.rs | 170 +++ Appendix/Plonky3/field-testing/src/lib.rs | 224 ++++ .../field-testing/src/packedfield_testing.rs | 469 +++++++ Appendix/Plonky3/field/Cargo.toml | 16 + Appendix/Plonky3/field/src/array.rs | 203 +++ Appendix/Plonky3/field/src/batch_inverse.rs | 99 ++ Appendix/Plonky3/field/src/exponentiation.rs | 123 ++ .../field/src/extension/binomial_extension.rs | 645 ++++++++++ .../Plonky3/field/src/extension/complex.rs | 108 ++ Appendix/Plonky3/field/src/extension/mod.rs | 64 + Appendix/Plonky3/field/src/field.rs | 482 +++++++ Appendix/Plonky3/field/src/helpers.rs | 183 +++ Appendix/Plonky3/field/src/lib.rs | 20 + Appendix/Plonky3/field/src/packed.rs | 208 +++ Appendix/Plonky3/fri/Cargo.toml | 37 + Appendix/Plonky3/fri/benches/fold_even_odd.rs | 46 + Appendix/Plonky3/fri/src/config.rs | 53 + Appendix/Plonky3/fri/src/fold_even_odd.rs | 96 ++ Appendix/Plonky3/fri/src/lib.rs | 17 + Appendix/Plonky3/fri/src/proof.rs | 42 + Appendix/Plonky3/fri/src/prover.rs | 151 +++ Appendix/Plonky3/fri/src/two_adic_pcs.rs | 483 +++++++ Appendix/Plonky3/fri/src/verifier.rs | 146 +++ Appendix/Plonky3/fri/tests/fri.rs | 141 +++ Appendix/Plonky3/fri/tests/pcs.rs | 256 ++++ Appendix/Plonky3/goldilocks/Cargo.toml | 33 + .../Plonky3/goldilocks/benches/bench_field.rs | 56 + .../Plonky3/goldilocks/benches/extension.rs | 24 + Appendix/Plonky3/goldilocks/src/extension.rs | 54 + Appendix/Plonky3/goldilocks/src/lib.rs | 630 +++++++++ Appendix/Plonky3/goldilocks/src/mds.rs | 790 ++++++++++++ Appendix/Plonky3/goldilocks/src/poseidon2.rs | 363 ++++++ .../Plonky3/goldilocks/src/x86_64_avx2/mds.rs | 155 +++ .../Plonky3/goldilocks/src/x86_64_avx2/mod.rs | 3 + .../goldilocks/src/x86_64_avx2/packing.rs | 771 +++++++++++ .../goldilocks/src/x86_64_avx512/mds.rs | 155 +++ .../goldilocks/src/x86_64_avx512/mod.rs | 3 + .../goldilocks/src/x86_64_avx512/packing.rs | 730 +++++++++++ Appendix/Plonky3/interpolation/Cargo.toml | 13 + Appendix/Plonky3/interpolation/src/lib.rs | 114 ++ Appendix/Plonky3/keccak-air/Cargo.toml | 42 + .../examples/prove_baby_bear_keccak.rs | 76 ++ .../examples/prove_baby_bear_poseidon2.rs | 83 ++ .../examples/prove_baby_bear_sha256.rs | 75 ++ .../prove_baby_bear_sha256_compress.rs | 75 ++ .../examples/prove_goldilocks_keccak.rs | 75 ++ .../examples/prove_goldilocks_poseidon.rs | 78 ++ .../examples/prove_goldilocks_sha256.rs | 75 ++ .../examples/prove_koala_bear_poseidon2.rs | 82 ++ .../keccak-air/examples/prove_m31_keccak.rs | 78 ++ .../examples/prove_m31_poseidon2.rs | 85 ++ .../keccak-air/examples/prove_m31_sha256.rs | 78 ++ Appendix/Plonky3/keccak-air/src/air.rs | 193 +++ Appendix/Plonky3/keccak-air/src/columns.rs | 148 +++ Appendix/Plonky3/keccak-air/src/constants.rs | 167 +++ Appendix/Plonky3/keccak-air/src/generation.rs | 163 +++ Appendix/Plonky3/keccak-air/src/lib.rs | 23 + Appendix/Plonky3/keccak-air/src/logic.rs | 30 + .../Plonky3/keccak-air/src/round_flags.rs | 29 + Appendix/Plonky3/keccak/Cargo.toml | 33 + .../Plonky3/keccak/benches/bench_avx2.old | 172 +++ .../keccak/benches/bench_avx2split.old | 96 ++ .../Plonky3/keccak/benches/bench_avx512.old | 295 +++++ .../Plonky3/keccak/benches/bench_keccak.rs | 79 ++ .../Plonky3/keccak/benches/bench_neon.rs.old | 109 ++ Appendix/Plonky3/keccak/src/avx2.rs | 482 +++++++ Appendix/Plonky3/keccak/src/avx2split.rs | 523 ++++++++ Appendix/Plonky3/keccak/src/avx512.rs | 650 ++++++++++ Appendix/Plonky3/keccak/src/fallback.rs | 19 + Appendix/Plonky3/keccak/src/lib.rs | 124 ++ Appendix/Plonky3/keccak/src/neon.rs | 317 +++++ Appendix/Plonky3/koala-bear/Cargo.toml | 30 + .../Plonky3/koala-bear/benches/bench_field.rs | 55 + .../koala-bear/src/aarch64_neon/mod.rs | 4 + .../koala-bear/src/aarch64_neon/packing.rs | 33 + .../koala-bear/src/aarch64_neon/poseidon2.rs | 64 + Appendix/Plonky3/koala-bear/src/extension.rs | 31 + Appendix/Plonky3/koala-bear/src/koala_bear.rs | 217 ++++ Appendix/Plonky3/koala-bear/src/lib.rs | 49 + Appendix/Plonky3/koala-bear/src/poseidon2.rs | 174 +++ .../Plonky3/koala-bear/src/x86_64_avx2/mod.rs | 4 + .../koala-bear/src/x86_64_avx2/packing.rs | 34 + .../koala-bear/src/x86_64_avx2/poseidon2.rs | 64 + .../koala-bear/src/x86_64_avx512/mod.rs | 4 + .../koala-bear/src/x86_64_avx512/packing.rs | 35 + .../koala-bear/src/x86_64_avx512/poseidon2.rs | 64 + Appendix/Plonky3/matrix/Cargo.toml | 24 + .../matrix/benches/transpose_benchmark.rs | 41 + Appendix/Plonky3/matrix/src/bitrev.rs | 70 + Appendix/Plonky3/matrix/src/dense.rs | 522 ++++++++ Appendix/Plonky3/matrix/src/extension.rs | 106 ++ Appendix/Plonky3/matrix/src/lib.rs | 221 ++++ Appendix/Plonky3/matrix/src/mul.rs | 32 + .../Plonky3/matrix/src/row_index_mapped.rs | 98 ++ Appendix/Plonky3/matrix/src/sparse.rs | 91 ++ Appendix/Plonky3/matrix/src/stack.rs | 99 ++ Appendix/Plonky3/matrix/src/strided.rs | 44 + Appendix/Plonky3/matrix/src/util.rs | 40 + Appendix/Plonky3/maybe-rayon/Cargo.toml | 12 + Appendix/Plonky3/maybe-rayon/src/lib.rs | 69 + Appendix/Plonky3/maybe-rayon/src/serial.rs | 181 +++ Appendix/Plonky3/mds/Cargo.toml | 24 + Appendix/Plonky3/mds/benches/mds.rs | 55 + Appendix/Plonky3/mds/src/butterflies.rs | 42 + Appendix/Plonky3/mds/src/coset_mds.rs | 180 +++ .../Plonky3/mds/src/integrated_coset_mds.rs | 149 +++ .../Plonky3/mds/src/karatsuba_convolution.rs | 388 ++++++ Appendix/Plonky3/mds/src/lib.rs | 15 + Appendix/Plonky3/mds/src/util.rs | 121 ++ Appendix/Plonky3/merkle-tree/Cargo.toml | 30 + .../merkle-tree/benches/merkle_tree.rs | 132 ++ Appendix/Plonky3/merkle-tree/src/lib.rs | 9 + .../Plonky3/merkle-tree/src/merkle_tree.rs | 282 +++++ Appendix/Plonky3/merkle-tree/src/mmcs.rs | 544 ++++++++ Appendix/Plonky3/mersenne-31/Cargo.toml | 36 + .../mersenne-31/benches/bench_field.rs | 37 + .../Plonky3/mersenne-31/benches/extension.rs | 33 + .../mersenne-31/src/aarch64_neon/mod.rs | 4 + .../mersenne-31/src/aarch64_neon/packing.rs | 598 +++++++++ .../mersenne-31/src/aarch64_neon/poseidon2.rs | 94 ++ Appendix/Plonky3/mersenne-31/src/complex.rs | 183 +++ Appendix/Plonky3/mersenne-31/src/dft.rs | 242 ++++ Appendix/Plonky3/mersenne-31/src/extension.rs | 153 +++ Appendix/Plonky3/mersenne-31/src/lib.rs | 58 + Appendix/Plonky3/mersenne-31/src/mds.rs | 387 ++++++ .../Plonky3/mersenne-31/src/mersenne_31.rs | 500 ++++++++ Appendix/Plonky3/mersenne-31/src/poseidon2.rs | 190 +++ .../Plonky3/mersenne-31/src/radix_2_dit.rs | 157 +++ .../mersenne-31/src/x86_64_avx2/mod.rs | 4 + .../mersenne-31/src/x86_64_avx2/packing.rs | 667 ++++++++++ .../mersenne-31/src/x86_64_avx2/poseidon2.rs | 94 ++ .../mersenne-31/src/x86_64_avx512/mod.rs | 4 + .../mersenne-31/src/x86_64_avx512/packing.rs | 770 +++++++++++ .../src/x86_64_avx512/poseidon2.rs | 94 ++ Appendix/Plonky3/monolith/Cargo.toml | 20 + Appendix/Plonky3/monolith/benches/permute.rs | 30 + Appendix/Plonky3/monolith/src/lib.rs | 12 + Appendix/Plonky3/monolith/src/monolith.rs | 217 ++++ Appendix/Plonky3/monolith/src/monolith_mds.rs | 94 ++ Appendix/Plonky3/monolith/src/util.rs | 8 + Appendix/Plonky3/monty-31/Cargo.toml | 24 + .../Plonky3/monty-31/src/aarch64_neon/mod.rs | 4 + .../monty-31/src/aarch64_neon/packing.rs | 720 +++++++++++ .../monty-31/src/aarch64_neon/poseidon2.rs | 34 + Appendix/Plonky3/monty-31/src/data_traits.rs | 134 ++ Appendix/Plonky3/monty-31/src/dft/backward.rs | 175 +++ Appendix/Plonky3/monty-31/src/dft/forward.rs | 201 +++ Appendix/Plonky3/monty-31/src/dft/mod.rs | 292 +++++ Appendix/Plonky3/monty-31/src/extension.rs | 40 + Appendix/Plonky3/monty-31/src/lib.rs | 55 + Appendix/Plonky3/monty-31/src/mds.rs | 386 ++++++ Appendix/Plonky3/monty-31/src/monty_31.rs | 407 ++++++ Appendix/Plonky3/monty-31/src/poseidon2.rs | 123 ++ Appendix/Plonky3/monty-31/src/utils.rs | 56 + .../Plonky3/monty-31/src/x86_64_avx2/mod.rs | 4 + .../monty-31/src/x86_64_avx2/packing.rs | 842 ++++++++++++ .../monty-31/src/x86_64_avx2/poseidon2.rs | 34 + .../Plonky3/monty-31/src/x86_64_avx512/mod.rs | 4 + .../monty-31/src/x86_64_avx512/packing.rs | 786 ++++++++++++ .../monty-31/src/x86_64_avx512/poseidon2.rs | 34 + Appendix/Plonky3/poseidon/Cargo.toml | 21 + Appendix/Plonky3/poseidon/benches/poseidon.rs | 59 + Appendix/Plonky3/poseidon/src/lib.rs | 146 +++ Appendix/Plonky3/poseidon2-air/Cargo.toml | 37 + .../prove_poseidon2_koala_bear_keccak.rs | 139 ++ .../prove_poseidon2_koala_bear_poseidon2.rs | 130 ++ Appendix/Plonky3/poseidon2-air/src/air.rs | 292 +++++ Appendix/Plonky3/poseidon2-air/src/columns.rs | 168 +++ .../Plonky3/poseidon2-air/src/constants.rs | 51 + .../Plonky3/poseidon2-air/src/generation.rs | 264 ++++ Appendix/Plonky3/poseidon2-air/src/lib.rs | 17 + .../Plonky3/poseidon2-air/src/vectorized.rs | 256 ++++ Appendix/Plonky3/poseidon2/Cargo.toml | 24 + .../Plonky3/poseidon2/benches/poseidon2.rs | 104 ++ Appendix/Plonky3/poseidon2/src/diffusion.rs | 45 + Appendix/Plonky3/poseidon2/src/lib.rs | 206 +++ Appendix/Plonky3/poseidon2/src/matrix.rs | 181 +++ .../Plonky3/poseidon2/src/round_numbers.rs | 72 ++ Appendix/Plonky3/rescue/Cargo.toml | 28 + Appendix/Plonky3/rescue/benches/rescue.rs | 56 + Appendix/Plonky3/rescue/src/lib.rs | 11 + Appendix/Plonky3/rescue/src/rescue.rs | 239 ++++ Appendix/Plonky3/rescue/src/sbox.rs | 57 + Appendix/Plonky3/rescue/src/util.rs | 36 + Appendix/Plonky3/rustfmt.toml | 3 + Appendix/Plonky3/sha256/Cargo.toml | 23 + Appendix/Plonky3/sha256/src/lib.rs | 95 ++ Appendix/Plonky3/symmetric/Cargo.toml | 10 + Appendix/Plonky3/symmetric/src/compression.rs | 72 ++ Appendix/Plonky3/symmetric/src/hash.rs | 58 + Appendix/Plonky3/symmetric/src/hasher.rs | 21 + Appendix/Plonky3/symmetric/src/lib.rs | 19 + Appendix/Plonky3/symmetric/src/permutation.rs | 13 + .../symmetric/src/serializing_hasher.rs | 149 +++ Appendix/Plonky3/symmetric/src/sponge.rs | 122 ++ Appendix/Plonky3/uni-stark/Cargo.toml | 32 + .../uni-stark/src/check_constraints.rs | 108 ++ Appendix/Plonky3/uni-stark/src/config.rs | 69 + Appendix/Plonky3/uni-stark/src/folder.rs | 119 ++ Appendix/Plonky3/uni-stark/src/lib.rs | 30 + Appendix/Plonky3/uni-stark/src/proof.rs | 37 + Appendix/Plonky3/uni-stark/src/prover.rs | 192 +++ .../Plonky3/uni-stark/src/symbolic_builder.rs | 148 +++ .../uni-stark/src/symbolic_expression.rs | 268 ++++ .../uni-stark/src/symbolic_variable.rs | 142 +++ Appendix/Plonky3/uni-stark/src/verifier.rs | 163 +++ .../Plonky3/uni-stark/src/zerofier_coset.rs | 85 ++ Appendix/Plonky3/uni-stark/tests/fib_air.rs | 178 +++ Appendix/Plonky3/uni-stark/tests/mul_air.rs | 327 +++++ Appendix/Plonky3/util/Cargo.toml | 8 + .../Plonky3/util/src/array_serialization.rs | 55 + Appendix/Plonky3/util/src/lib.rs | 268 ++++ Appendix/Plonky3/util/src/linear_map.rs | 69 + images/45_plonky3.jpg | Bin 0 -> 250327 bytes 292 files changed, 41398 insertions(+) create mode 100644 45_Plonky3.md create mode 100644 Appendix/Plonky3/.github/dependabot.yml create mode 100644 Appendix/Plonky3/.github/workflows/ci.yml create mode 100644 Appendix/Plonky3/.gitignore create mode 100644 Appendix/Plonky3/Cargo.toml create mode 100644 Appendix/Plonky3/LICENSE-APACHE create mode 100644 Appendix/Plonky3/LICENSE-MIT create mode 100644 Appendix/Plonky3/README.md create mode 100644 Appendix/Plonky3/air/Cargo.toml create mode 100644 Appendix/Plonky3/air/src/air.rs create mode 100644 Appendix/Plonky3/air/src/lib.rs create mode 100644 Appendix/Plonky3/air/src/virtual_column.rs create mode 100644 Appendix/Plonky3/audits/Least Authority- Polygon Plonky3 Updated Final Audit Report.pdf create mode 100644 Appendix/Plonky3/baby-bear/Cargo.toml create mode 100644 Appendix/Plonky3/baby-bear/benches/bench_field.rs create mode 100644 Appendix/Plonky3/baby-bear/benches/extension.rs create mode 100644 Appendix/Plonky3/baby-bear/src/aarch64_neon/mod.rs create mode 100644 Appendix/Plonky3/baby-bear/src/aarch64_neon/packing.rs create mode 100644 Appendix/Plonky3/baby-bear/src/aarch64_neon/poseidon2.rs create mode 100644 Appendix/Plonky3/baby-bear/src/baby_bear.rs create mode 100644 Appendix/Plonky3/baby-bear/src/extension.rs create mode 100644 Appendix/Plonky3/baby-bear/src/lib.rs create mode 100644 Appendix/Plonky3/baby-bear/src/mds.rs create mode 100644 Appendix/Plonky3/baby-bear/src/poseidon2.rs create mode 100644 Appendix/Plonky3/baby-bear/src/x86_64_avx2/mod.rs create mode 100644 Appendix/Plonky3/baby-bear/src/x86_64_avx2/packing.rs create mode 100644 Appendix/Plonky3/baby-bear/src/x86_64_avx2/poseidon2.rs create mode 100644 Appendix/Plonky3/baby-bear/src/x86_64_avx512/mod.rs create mode 100644 Appendix/Plonky3/baby-bear/src/x86_64_avx512/packing.rs create mode 100644 Appendix/Plonky3/baby-bear/src/x86_64_avx512/poseidon2.rs create mode 100644 Appendix/Plonky3/blake3/Cargo.toml create mode 100644 Appendix/Plonky3/blake3/src/lib.rs create mode 100644 Appendix/Plonky3/bn254-fr/Cargo.toml create mode 100644 Appendix/Plonky3/bn254-fr/benches/bench_field.rs create mode 100644 Appendix/Plonky3/bn254-fr/src/lib.rs create mode 100644 Appendix/Plonky3/bn254-fr/src/poseidon2.rs create mode 100644 Appendix/Plonky3/challenger/Cargo.toml create mode 100644 Appendix/Plonky3/challenger/src/duplex_challenger.rs create mode 100644 Appendix/Plonky3/challenger/src/grinding_challenger.rs create mode 100644 Appendix/Plonky3/challenger/src/hash_challenger.rs create mode 100644 Appendix/Plonky3/challenger/src/lib.rs create mode 100644 Appendix/Plonky3/challenger/src/multi_field_challenger.rs create mode 100644 Appendix/Plonky3/challenger/src/serializing_challenger.rs create mode 100644 Appendix/Plonky3/circle/Cargo.toml create mode 100644 Appendix/Plonky3/circle/benches/cfft.rs create mode 100644 Appendix/Plonky3/circle/examples/lde.rs create mode 100644 Appendix/Plonky3/circle/src/cfft.rs create mode 100644 Appendix/Plonky3/circle/src/deep_quotient.rs create mode 100644 Appendix/Plonky3/circle/src/domain.rs create mode 100644 Appendix/Plonky3/circle/src/folding.rs create mode 100644 Appendix/Plonky3/circle/src/lib.rs create mode 100644 Appendix/Plonky3/circle/src/ordering.rs create mode 100644 Appendix/Plonky3/circle/src/pcs.rs create mode 100644 Appendix/Plonky3/circle/src/point.rs create mode 100644 Appendix/Plonky3/circle/src/proof.rs create mode 100644 Appendix/Plonky3/circle/src/prover.rs create mode 100644 Appendix/Plonky3/circle/src/twiddles.rs create mode 100644 Appendix/Plonky3/circle/src/verifier.rs create mode 100644 Appendix/Plonky3/commit/Cargo.toml create mode 100644 Appendix/Plonky3/commit/src/adapters/extension_mmcs.rs create mode 100644 Appendix/Plonky3/commit/src/adapters/mod.rs create mode 100644 Appendix/Plonky3/commit/src/domain.rs create mode 100644 Appendix/Plonky3/commit/src/lib.rs create mode 100644 Appendix/Plonky3/commit/src/mmcs.rs create mode 100644 Appendix/Plonky3/commit/src/pcs.rs create mode 100644 Appendix/Plonky3/commit/src/testing.rs create mode 100644 Appendix/Plonky3/dft/Cargo.toml create mode 100644 Appendix/Plonky3/dft/benches/fft.rs create mode 100644 Appendix/Plonky3/dft/src/butterflies.rs create mode 100644 Appendix/Plonky3/dft/src/lib.rs create mode 100644 Appendix/Plonky3/dft/src/naive.rs create mode 100644 Appendix/Plonky3/dft/src/radix_2_bowers.rs create mode 100644 Appendix/Plonky3/dft/src/radix_2_dit.rs create mode 100644 Appendix/Plonky3/dft/src/radix_2_dit_parallel.rs create mode 100644 Appendix/Plonky3/dft/src/traits.rs create mode 100644 Appendix/Plonky3/dft/src/util.rs create mode 100644 Appendix/Plonky3/field-testing/Cargo.toml create mode 100644 Appendix/Plonky3/field-testing/src/bench_func.rs create mode 100644 Appendix/Plonky3/field-testing/src/dft_testing.rs create mode 100644 Appendix/Plonky3/field-testing/src/lib.rs create mode 100644 Appendix/Plonky3/field-testing/src/packedfield_testing.rs create mode 100644 Appendix/Plonky3/field/Cargo.toml create mode 100644 Appendix/Plonky3/field/src/array.rs create mode 100644 Appendix/Plonky3/field/src/batch_inverse.rs create mode 100644 Appendix/Plonky3/field/src/exponentiation.rs create mode 100644 Appendix/Plonky3/field/src/extension/binomial_extension.rs create mode 100644 Appendix/Plonky3/field/src/extension/complex.rs create mode 100644 Appendix/Plonky3/field/src/extension/mod.rs create mode 100644 Appendix/Plonky3/field/src/field.rs create mode 100644 Appendix/Plonky3/field/src/helpers.rs create mode 100644 Appendix/Plonky3/field/src/lib.rs create mode 100644 Appendix/Plonky3/field/src/packed.rs create mode 100644 Appendix/Plonky3/fri/Cargo.toml create mode 100644 Appendix/Plonky3/fri/benches/fold_even_odd.rs create mode 100644 Appendix/Plonky3/fri/src/config.rs create mode 100644 Appendix/Plonky3/fri/src/fold_even_odd.rs create mode 100644 Appendix/Plonky3/fri/src/lib.rs create mode 100644 Appendix/Plonky3/fri/src/proof.rs create mode 100644 Appendix/Plonky3/fri/src/prover.rs create mode 100644 Appendix/Plonky3/fri/src/two_adic_pcs.rs create mode 100644 Appendix/Plonky3/fri/src/verifier.rs create mode 100644 Appendix/Plonky3/fri/tests/fri.rs create mode 100644 Appendix/Plonky3/fri/tests/pcs.rs create mode 100644 Appendix/Plonky3/goldilocks/Cargo.toml create mode 100644 Appendix/Plonky3/goldilocks/benches/bench_field.rs create mode 100644 Appendix/Plonky3/goldilocks/benches/extension.rs create mode 100644 Appendix/Plonky3/goldilocks/src/extension.rs create mode 100644 Appendix/Plonky3/goldilocks/src/lib.rs create mode 100644 Appendix/Plonky3/goldilocks/src/mds.rs create mode 100644 Appendix/Plonky3/goldilocks/src/poseidon2.rs create mode 100644 Appendix/Plonky3/goldilocks/src/x86_64_avx2/mds.rs create mode 100644 Appendix/Plonky3/goldilocks/src/x86_64_avx2/mod.rs create mode 100644 Appendix/Plonky3/goldilocks/src/x86_64_avx2/packing.rs create mode 100644 Appendix/Plonky3/goldilocks/src/x86_64_avx512/mds.rs create mode 100644 Appendix/Plonky3/goldilocks/src/x86_64_avx512/mod.rs create mode 100644 Appendix/Plonky3/goldilocks/src/x86_64_avx512/packing.rs create mode 100644 Appendix/Plonky3/interpolation/Cargo.toml create mode 100644 Appendix/Plonky3/interpolation/src/lib.rs create mode 100644 Appendix/Plonky3/keccak-air/Cargo.toml create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_baby_bear_keccak.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_baby_bear_poseidon2.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_baby_bear_sha256.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_baby_bear_sha256_compress.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_goldilocks_keccak.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_goldilocks_poseidon.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_goldilocks_sha256.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_koala_bear_poseidon2.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_m31_keccak.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_m31_poseidon2.rs create mode 100644 Appendix/Plonky3/keccak-air/examples/prove_m31_sha256.rs create mode 100644 Appendix/Plonky3/keccak-air/src/air.rs create mode 100644 Appendix/Plonky3/keccak-air/src/columns.rs create mode 100644 Appendix/Plonky3/keccak-air/src/constants.rs create mode 100644 Appendix/Plonky3/keccak-air/src/generation.rs create mode 100644 Appendix/Plonky3/keccak-air/src/lib.rs create mode 100644 Appendix/Plonky3/keccak-air/src/logic.rs create mode 100644 Appendix/Plonky3/keccak-air/src/round_flags.rs create mode 100644 Appendix/Plonky3/keccak/Cargo.toml create mode 100644 Appendix/Plonky3/keccak/benches/bench_avx2.old create mode 100644 Appendix/Plonky3/keccak/benches/bench_avx2split.old create mode 100644 Appendix/Plonky3/keccak/benches/bench_avx512.old create mode 100644 Appendix/Plonky3/keccak/benches/bench_keccak.rs create mode 100644 Appendix/Plonky3/keccak/benches/bench_neon.rs.old create mode 100644 Appendix/Plonky3/keccak/src/avx2.rs create mode 100644 Appendix/Plonky3/keccak/src/avx2split.rs create mode 100644 Appendix/Plonky3/keccak/src/avx512.rs create mode 100644 Appendix/Plonky3/keccak/src/fallback.rs create mode 100644 Appendix/Plonky3/keccak/src/lib.rs create mode 100644 Appendix/Plonky3/keccak/src/neon.rs create mode 100644 Appendix/Plonky3/koala-bear/Cargo.toml create mode 100644 Appendix/Plonky3/koala-bear/benches/bench_field.rs create mode 100644 Appendix/Plonky3/koala-bear/src/aarch64_neon/mod.rs create mode 100644 Appendix/Plonky3/koala-bear/src/aarch64_neon/packing.rs create mode 100644 Appendix/Plonky3/koala-bear/src/aarch64_neon/poseidon2.rs create mode 100644 Appendix/Plonky3/koala-bear/src/extension.rs create mode 100644 Appendix/Plonky3/koala-bear/src/koala_bear.rs create mode 100644 Appendix/Plonky3/koala-bear/src/lib.rs create mode 100644 Appendix/Plonky3/koala-bear/src/poseidon2.rs create mode 100644 Appendix/Plonky3/koala-bear/src/x86_64_avx2/mod.rs create mode 100644 Appendix/Plonky3/koala-bear/src/x86_64_avx2/packing.rs create mode 100644 Appendix/Plonky3/koala-bear/src/x86_64_avx2/poseidon2.rs create mode 100644 Appendix/Plonky3/koala-bear/src/x86_64_avx512/mod.rs create mode 100644 Appendix/Plonky3/koala-bear/src/x86_64_avx512/packing.rs create mode 100644 Appendix/Plonky3/koala-bear/src/x86_64_avx512/poseidon2.rs create mode 100644 Appendix/Plonky3/matrix/Cargo.toml create mode 100644 Appendix/Plonky3/matrix/benches/transpose_benchmark.rs create mode 100644 Appendix/Plonky3/matrix/src/bitrev.rs create mode 100644 Appendix/Plonky3/matrix/src/dense.rs create mode 100644 Appendix/Plonky3/matrix/src/extension.rs create mode 100644 Appendix/Plonky3/matrix/src/lib.rs create mode 100644 Appendix/Plonky3/matrix/src/mul.rs create mode 100644 Appendix/Plonky3/matrix/src/row_index_mapped.rs create mode 100644 Appendix/Plonky3/matrix/src/sparse.rs create mode 100644 Appendix/Plonky3/matrix/src/stack.rs create mode 100644 Appendix/Plonky3/matrix/src/strided.rs create mode 100644 Appendix/Plonky3/matrix/src/util.rs create mode 100644 Appendix/Plonky3/maybe-rayon/Cargo.toml create mode 100644 Appendix/Plonky3/maybe-rayon/src/lib.rs create mode 100644 Appendix/Plonky3/maybe-rayon/src/serial.rs create mode 100644 Appendix/Plonky3/mds/Cargo.toml create mode 100644 Appendix/Plonky3/mds/benches/mds.rs create mode 100644 Appendix/Plonky3/mds/src/butterflies.rs create mode 100644 Appendix/Plonky3/mds/src/coset_mds.rs create mode 100644 Appendix/Plonky3/mds/src/integrated_coset_mds.rs create mode 100644 Appendix/Plonky3/mds/src/karatsuba_convolution.rs create mode 100644 Appendix/Plonky3/mds/src/lib.rs create mode 100644 Appendix/Plonky3/mds/src/util.rs create mode 100644 Appendix/Plonky3/merkle-tree/Cargo.toml create mode 100644 Appendix/Plonky3/merkle-tree/benches/merkle_tree.rs create mode 100644 Appendix/Plonky3/merkle-tree/src/lib.rs create mode 100644 Appendix/Plonky3/merkle-tree/src/merkle_tree.rs create mode 100644 Appendix/Plonky3/merkle-tree/src/mmcs.rs create mode 100644 Appendix/Plonky3/mersenne-31/Cargo.toml create mode 100644 Appendix/Plonky3/mersenne-31/benches/bench_field.rs create mode 100644 Appendix/Plonky3/mersenne-31/benches/extension.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/aarch64_neon/mod.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/aarch64_neon/packing.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/aarch64_neon/poseidon2.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/complex.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/dft.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/extension.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/lib.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/mds.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/mersenne_31.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/poseidon2.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/radix_2_dit.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/x86_64_avx2/mod.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/x86_64_avx2/packing.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/x86_64_avx2/poseidon2.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/x86_64_avx512/mod.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/x86_64_avx512/packing.rs create mode 100644 Appendix/Plonky3/mersenne-31/src/x86_64_avx512/poseidon2.rs create mode 100644 Appendix/Plonky3/monolith/Cargo.toml create mode 100644 Appendix/Plonky3/monolith/benches/permute.rs create mode 100644 Appendix/Plonky3/monolith/src/lib.rs create mode 100644 Appendix/Plonky3/monolith/src/monolith.rs create mode 100644 Appendix/Plonky3/monolith/src/monolith_mds.rs create mode 100644 Appendix/Plonky3/monolith/src/util.rs create mode 100644 Appendix/Plonky3/monty-31/Cargo.toml create mode 100644 Appendix/Plonky3/monty-31/src/aarch64_neon/mod.rs create mode 100644 Appendix/Plonky3/monty-31/src/aarch64_neon/packing.rs create mode 100644 Appendix/Plonky3/monty-31/src/aarch64_neon/poseidon2.rs create mode 100644 Appendix/Plonky3/monty-31/src/data_traits.rs create mode 100644 Appendix/Plonky3/monty-31/src/dft/backward.rs create mode 100644 Appendix/Plonky3/monty-31/src/dft/forward.rs create mode 100644 Appendix/Plonky3/monty-31/src/dft/mod.rs create mode 100644 Appendix/Plonky3/monty-31/src/extension.rs create mode 100644 Appendix/Plonky3/monty-31/src/lib.rs create mode 100644 Appendix/Plonky3/monty-31/src/mds.rs create mode 100644 Appendix/Plonky3/monty-31/src/monty_31.rs create mode 100644 Appendix/Plonky3/monty-31/src/poseidon2.rs create mode 100644 Appendix/Plonky3/monty-31/src/utils.rs create mode 100644 Appendix/Plonky3/monty-31/src/x86_64_avx2/mod.rs create mode 100644 Appendix/Plonky3/monty-31/src/x86_64_avx2/packing.rs create mode 100644 Appendix/Plonky3/monty-31/src/x86_64_avx2/poseidon2.rs create mode 100644 Appendix/Plonky3/monty-31/src/x86_64_avx512/mod.rs create mode 100644 Appendix/Plonky3/monty-31/src/x86_64_avx512/packing.rs create mode 100644 Appendix/Plonky3/monty-31/src/x86_64_avx512/poseidon2.rs create mode 100644 Appendix/Plonky3/poseidon/Cargo.toml create mode 100644 Appendix/Plonky3/poseidon/benches/poseidon.rs create mode 100644 Appendix/Plonky3/poseidon/src/lib.rs create mode 100644 Appendix/Plonky3/poseidon2-air/Cargo.toml create mode 100644 Appendix/Plonky3/poseidon2-air/examples/prove_poseidon2_koala_bear_keccak.rs create mode 100644 Appendix/Plonky3/poseidon2-air/examples/prove_poseidon2_koala_bear_poseidon2.rs create mode 100644 Appendix/Plonky3/poseidon2-air/src/air.rs create mode 100644 Appendix/Plonky3/poseidon2-air/src/columns.rs create mode 100644 Appendix/Plonky3/poseidon2-air/src/constants.rs create mode 100644 Appendix/Plonky3/poseidon2-air/src/generation.rs create mode 100644 Appendix/Plonky3/poseidon2-air/src/lib.rs create mode 100644 Appendix/Plonky3/poseidon2-air/src/vectorized.rs create mode 100644 Appendix/Plonky3/poseidon2/Cargo.toml create mode 100644 Appendix/Plonky3/poseidon2/benches/poseidon2.rs create mode 100644 Appendix/Plonky3/poseidon2/src/diffusion.rs create mode 100644 Appendix/Plonky3/poseidon2/src/lib.rs create mode 100644 Appendix/Plonky3/poseidon2/src/matrix.rs create mode 100644 Appendix/Plonky3/poseidon2/src/round_numbers.rs create mode 100644 Appendix/Plonky3/rescue/Cargo.toml create mode 100644 Appendix/Plonky3/rescue/benches/rescue.rs create mode 100644 Appendix/Plonky3/rescue/src/lib.rs create mode 100644 Appendix/Plonky3/rescue/src/rescue.rs create mode 100644 Appendix/Plonky3/rescue/src/sbox.rs create mode 100644 Appendix/Plonky3/rescue/src/util.rs create mode 100644 Appendix/Plonky3/rustfmt.toml create mode 100644 Appendix/Plonky3/sha256/Cargo.toml create mode 100644 Appendix/Plonky3/sha256/src/lib.rs create mode 100644 Appendix/Plonky3/symmetric/Cargo.toml create mode 100644 Appendix/Plonky3/symmetric/src/compression.rs create mode 100644 Appendix/Plonky3/symmetric/src/hash.rs create mode 100644 Appendix/Plonky3/symmetric/src/hasher.rs create mode 100644 Appendix/Plonky3/symmetric/src/lib.rs create mode 100644 Appendix/Plonky3/symmetric/src/permutation.rs create mode 100644 Appendix/Plonky3/symmetric/src/serializing_hasher.rs create mode 100644 Appendix/Plonky3/symmetric/src/sponge.rs create mode 100644 Appendix/Plonky3/uni-stark/Cargo.toml create mode 100644 Appendix/Plonky3/uni-stark/src/check_constraints.rs create mode 100644 Appendix/Plonky3/uni-stark/src/config.rs create mode 100644 Appendix/Plonky3/uni-stark/src/folder.rs create mode 100644 Appendix/Plonky3/uni-stark/src/lib.rs create mode 100644 Appendix/Plonky3/uni-stark/src/proof.rs create mode 100644 Appendix/Plonky3/uni-stark/src/prover.rs create mode 100644 Appendix/Plonky3/uni-stark/src/symbolic_builder.rs create mode 100644 Appendix/Plonky3/uni-stark/src/symbolic_expression.rs create mode 100644 Appendix/Plonky3/uni-stark/src/symbolic_variable.rs create mode 100644 Appendix/Plonky3/uni-stark/src/verifier.rs create mode 100644 Appendix/Plonky3/uni-stark/src/zerofier_coset.rs create mode 100644 Appendix/Plonky3/uni-stark/tests/fib_air.rs create mode 100644 Appendix/Plonky3/uni-stark/tests/mul_air.rs create mode 100644 Appendix/Plonky3/util/Cargo.toml create mode 100644 Appendix/Plonky3/util/src/array_serialization.rs create mode 100644 Appendix/Plonky3/util/src/lib.rs create mode 100644 Appendix/Plonky3/util/src/linear_map.rs create mode 100644 images/45_plonky3.jpg diff --git a/45_Plonky3.md b/45_Plonky3.md new file mode 100644 index 0000000..d4b9361 --- /dev/null +++ b/45_Plonky3.md @@ -0,0 +1,1127 @@ +# ETAAcademy-ZKMeme: 45. Plonky3 + + + + + + + + + + +
titletags
45. Plonky3 + + + + + + + +
zk-memebasicquick_readPlonky3
+
+ +[Github](https://github.com/ETAAcademy)|[Twitter](https://twitter.com/ETAAcademy)|[ETA-ZK-Meme](https://github.com/ETAAcademy/ETAAcademy-ZK-Meme) + +Authors: [Eta](https://twitter.com/pwhattie), looking forward to your joining + +# Plonky3: A Deep Dive into Scalable zk-SNARKs of FRI and UniStark + +**Plonky3** is an advanced zero-knowledge succinct non-interactive argument of knowledge (zk-SNARK) system designed for scalable and efficient cryptographic proof generation. At its core, Plonky3 aims to make zk-SNARKs more scalable by introducing many key components, two of which are **FRI (Fast Reed-Solomon Interactive Oracle Proofs of Proximity)** that streamlines the polynomial commitment process, and **UniStark**, a recursive proving system that allows for faster verification and ensures the scalability of zero-knowledge proofs. + +## 1.FRI (Fast Reed-Solomon Interactive Oracle Proofs of Proximity) in Plonky3 + +In Plonky3, FRI optimizes the commitment scheme using techniques such as polynomial folding, batching, and low-degree extensions (LDE), all of which significantly enhance performance and minimize computation overhead during proof generation. Let's break down the purpose and operations of the main files: + +--- + +- **`two_adic_pcs.rs`**: This file handles polynomials aligned with powers of two. It implements the **Polynomial Commitment Scheme (PCS)** trait, providing the necessary functions for committing, opening, and verifying polynomial data. The main methods—`commit`, `open`, and `verify`—are foundational to the FRI process and allow the prover and verifier to efficiently interact with polynomial commitments. + +- **`proof.rs`**: This file defines the structure of the proof objects generated by the prover during different phases of the FRI protocol, including the **commit phase** and **query-answering phase**. The structures in `proof.rs` are essential for maintaining the integrity of the proof as it is passed between the prover and verifier. + +- **`verifier.rs`**: In the `verifier.rs` file, the most important function here is `verify_query`, which handles the verification of the queries returned by the prover, ensuring that the commitments and proofs align with the expected results. + +- **`fold_even_odd.rs`**: Previously used in Plonky3’s folding process for polynomials, this file has been deprecated in recent versions. + +- **`config.rs`**: This configuration file holds key parameters for the FRI protocol, such as `FriConfig` and `FriGenericConfig`. These configurations include critical values like the **blowup factor** (used in low-degree extensions), the number of queries, and the bits required for proof-of-work. Additionally, `mmcs` (Merkle Matrix Commitment Scheme) is defined here, which is a customized commitment system used for batch polynomial commitments. + +### 1.1 Polynomial Commitment Scheme (PCS) in FRI: Code Structure + +The **Polynomial Commitment Scheme (PCS)** shows the code structure implemented in FRI, which handles matrix folding, polynomial commitments, and verification across multiple rounds, specifically, the folding techniques, Merkle tree generation, and the batch processing that enables FRI's efficiency. + +Before any batch processing occurs, the original data is organized into multiple rounds, where each round consists of matrices with different heights or polynomials of varying degrees. Each round commits into a Merkle tree. Horizontally folding the matrices involves folding matrices of the same height together. For example, when folding a matrix $p(x)$, it requires committing at every fold. After folding, the polynomials of the same degree are reorganized into matrices with a width of two, allowing for simultaneous opening and verification of two values ( i.e., $p_1(-x)$ and $p_1(x)$, one positive and one negative). + +--- + +#### 1.1.1 The `babybear_fri_pcs` and `m31_fri_pcs` Modules + +The `babybear_fri_pcs` module uses the BabyBear domain, while the `m31_fri_pcs` module uses the m31 domain. These modules follow the same structure but operate over different finite fields. + +1. **Selection of types:** The types for the field elements, challenges, and permutations are chosen first. +2. **PCS generation:** The `get_pcs` function generates the PCS (Polynomial Commitment Scheme). +3. **Blowup factors:** Two blowup modules are implemented—`blowup_1` and `blowup_2`—which correspond to blowup factors of 1 and 2, respectively. When the blowup factor is set to 2, the Low Degree Extension (LDE) expands by a factor of 4. Depending on the blowup factor (either 1 or 2), different tests are run using the `make_tests_for_pcs!` macro. + +
Code + +```rust + +mod babybear_fri_pcs { + use super::*; + + type Val = BabyBear; + type Challenge = BinomialExtensionField; + + type Perm = Poseidon2; + type MyHash = PaddingFreeSponge; + type MyCompress = TruncatedPermutation; + + type ValMmcs = + MerkleTreeMmcs<::Packing, ::Packing, MyHash, MyCompress, 8>; + type ChallengeMmcs = ExtensionMmcs; + + type Dft = Radix2DitParallel; + type Challenger = DuplexChallenger; + type MyPcs = TwoAdicFriPcs; + + fn get_pcs(log_blowup: usize) -> (MyPcs, Challenger) { + let perm = Perm::new_from_rng_128( + Poseidon2ExternalMatrixGeneral, + DiffusionMatrixBabyBear::default(), + &mut seeded_rng(), + ); + let hash = MyHash::new(perm.clone()); + let compress = MyCompress::new(perm.clone()); + + let val_mmcs = ValMmcs::new(hash, compress); + let challenge_mmcs = ChallengeMmcs::new(val_mmcs.clone()); + + let fri_config = FriConfig { + log_blowup, + num_queries: 10, + proof_of_work_bits: 8, + mmcs: challenge_mmcs, + }; + + let pcs = MyPcs::new(Dft {}, val_mmcs, fri_config); + (pcs, Challenger::new(perm.clone())) + } + + mod blowup_1 { + make_tests_for_pcs!(super::get_pcs(1)); + } + mod blowup_2 { + make_tests_for_pcs!(super::get_pcs(2)); + } +} + +``` + +
+ +#### 1.1.2 The `macro_rules!` for Generating Matrices + +The `macro_rules!` in `pcs.rs` generates tests dynamically with various matrix dimensions, degrees, and rounds, since PCS tests need to handle various rounds (each containing matrices of different heights) of polynomials efficiently. + +A round here represents a data structure containing matrices of varying heights. In these tests, the log heights are aligned with powers of two to maintain computational efficiency. + +
Code + +```rust + +// Set it up so we create tests inside a module for each pcs, so we get nice error reports +// specific to a failing PCS. + +macro_rules! make_tests_for_pcs { + ($p:expr) => { + #[test] + fn single() { + let p = $p; + for i in 3..6 { + $crate::do_test_fri_pcs(&p, &[&[i]]); + } + } + + #[test] + fn many_equal() { + let p = $p; + for i in 5..8 { + $crate::do_test_fri_pcs(&p, &[&[i; 5]]); + println!("{i} ok"); + } + } + + #[test] + fn many_different() { + let p = $p; + for i in 3..8 { + let degrees = (3..3 + i).collect::>(); + $crate::do_test_fri_pcs(&p, &[°rees]); + } + } + + #[test] + fn many_different_rev() { + let p = $p; + for i in 3..8 { + let degrees = (3..3 + i).rev().collect::>(); + $crate::do_test_fri_pcs(&p, &[°rees]); + } + } + + #[test] + fn multiple_rounds() { + let p = $p; + $crate::do_test_fri_pcs(&p, &[&[3]]); + $crate::do_test_fri_pcs(&p, &[&[3], &[3]]); + $crate::do_test_fri_pcs(&p, &[&[3], &[2]]); + $crate::do_test_fri_pcs(&p, &[&[2], &[3]]); + $crate::do_test_fri_pcs(&p, &[&[3, 4], &[3, 4]]); + $crate::do_test_fri_pcs(&p, &[&[4, 2], &[4, 2]]); + $crate::do_test_fri_pcs(&p, &[&[2, 2], &[3, 3]]); + $crate::do_test_fri_pcs(&p, &[&[3, 3], &[2, 2]]); + $crate::do_test_fri_pcs(&p, &[&[2], &[3, 3]]); + } + }; +} + +``` + +
+ +#### 1.1.3 The `do_test_fri_pcs` Function + +The core function for testing FRI-based PCS is `do_test_fri_pcs`. Let’s break down its key steps: + +1. **Generating domains and polynomials:** Based on the log degrees of each round `log_degrees_by_round`, the `domains_and_polys_by_round` generates polynomials where each log degree dictates the height of the matrix (or the degree of the polynomial). +2. **Committing to polynomials:** Using PCS, the matrices (or polynomials) are committed by `commits_by_round` and supports committing multiple matrices (polynomials) in a single round. +3. **Verifier challenges:** The challenge points `zeta` and `points_by_round` for opening the polynomials are generated, while each column of the matrix can be viewed as a polynomial, and the PCS opens the data by `open(data_and_points, &mut p_challenger)`. +4. **Verification:** Finally, the proof is verified, ensuring that the commitments made by the prover match the verifier’s expectations by `pcs.verify`. + +
Code + +```rust + +fn do_test_fri_pcs( + (pcs, challenger): &(P, Challenger), + log_degrees_by_round: &[&[usize]], +) where + P: Pcs, + P::Domain: PolynomialSpace, + Val: Field, + Standard: Distribution, + Challenge: ExtensionField, + Challenger: Clone + CanObserve + FieldChallenger, +{ + let num_rounds = log_degrees_by_round.len(); + let mut rng = seeded_rng(); + + let mut p_challenger = challenger.clone(); + + let domains_and_polys_by_round = log_degrees_by_round + .iter() + .map(|log_degrees| { + log_degrees + .iter() + .map(|&log_degree| { + let d = 1 << log_degree; + // random width 5-15 + let width = 5 + rng.gen_range(0..=10); + ( + pcs.natural_domain_for_degree(d), + RowMajorMatrix::::rand(&mut rng, d, width), + ) + }) + .collect_vec() + }) + .collect_vec(); + + let (commits_by_round, data_by_round): (Vec<_>, Vec<_>) = domains_and_polys_by_round + .iter() + .map(|domains_and_polys| pcs.commit(domains_and_polys.clone())) + .unzip(); + assert_eq!(commits_by_round.len(), num_rounds); + assert_eq!(data_by_round.len(), num_rounds); + p_challenger.observe_slice(&commits_by_round); + + let zeta: Challenge = p_challenger.sample_ext_element(); + + let points_by_round = log_degrees_by_round + .iter() + .map(|log_degrees| vec![vec![zeta]; log_degrees.len()]) + .collect_vec(); + let data_and_points = data_by_round.iter().zip(points_by_round).collect(); + let (opening_by_round, proof) = pcs.open(data_and_points, &mut p_challenger); + assert_eq!(opening_by_round.len(), num_rounds); + + // Verify the proof. + let mut v_challenger = challenger.clone(); + v_challenger.observe_slice(&commits_by_round); + let verifier_zeta: Challenge = v_challenger.sample_ext_element(); + assert_eq!(verifier_zeta, zeta); + + let commits_and_claims_by_round = izip!( + commits_by_round, + domains_and_polys_by_round, + opening_by_round + ) + .map(|(commit, domains_and_polys, openings)| { + let claims = domains_and_polys + .iter() + .zip(openings) + .map(|((domain, _), mat_openings)| (*domain, vec![(zeta, mat_openings[0].clone())])) + .collect_vec(); + (commit, claims) + }) + .collect_vec(); + assert_eq!(commits_and_claims_by_round.len(), num_rounds); + + pcs.verify(commits_and_claims_by_round, &proof, &mut v_challenger) + .unwrap() +} + +``` + +
+ +### 1.2 Detailed Functionality of `two_adic_pcs.rs` + +The `two_adic_pcs.rs` module implements a Polynomial Commitment Scheme (PCS) tailored to operate over a power-of-two aligned domain. This alignment allows for optimized low-degree extensions, bit-reversal ordering, and efficient matrix handling in a two-adic setting. + +The three core functionalities provided by this PCS implementation are encapsulated in the `PCS` trait: `commit`, `open`, and `verify`. Each of these methods contributes to various stages of polynomial handling, from committing polynomials to verifying their evaluations. + +--- + +#### 1.2.1: `commit` Function + +The `commit` function is responsible for generating a cryptographic commitment to a set of polynomials, encapsulated in matrices. Each matrix is paired with a corresponding domain, and the goal is to ensure that the commitments are aligned with the domain size. + +##### Key Steps: + +1. **Input Arguments**: The function accepts `evaluations`, which are a collection of matrix-domain pairs. Each matrix represents evaluations of a polynomial, and the domain determines the degree and size constraints of that matrix. +2. **Domain-Size Consistency**: It first checks if the height of each matrix corresponds to the size of the domain, ensuring that the number of evaluations matches the expected degree constraints. + +3. **Low-Degree Extension (LDE)**: For each matrix, the function computes the **low-degree extension** (LDE) over a coset using `self.dft.coset_lde_batch`. This extension maps the matrix into a higher-dimensional space, enabling robust commitments even when the degree is extended. + +4. **Bit-Reversing**: After LDE, the rows of each matrix are bit-reversed using `bit_reverse_rows`, which arranges evaluations at $x$ and $-x$ in an alternating fashion. This rearrangement is crucial for efficient evaluation in later stages. + +5. **Commitment Using MMCs**: The resulting matrices, post-extension and bit-reversal, are committed using multi-message commitments (MMCs), producing a cryptographic commitment that serves as the public representation of the polynomial. + +
Code + +```rust + + fn commit( + &self, + evaluations: Vec<(Self::Domain, RowMajorMatrix)>, + ) -> (Self::Commitment, Self::ProverData) { + let ldes: Vec<_> = evaluations + .into_iter() + .map(|(domain, evals)| { + assert_eq!(domain.size(), evals.height()); + let shift = Val::generator() / domain.shift; + // Commit to the bit-reversed LDE. + self.dft + .coset_lde_batch(evals, self.fri.log_blowup, shift) + .bit_reverse_rows() + .to_row_major_matrix() + }) + .collect(); + + self.mmcs.commit(ldes) + } + +``` + +
+ +#### 1.2.2: `open` Function + +The `open` function plays a pivotal role in computing **quotient polynomials**. Given a set of polynomials and evaluation points, it produces the batched quotient polynomial values for a verifier to check. The quotient polynomial $q(x)$ is computed as: + +$$ +q(x_i) = \sum_{k=0}^{w_l-1} \alpha^k \cdot \frac{f_k(x_i) - y_k}{x_i - z} +$$ + +Where: + +- $f_k(x_i)$ represents the $k$-th polynomial evaluated at $x_i$. +- $y_k = f_k(z)$ is the value of $f_k$ at the opening point $z$. +- $\alpha$ is a random challenge used to batch multiple evaluations into a single quotient. + +##### Optimizations for Efficiency: + +1. **Pre-computation of Inverses**: To avoid repeated calculations, the function precomputes $\frac{1}{x_i - z}$ over the largest domain. These precomputed values are reused across smaller domains by simple truncation, leveraging the power-of-two structure of the domain sizes. + +2. **Batching of Alpha Powers**: Instead of recalculating powers of $\alpha$ for each polynomial individually, these powers are computed once for the largest matrix width and then reused with an offset for subsequent computations. This reduces the computational overhead of extension field multiplications. + +3. **Combination of Alpha and Evaluation Values**: For each matrix, the function accumulates the quotient polynomial values by combining the precomputed alpha powers, evaluation values $f_k(x_i)$, and the precomputed inverses. This batching process is optimized to minimize expensive extension field multiplications. + +
Code + +```rust + + fn open( + &self, + // For each round, + rounds: Vec<( + &Self::ProverData, + // for each matrix, + Vec< + // points to open + Vec, + >, + )>, + challenger: &mut Challenger, + ) -> (OpenedValues, Self::Proof) { + /* + + A quick rundown of the optimizations in this function: + We are trying to compute sum_i alpha^i * (p(X) - y)/(X - z), + for each z an opening point, y = p(z). Each p(X) is given as evaluations in bit-reversed order + in the columns of the matrices. y is computed by barycentric interpolation. + X and p(X) are in the base field; alpha, y and z are in the extension. + The primary goal is to minimize extension multiplications. + + - Instead of computing all alpha^i, we just compute alpha^i for i up to the largest width + of a matrix, then multiply by an "alpha offset" when accumulating. + a^0 x0 + a^1 x1 + a^2 x2 + a^3 x3 + ... + = a^0 ( a^0 x0 + a^1 x1 ) + a^2 ( a^0 x2 + a^1 x3 ) + ... + (see `alpha_pows`, `alpha_pow_offset`, `num_reduced`) + + - For each unique point z, we precompute 1/(X-z) for the largest subgroup opened at this point. + Since we compute it in bit-reversed order, smaller subgroups can simply truncate the vector. + (see `inv_denoms`) + + - Then, for each matrix (with columns p_i) and opening point z, we want: + for each row (corresponding to subgroup element X): + reduced[X] += alpha_offset * sum_i [ alpha^i * inv_denom[X] * (p_i[X] - y[i]) ] + + We can factor out inv_denom, and expand what's left: + reduced[X] += alpha_offset * inv_denom[X] * sum_i [ alpha^i * p_i[X] - alpha^i * y[i] ] + + And separate the sum: + reduced[X] += alpha_offset * inv_denom[X] * [ sum_i [ alpha^i * p_i[X] ] - sum_i [ alpha^i * y[i] ] ] + + And now the last sum doesn't depend on X, so we can precompute that for the matrix, too. + So the hot loop (that depends on both X and i) is just: + sum_i [ alpha^i * p_i[X] ] + + with alpha^i an extension, p_i[X] a base + + */ + + // Batch combination challenge + let alpha: Challenge = challenger.sample_ext_element(); + + let mats_and_points = rounds + .iter() + .map(|(data, points)| { + ( + self.mmcs + .get_matrices(data) + .into_iter() + .map(|m| m.as_view()) + .collect_vec(), + points, + ) + }) + .collect_vec(); + let mats = mats_and_points + .iter() + .flat_map(|(mats, _)| mats) + .collect_vec(); + + let global_max_height = mats.iter().map(|m| m.height()).max().unwrap(); + let log_global_max_height = log2_strict_usize(global_max_height); + + // For each unique opening point z, we will find the largest degree bound + // for that point, and precompute 1/(X - z) for the largest subgroup (in bitrev order). + let inv_denoms = compute_inverse_denominators(&mats_and_points, Val::generator()); + + let mut all_opened_values: OpenedValues = vec![]; + + let mut reduced_openings: [_; 32] = core::array::from_fn(|_| None); + let mut num_reduced = [0; 32]; + + for (mats, points) in mats_and_points { + let opened_values_for_round = all_opened_values.pushed_mut(vec![]); + for (mat, points_for_mat) in izip!(mats, points) { + let log_height = log2_strict_usize(mat.height()); + let reduced_opening_for_log_height = reduced_openings[log_height] + .get_or_insert_with(|| vec![Challenge::zero(); mat.height()]); + debug_assert_eq!(reduced_opening_for_log_height.len(), mat.height()); + + let opened_values_for_mat = opened_values_for_round.pushed_mut(vec![]); + for &point in points_for_mat { + let _guard = + info_span!("reduce matrix quotient", dims = %mat.dimensions()).entered(); + + // Use Barycentric interpolation to evaluate the matrix at the given point. + let ys = info_span!("compute opened values with Lagrange interpolation") + .in_scope(|| { + let (low_coset, _) = + mat.split_rows(mat.height() >> self.fri.log_blowup); + interpolate_coset( + &BitReversalPerm::new_view(low_coset), + Val::generator(), + point, + ) + }); + + let alpha_pow_offset = alpha.exp_u64(num_reduced[log_height] as u64); + let reduced_ys: Challenge = dot_product(alpha.powers(), ys.iter().copied()); + + info_span!("reduce rows").in_scope(|| { + mat.dot_ext_powers(alpha) + .zip(reduced_opening_for_log_height.par_iter_mut()) + // This might be longer, but zip will truncate to smaller subgroup + // (which is ok because it's bitrev) + .zip(inv_denoms.get(&point).unwrap().par_iter()) + .for_each(|((reduced_row, ro), &inv_denom)| { + *ro += alpha_pow_offset * (reduced_row - reduced_ys) * inv_denom + }) + }); + + num_reduced[log_height] += mat.width(); + opened_values_for_mat.push(ys); + } + } + } + + let fri_input = reduced_openings.into_iter().rev().flatten().collect_vec(); + + let g: TwoAdicFriGenericConfigForMmcs = + TwoAdicFriGenericConfig(PhantomData); + + let fri_proof = prover::prove(&g, &self.fri, fri_input, challenger, |index| { + rounds + .iter() + .map(|(data, _)| { + let log_max_height = log2_strict_usize(self.mmcs.get_max_height(data)); + let bits_reduced = log_global_max_height - log_max_height; + let reduced_index = index >> bits_reduced; + let (opened_values, opening_proof) = self.mmcs.open_batch(reduced_index, data); + BatchOpening { + opened_values, + opening_proof, + } + }) + .collect() + }); + + (all_opened_values, fri_proof) + } + +``` + +
+ +#### 1.2.3: `verify` Function + +The `verify` function ensures that the polynomial evaluations committed to by the prover are valid by checking the provided proof against the original commitment. + +##### Steps: + +1. **Initialization of Reduced Openings**: A BTreeMap is initialized to store batched quotient polynomial openings, keyed by the logarithmic height of each matrix. + +The first step in handling FRI proofs involves setting up a data structure to manage the polynomial opening data. A mutable `BTreeMap` is initialized to store tuples keyed by the `log_height` of each matrix. These tuples will contain: + +- The accumulated batched parameter, represented as powers of alpha. +- The accumulated batched quotient polynomial opened values. + +This structure will be updated iteratively through the processing of multiple rounds of polynomial data. The core logic for calculating the quotient polynomials’ openings across all rounds follows the formula: + +$$ +\{q_d(x)\}_{d\in S}=\left\{\sum_{k}\sum_{j}\alpha^{k+j } \cdot \frac{p_{jk}(x) - y_{jk}}{x-z_k} \right\}_{d\in S} +$$ + +Here, the indices are defined as: + +- $k \in [1,t]$, where $t$ is the number of open points. +- $j \in [1,m]$, where $m$ is the number of polynomials. +- $d$ is the degree of the polynomial, $p_{jk}$, which is opened at the $k_{th}$ open point with a degree $d$. + +This calculation is crucial for batching the quotient polynomials' opened values across multiple rounds. + +2. **Iterating Over Rounds**: The function iterates over each round’s proof and commitment data, verifying the batched quotient polynomial openings. For each matrix in the round, the verifier checks that the evaluation of the polynomial at a given point matches the values provided by the prover. + +3. **Closure for Matrix Verification**: The key logic for verification is encapsulated in a closure that iterates over all matrices and computes the accumulated quotient polynomial values. + +
Code + +```rust + fn verify( + &self, + // For each round: + rounds: Vec<( + Self::Commitment, + // for each matrix: + Vec<( + // its domain, + Self::Domain, + // for each point: + Vec<( + // the point, + Challenge, + // values at the point + Vec, + )>, + )>, + )>, + proof: &Self::Proof, + challenger: &mut Challenger, + ) -> Result<(), Self::Error> { + // Batch combination challenge + let alpha: Challenge = challenger.sample_ext_element(); + + let log_global_max_height = proof.commit_phase_commits.len() + self.fri.log_blowup; + + let g: TwoAdicFriGenericConfigForMmcs = + TwoAdicFriGenericConfig(PhantomData); + + verifier::verify(&g, &self.fri, proof, challenger, |index, input_proof| { + // TODO: separate this out into functions + + // log_height -> (alpha_pow, reduced_opening) + let mut reduced_openings = BTreeMap::::new(); + + for (batch_opening, (batch_commit, mats)) in izip!(input_proof, &rounds) { + let batch_heights = mats + .iter() + .map(|(domain, _)| domain.size() << self.fri.log_blowup) + .collect_vec(); + let batch_dims = batch_heights + .iter() + // TODO: MMCS doesn't really need width; we put 0 for now. + .map(|&height| Dimensions { width: 0, height }) + .collect_vec(); + + let batch_max_height = batch_heights.iter().max().expect("Empty batch?"); + let log_batch_max_height = log2_strict_usize(*batch_max_height); + let bits_reduced = log_global_max_height - log_batch_max_height; + let reduced_index = index >> bits_reduced; + + self.mmcs.verify_batch( + batch_commit, + &batch_dims, + reduced_index, + &batch_opening.opened_values, + &batch_opening.opening_proof, + )?; + for (mat_opening, (mat_domain, mat_points_and_values)) in + izip!(&batch_opening.opened_values, mats) + { + let log_height = log2_strict_usize(mat_domain.size()) + self.fri.log_blowup; + + let bits_reduced = log_global_max_height - log_height; + let rev_reduced_index = reverse_bits_len(index >> bits_reduced, log_height); + + // todo: this can be nicer with domain methods? + + let x = Val::generator() + * Val::two_adic_generator(log_height).exp_u64(rev_reduced_index as u64); + + let (alpha_pow, ro) = reduced_openings + .entry(log_height) + .or_insert((Challenge::one(), Challenge::zero())); + + for (z, ps_at_z) in mat_points_and_values { + for (&p_at_x, &p_at_z) in izip!(mat_opening, ps_at_z) { + let quotient = (-p_at_z + p_at_x) / (-*z + x); + *ro += *alpha_pow * quotient; + *alpha_pow *= alpha; + } + } + } + } + + // Return reduced openings descending by log_height. + Ok(reduced_openings + .into_iter() + .rev() + .map(|(log_height, (_alpha_pow, ro))| (log_height, ro)) + .collect()) + }) + .expect("fri err"); + + Ok(()) + } +} + +``` + +
+ +### 1.3 Vertical Folding in the FRI Protocol: A Prover and Verifier Perspective + +In the Fast Reed-Solomon Interactive Oracle Proof of Proximity (FRI) protocol, both the prover and verifier must handle numerous polynomials, their evaluations, and corresponding proofs. One of the key processes within this interaction is **vertical folding**, which plays a crucial role in the efficient proof of polynomial degrees and the batching of quotient polynomials. + +--- + +#### 1.3.1 Prover’s Input, Folding and Batching + +The prover in FRI handles a batch of polynomials and needs to evaluate them over specific points, compute quotient polynomials, and perform folding. The prover's input consists of the following elements: + +1. **Inputs**: The prover starts with a batch of polynomials $\{p_j(X)\}_{j=1}^{m}$, their evaluations after a low-degree extension (LDE), and a set of open points $\{z_{jk}\}_{k=0}^{t_j}$. The prover commits to these evaluated polynomials in each round $\{Commit_r\}_{r\in \text{all rounds}}$. + +2. **Batched Quotient Polynomial**: For each distinct degree $d$, the prover computes a batched quotient polynomial as follows: + + $$ + q)d(\omega^i) = \sum_{j, k} \alpha^{k+j} \cdot \frac{p_j(\omega^i) - y_{jk}}{\omega^i - z_k} + $$ + + This results in a set of batched quotient polynomials for all degrees $d \in S$. + +3. **Folding and Batching**: + - **Initialization**: Set $f = q_{dm}$, where $dm$ is the highest degree. + - **Commitment**: Use MMCS to commit $f$ as a matrix. + - **Folding**: Fold $f$ as $f = f_e + \beta f_o$, where $f_e$ and $f_o$ are the even and odd parts of the polynomial, and $\beta$ is a random challenge. + - **Batching**: Update $f$ by adding the next quotient polynomial, $q_d$. + - **Repeat**: Continue folding and batching until $f$ becomes a constant polynomial. + +At the end of the process, the prover has: + +- Commitments to intermediate polynomials $\{C_{f_d}\}_{d \in S}$. +- A final constant polynomial $f_c$. + +This prepares the prover to answer the verifier's queries efficiently, providing opening proofs for verification. + +
Code + +```rust +#[instrument(name = "commit phase", skip_all)] +fn commit_phase( + g: &G, + config: &FriConfig, + inputs: Vec>, + challenger: &mut Challenger, +) -> CommitPhaseResult +where + Val: Field, + Challenge: ExtensionField, + M: Mmcs, + Challenger: FieldChallenger + CanObserve, + G: FriGenericConfig, +{ + let mut inputs_iter = inputs.into_iter().peekable(); + let mut folded = inputs_iter.next().unwrap(); + let mut commits = vec![]; + let mut data = vec![]; + + while folded.len() > config.blowup() { + let leaves = RowMajorMatrix::new(folded, 2); + let (commit, prover_data) = config.mmcs.commit_matrix(leaves); + challenger.observe(commit.clone()); + + let beta: Challenge = challenger.sample_ext_element(); + // We passed ownership of `current` to the MMCS, so get a reference to it + let leaves = config.mmcs.get_matrices(&prover_data).pop().unwrap(); + folded = g.fold_matrix(beta, leaves.as_view()); + + commits.push(commit); + data.push(prover_data); + + if let Some(v) = inputs_iter.next_if(|v| v.len() == folded.len()) { + izip!(&mut folded, v).for_each(|(c, x)| *c += x); + } + } + + // We should be left with `blowup` evaluations of a constant polynomial. + assert_eq!(folded.len(), config.blowup()); + let final_poly = folded[0]; + for x in folded { + assert_eq!(x, final_poly); + } + challenger.observe_ext_element(final_poly); + + CommitPhaseResult { + commits, + data, + final_poly, + } +} + +``` + +
+ +#### 1.3.2 Vertical Folding in the Verifier + +The verifier's task is to validate the prover's folded polynomials and opening proofs. The vertical folding process for the verifier follows these steps: + +1. **Verifier Input**: The verifier receives the prover’s commitments $\{Commit_r\}_{r \in \text{all rounds}}$, all input and query opened values, and the sample query index $\delta$. + +2. **Initialize Folding**: The verifier initializes the folded evaluation $e = 0$. + +3. **Batching**: The verifier batches the folded evaluation by setting $e = e + q_d(\delta)$ for each degree $d$, ensuring the degree of $q_d(\delta)$ matches the current degree of $e$. + +4. **Check Openings**: The verifier checks the opening of $e$ by comparing the computed value with the prover's opening proof. + +5. **Folding**: The verifier computes the next folded evaluation using the current $e$, the folding parameter $\beta$, the query index $\delta$, and the sibling value corresponding to the current fold. + +6. **Iteration**: Steps 2–5 are repeated for the number of iterations corresponding to the logarithm of the degree. + +Finally, the verifier arrives at a final folded evaluation $e\_{\text{final}}$ and checks its equality with the constant polynomial $f_c$ sent by the prover. + +
Code + +```rust + +fn verify_query<'a, G, F, M>( + g: &G, + config: &FriConfig, + mut index: usize, + steps: impl Iterator>, + reduced_openings: Vec<(usize, F)>, + log_max_height: usize, +) -> Result> +where + F: Field, + M: Mmcs + 'a, + G: FriGenericConfig, +{ + let mut folded_eval = F::zero(); + let mut ro_iter = reduced_openings.into_iter().peekable(); + + for (log_folded_height, (&beta, comm, opening)) in izip!((0..log_max_height).rev(), steps) { + if let Some((_, ro)) = ro_iter.next_if(|(lh, _)| *lh == log_folded_height + 1) { + folded_eval += ro; + } + + let index_sibling = index ^ 1; + let index_pair = index >> 1; + + let mut evals = vec![folded_eval; 2]; + evals[index_sibling % 2] = opening.sibling_value; + + let dims = &[Dimensions { + width: 2, + height: 1 << log_folded_height, + }]; + config + .mmcs + .verify_batch( + comm, + dims, + index_pair, + &[evals.clone()], + &opening.opening_proof, + ) + .map_err(FriError::CommitPhaseMmcsError)?; + + index = index_pair; + + folded_eval = g.fold_row(index, log_folded_height, beta, evals.into_iter()); + } + + debug_assert!(index < config.blowup(), "index was {}", index); + debug_assert!( + ro_iter.next().is_none(), + "verifier reduced_openings were not in descending order?" + ); + + Ok(folded_eval) +} + +``` + +
+ +## 2.Uni-STARK: Overview of Prover and Verifier Roles in Plonky3 + +The Uni-STARK system in **Plonky3** generally follows the structure of STARKs as mentioned before. Below is a step-by-step breakdown of the process, which includes committing to trace and quotient polynomials, opening them for verification, and the eventual query phase for proof validation. + +### 2.1. Commit Phase + +The **commit** phase involves committing to both the trace polynomials and the quotient polynomials: + +--- + +**Step 1: Commit to Trace Polynomials** + +- First, we calculate the trace, which could be something like a Fibonacci sequence. The trace table consists of several columns, each representing a trace polynomial. After performing a low-degree extension (LDE), these trace polynomials are committed to. + - The trace table is represented as a `RowMajorMatrix>`. The trace polynomials are committed over a multiplicative subgroup called the trace domain. To prevent the quotient polynomial from being computed over the same domain (which would result in the quotient being zero), the `pcs.commit` function offsets the trace domain to a coset and performs the commitment over the LDE combined with a bit-reversal technique. + +**Step 2: Commit to the Quotient Polynomial** + +- The quotient polynomial is computed by applying the constraints to the trace polynomials (like Fibonacci recurrence rules) and then dividing the result by a zero polynomial $Z(X)$ to form the quotient polynomial. + - A coset corresponding to the trace domain is selected, with the size of the coset group being $\log(\text{degree}) + \log(\text{quotient degree})$. + - The trace on the quotient domain represents the trace polynomials on that domain. Transitioning from the trace domain to the quotient domain involves shifting by the coset's offset. For example, converting a polynomial from the original domain to the coset involves a shift $x \mapsto gx$, where $g$ is the coset generator. + - Quotient values are calculated, and the degrees of the quotient polynomials are aligned using a random $\alpha$. In Plonky3, the degree of the trace polynomial is usually less than the quotient polynomial degree, but here the quotient polynomial degree equals $\log(\text{degree}) + \log(\text{quotient degree})$. + - Using the `get_evaluations_on_domain` function from `two_adic_pcs.rs`, LDE evaluations are performed. The number of rows needed is adjusted based on the quotient domain, and bit-reversed rows are processed from the Merkle tree or from previous trace commitments to match the larger quotient degree. + +Key formulas include: + +- $C_0(X) = a(X) + b(X) - b(gX)$ (enforcing the first transition constraint) +- $C_1(X) = a(gX) - b(X)$ (enforcing the second transition constraint) +- $q_0(X) = \frac{C_0(X)}{Z_H(X)}$ and $q_1(X) = \frac{C_1(X)}{Z_H(X)}$ + +To align degrees, a random $\alpha$ is used, producing modified quotient polynomials $q_0'(X)$ and $q_1'(X)$. These are combined to form $Q(X) = q_0'(X) + q_1'(X)$, where the domain is on a coset. + +**Step 3: Splitting the Quotient Polynomial into Chunks** + +- To optimize the FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity) protocol, the quotient polynomial is split into chunks. These smaller quotient polynomials are of the same degree as the trace polynomial. + - For example, suppose we have a multiplicative subgroup of order 6, and we want to split the quotient polynomial into two smaller polynomials. This splitting is done by evaluating $Q(X)$ at generators $w^2$ and $w^4$, where $w$ is a two-adic generator. + - The quotient polynomial is split as $Q(z) = Q_1(z^S) + z \cdot Q_2(z^S)$, where evaluations take place at domain generators shifted by cosets. + +After splitting, each chunk is committed individually as follows: - $Q_1(X)$ and $Q_2(X)$ are committed using their low-degree extensions. - A Merkle tree is constructed from the commitment matrices of the quotient polynomial chunks, and the final commitment is recorded. + +In the Fiat–Shamir phase, random challenge points $\zeta$ and $\zeta_{\text{next}}$ are used to verify that the committed trace and quotient polynomials satisfy the required constraint relationships. The `pcs.open` function retrieves the necessary proofs for verification, ensuring consistency between the commitments and the actual trace polynomials. + +
Code + +```rust + + let degree = trace.height(); + let log_degree = log2_strict_usize(degree); + + let log_quotient_degree = get_log_quotient_degree::, A>(air, 0, public_values.len()); + let quotient_degree = 1 << log_quotient_degree; + + let pcs = config.pcs(); + let trace_domain = pcs.natural_domain_for_degree(degree); + + let (trace_commit, trace_data) = + info_span!("commit to trace data").in_scope(|| pcs.commit(vec![(trace_domain, trace)])); + + // Observe the instance. + challenger.observe(Val::::from_canonical_usize(log_degree)); + // TODO: Might be best practice to include other instance data here; see verifier comment. + + challenger.observe(trace_commit.clone()); + challenger.observe_slice(public_values); + let alpha: SC::Challenge = challenger.sample_ext_element(); + + let quotient_domain = + trace_domain.create_disjoint_domain(1 << (log_degree + log_quotient_degree)); + + let trace_on_quotient_domain = pcs.get_evaluations_on_domain(&trace_data, 0, quotient_domain); + + let quotient_values = quotient_values( + air, + public_values, + trace_domain, + quotient_domain, + trace_on_quotient_domain, + alpha, + ); + let quotient_flat = RowMajorMatrix::new_col(quotient_values).flatten_to_base(); + let quotient_chunks = quotient_domain.split_evals(quotient_degree, quotient_flat); + let qc_domains = quotient_domain.split_domains(quotient_degree); + + let (quotient_commit, quotient_data) = info_span!("commit to quotient poly chunks") + .in_scope(|| pcs.commit(izip!(qc_domains, quotient_chunks).collect_vec())); + challenger.observe(quotient_commit.clone()); + + let commitments = Commitments { + trace: trace_commit, + quotient_chunks: quotient_commit, + }; + + let zeta: SC::Challenge = challenger.sample(); + let zeta_next = trace_domain.next_point(zeta).unwrap(); + +``` + +
+ +### 2.2 Opening Phase + +--- + +The **opening** phase allows the prover to reveal specific evaluations of the trace and quotient polynomials to the verifier: + +#### 2.2.1 Constructing the Opening Proof + +When the verifier receives the proof, it needs to verify that the trace and quotient polynomials satisfy the constraints at random points, typically denoted as $\zeta$ and $\zeta\_{\text{next}}$, which are sampled in an extension field. Since the committed trace polynomials are over the base field, $\zeta$ does not belong to the original multiplicative subgroup over which the trace polynomials were committed. + +**Step 1: Opening the Trace Polynomial** + +- To ensure that the trace polynomial satisfies the given constraints, we need to "open" the trace polynomial at the points $\zeta$ and $\zeta\_{\text{next}}$. +- Since the trace polynomials at $\zeta$ and $\zeta\_{\text{next}}$ have the same degree, we can linearly combine them into a reduced polynomial, $\text{reduce}\_0(X)$, which simplifies further computations. + +**Step 2: Opening the Quotient Polynomial** + +- Similarly, we open the quotient polynomial at $\zeta$. Here, we compute two quotient-related polynomials, $ldt_2(X)$ and $ldt_3(X)$, which represent quotient polynomials over different chunks (since the quotient polynomial has been split into chunks). +- The quotient chunks at $\zeta$ are combined into a reduced polynomial $\text{reduce}\_1(X)$. This polynomial also has the same degree as $\text{reduce}\_0(X)$, allowing the two reduced polynomials to be tested together. + +#### 2.2.2. Low-Degree Testing of the Reduced Polynomials + +Once the reduced polynomials $\text{reduce}\_0(X)$ and $\text{reduce}\_1(X)$ are constructed, they undergo a **low-degree test** to verify that both polynomials have a degree lower than a specified threshold. + +**Steps for Low-Degree Testing**: + +1. **Opening the Trace Polynomial**: + - Open the trace polynomial at points $\zeta$ and $\zeta\_{\text{next}}$, as well as the quotient polynomial chunks $Q_1(X)$ and $Q_2(X)$ at $\zeta$. + - These openings yield intermediate values used to compute the reduced polynomials. +2. **Constructing the Reduced Polynomial**: + - Compute the reduced trace polynomial: + \[ + \text{reduce}_0(X) = \sum \alpha^i \cdot ldt_0(X)\_i + \alpha^{i+1} \cdot ldt_0'(X) + \] + where $ldt_0(X)$ and $ldt_0'(X)$ are the Lagrange polynomials formed from the trace evaluations at $\zeta$ and $\zeta_{\text{next}}$. + - Similarly, compute the reduced quotient polynomial: + \[ + \text{reduce}\_1(X) = \sum \alpha^i \cdot ldt_2(X)\_i + \alpha^{i+1} \cdot ldt_3(X) + \] + where $ldt_2(X)$ and $ldt_3(X)$ are Lagrange polynomials derived from quotient evaluations. +3. **Performing the Low-Degree Test**: + - Both reduced polynomials $\text{reduce}\_0(X)$ and $\text{reduce}\_1(X)$ undergo a low-degree test to verify their degree bounds. + +
Code + +```rust + + let (opened_values, opening_proof) = info_span!("open").in_scope(|| { + pcs.open( + vec![ + (&trace_data, vec![vec![zeta, zeta_next]]), + ( + "ient_data, + // open every chunk at zeta + (0..quotient_degree).map(|_| vec![zeta]).collect_vec(), + ), + ], + challenger, + ) + }); + let trace_local = opened_values[0][0][0].clone(); + let trace_next = opened_values[0][0][1].clone(); + let quotient_chunks = opened_values[1].iter().map(|v| v[0].clone()).collect_vec(); + let opened_values = OpenedValues { + trace_local, + trace_next, + quotient_chunks, + }; + Proof { + commitments, + opened_values, + opening_proof, + degree_bits: log_degree, + } + +``` + +
+ +### 2.3. Query Phase: Verifying Constraints + +In the query phase, the verifier confirms that the trace polynomial at $\zeta$ and $\zeta\_{\text{next}}$, along with the quotient polynomial, satisfy the constraints. This involves several steps: + +**Step 1: Verifying $Q(\zeta)$** + +- The verifier checks if the trace polynomial at $\zeta$ and $\zeta\_{\text{next}}$ satisfies the constraints by applying the transition rules, allowing the calculation of $Q(\zeta)$. +- The quotient polynomial values $Q_1(\zeta)$ and $Q_2(\zeta)$ are combined to reconstruct $Q(\zeta)$. The verifier then compares the reconstructed $Q(\zeta)$ to the expected result. If they match, the constraints are satisfied. +- In the code, this is done by folding the constraints and comparing the results: + +```rust +if folded_constraints = sels.inv_zeroifier != quotient { ... } +``` + +**Step 3.2: Addressing ZPS and Domain Shifts** + +- The process of reconstructing $Q(\zeta)$ introduces a potential **Zero-Polynomial Shift (ZPS)** problem. When using Lagrange interpolation to reconstruct $Q(\zeta)$, errors can occur due to domain shrinking. +- For example, $Q(X) = Q_1(X^2) + X \cdot Q_1(-X^2)$ has a smaller domain, so additional corrections are needed to account for the missing elements from the other coset domains. This is handled by computing a ZPS correction factor to adjust for these domain shifts. + +The Lagrange interpolants are adjusted as follows: + +$$ +zps[i] = \prod_{j \neq i} \frac{\left(\frac{x}{\text{shift}_j}\right)^n - 1}{\left(\frac{\text{shift}_i}{\text{shift}\_j}\right)^n - 1} +$$ + +The verifier then uses this ZPS correction to verify the consistency of the trace and quotient evaluations at $\zeta$ and $\zeta\_{\text{next}}$, ensuring that all domain shifts are correctly handled. + +
Code + +```rust + +pcs.verify( + vec![ + ( + commitments.trace.clone(), + vec![( + trace_domain, + vec![ + (zeta, opened_values.trace_local.clone()), + (zeta_next, opened_values.trace_next.clone()), + ], + )], + ), + ( + commitments.quotient_chunks.clone(), + quotient_chunks_domains + .iter() + .zip(&opened_values.quotient_chunks) + .map(|(domain, values)| (*domain, vec![(zeta, values.clone())])) + .collect_vec(), + ), + ], + opening_proof, + challenger, + ) + .map_err(VerificationError::InvalidOpeningArgument)?; + + let zps = quotient_chunks_domains + .iter() + .enumerate() + .map(|(i, domain)| { + quotient_chunks_domains + .iter() + .enumerate() + .filter(|(j, _)| *j != i) + .map(|(_, other_domain)| { + other_domain.zp_at_point(zeta) + * other_domain.zp_at_point(domain.first_point()).inverse() + }) + .product::() + }) + .collect_vec(); + + let quotient = opened_values + .quotient_chunks + .iter() + .enumerate() + .map(|(ch_i, ch)| { + ch.iter() + .enumerate() + .map(|(e_i, &c)| zps[ch_i] * SC::Challenge::monomial(e_i) * c) + .sum::() + }) + .sum::(); + + let sels = trace_domain.selectors_at_point(zeta); + + let main = VerticalPair::new( + RowMajorMatrixView::new_row(&opened_values.trace_local), + RowMajorMatrixView::new_row(&opened_values.trace_next), + ); + + let mut folder = VerifierConstraintFolder { + main, + public_values, + is_first_row: sels.is_first_row, + is_last_row: sels.is_last_row, + is_transition: sels.is_transition, + alpha, + accumulator: SC::Challenge::zero(), + }; + air.eval(&mut folder); + let folded_constraints = folder.accumulator; + + // Finally, check that + // folded_constraints(zeta) / Z_H(zeta) = quotient(zeta) + if folded_constraints * sels.inv_zeroifier != quotient { + return Err(VerificationError::OodEvaluationMismatch); + } + + +``` + +
+ +### Conclusion + +As demand for zk-SNARKs continues to grow, Plonky3's blend of FRI and UniStark technologies positions it as a cutting-edge tool for scaling cryptographic proofs, enabling faster, more secure, and more efficient decentralized ecosystems. + +
+ Image 1 +
diff --git a/Appendix/Plonky3/.github/dependabot.yml b/Appendix/Plonky3/.github/dependabot.yml new file mode 100644 index 0000000..53f8242 --- /dev/null +++ b/Appendix/Plonky3/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "cargo" + directory: "/" + schedule: + interval: "weekly" diff --git a/Appendix/Plonky3/.github/workflows/ci.yml b/Appendix/Plonky3/.github/workflows/ci.yml new file mode 100644 index 0000000..c18ace1 --- /dev/null +++ b/Appendix/Plonky3/.github/workflows/ci.yml @@ -0,0 +1,127 @@ +name: CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "*" ] + +env: + CARGO_TERM_COLOR: always + CARGO_INCREMENTAL: 1 + +jobs: + build_and_test: + name: Build and Test + runs-on: ubuntu-latest + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + id: rs-stable + + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: rust-${{ steps.rs-stable.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml') }} + + - name: Build + run: cargo build --verbose --all-targets + + - name: Check with parallel + run: cargo check --verbose --all-targets --features parallel + + - name: Test + run: cargo test --verbose + + - name: Test with parallel + run: cargo test --verbose --features parallel + + lint: + name: Formatting and Clippy + runs-on: ubuntu-latest + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy + id: rs-stable + + - uses: dtolnay/rust-toolchain@nightly + with: + components: rustfmt + + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: rust-${{ steps.rs-stable.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml') }} + + - name: Clippy + run: cargo +stable clippy --all-targets -- -D warnings + + - name: Format + run: cargo +nightly fmt --all -- --check + + check_crates: + name: Check Crates + runs-on: ubuntu-latest + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + id: rs-stable + + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: rust-${{ steps.rs-stable.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml', '**/Cargo.lock') }} + + - name: Cargo Check Crates + run: | + cargo check --verbose --package p3-air + cargo check --verbose --package p3-baby-bear + cargo check --verbose --package p3-blake3 + cargo check --verbose --package p3-challenger + cargo check --verbose --package p3-commit + cargo check --verbose --package p3-dft + cargo check --verbose --package p3-field + cargo check --verbose --package p3-field-testing + cargo check --verbose --package p3-fri + cargo check --verbose --package p3-goldilocks + cargo check --verbose --package p3-interpolation + cargo check --verbose --package p3-keccak + cargo check --verbose --package p3-keccak-air + cargo check --verbose --package p3-matrix + cargo check --verbose --package p3-maybe-rayon + cargo check --verbose --package p3-mds + cargo check --verbose --package p3-merkle-tree + cargo check --verbose --package p3-mersenne-31 + cargo check --verbose --package p3-monolith + cargo check --verbose --package p3-poseidon + cargo check --verbose --package p3-poseidon2 + cargo check --verbose --package p3-rescue + cargo check --verbose --package p3-symmetric + cargo check --verbose --package p3-uni-stark + cargo check --verbose --package p3-util diff --git a/Appendix/Plonky3/.gitignore b/Appendix/Plonky3/.gitignore new file mode 100644 index 0000000..d90e843 --- /dev/null +++ b/Appendix/Plonky3/.gitignore @@ -0,0 +1,3 @@ +/target +Cargo.lock +flamegraph.svg diff --git a/Appendix/Plonky3/Cargo.toml b/Appendix/Plonky3/Cargo.toml new file mode 100644 index 0000000..991a146 --- /dev/null +++ b/Appendix/Plonky3/Cargo.toml @@ -0,0 +1,38 @@ +[workspace] +resolver = "2" +members = [ + "air", + "baby-bear", + "blake3", + "bn254-fr", + "challenger", + "circle", + "commit", + "dft", + "field", + "field-testing", + "fri", + "goldilocks", + "interpolation", + "koala-bear", + "keccak", + "keccak-air", + "matrix", + "merkle-tree", + "maybe-rayon", + "mersenne-31", + "monolith", + "monty-31", + "poseidon", + "poseidon2", + "poseidon2-air", + "rescue", + "sha256", + "symmetric", + "util", + "uni-stark", +] + +[profile.profiling] +inherits = "release" +debug = true diff --git a/Appendix/Plonky3/LICENSE-APACHE b/Appendix/Plonky3/LICENSE-APACHE new file mode 100644 index 0000000..1e5006d --- /dev/null +++ b/Appendix/Plonky3/LICENSE-APACHE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/Appendix/Plonky3/LICENSE-MIT b/Appendix/Plonky3/LICENSE-MIT new file mode 100644 index 0000000..ae83932 --- /dev/null +++ b/Appendix/Plonky3/LICENSE-MIT @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 The Plonky3 Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Appendix/Plonky3/README.md b/Appendix/Plonky3/README.md new file mode 100644 index 0000000..a91810b --- /dev/null +++ b/Appendix/Plonky3/README.md @@ -0,0 +1,206 @@ +![Plonky3-powered-by-polygon](https://github.com/Plonky3/Plonky3/assets/86010/7ec356ad-b0f3-4c4c-aa1d-3a151c1065e7) + +Plonky3 is a toolkit for implementing polynomial IOPs (PIOPs), such as PLONK and STARKs. It aims to support several polynomial commitment schemes, such as Brakedown. + +This is the "core" repo, but the plan is to move each crate into its own repo once APIs stabilize. + + +## Status + +Fields: +- [x] Mersenne31 + - [x] "complex" extension field + - [x] ~128 bit extension field + - [x] AVX2 + - [x] AVX-512 + - [x] NEON +- [x] BabyBear + - [x] ~128 bit extension field + - [x] AVX2 + - [x] AVX-512 + - [x] NEON +- [x] Goldilocks + - [x] ~128 bit extension field + +Generalized vector commitment schemes +- [x] generalized Merkle tree + +Polynomial commitment schemes +- [x] FRI-based PCS +- [ ] tensor PCS +- [ ] univariate-to-multivariate adapter +- [ ] multivariate-to-univariate adapter + +PIOPs +- [x] univariate STARK +- [ ] multivariate STARK +- [ ] PLONK + +Codes +- [x] Brakedown +- [x] Reed-Solomon + +Interpolation +- [x] Barycentric interpolation +- [x] radix-2 DIT FFT +- [x] radix-2 Bowers FFT +- [ ] four-step FFT +- [x] Mersenne circle group FFT + +Hashes +- [x] Rescue +- [x] Poseidon +- [x] Poseidon2 +- [x] BLAKE3 + - [ ] modifications to tune BLAKE3 for hashing small leaves +- [x] Keccak-256 +- [x] Monolith + + +## Benchmark + +We sometimes use a Keccak AIR to compare Plonky3's performance to other libraries like Plonky2. Several variations are possible here, with different fields and so forth, but here is one example: +``` +RUST_LOG=info cargo run --example prove_baby_bear_keccak --release --features parallel +``` + +## CPU features + +Plonky3 contains optimizations that rely on newer CPU instructions that are not available in older processors. These instruction sets include x86's [BMI1 and 2](https://en.wikipedia.org/wiki/X86_Bit_manipulation_instruction_set), [AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2), and [AVX-512](https://en.wikipedia.org/wiki/AVX-512). Rustc does not emit those instructions by default; they must be explicitly enabled through the `target-feature` compiler option (or implicitly by setting `target-cpu`). To enable all features that are supported on your machine, you can set `target-cpu` to `native`. For example, to run the tests: +``` +RUSTFLAGS="-Ctarget-cpu=native" cargo test +``` + +Support for some instructions, such as AVX-512, is still experimental. They are only available in the nightly build of Rustc and are enabled by the [`nightly-features` feature flag](#nightly-only-optimizations). To use them, you must enable the flag in Rustc (e.g. by setting `target-feature`) and you must also enable the `nightly-features` feature. + + +## Nightly-only optimizations + +Some optimizations (in particular, AVX-512-optimized math) rely on features that are currently available only in the nightly build of Rustc. To use them, you need to enable the `nightly-features` feature. For example, to run the tests: +``` +cargo test --features nightly-features +``` + + +## Known issues + +The verifier might panic upon receiving certain invalid proofs. + + +## License + +Licensed under either of + +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) +* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + + +## Guidance for external contributors + +Do you feel keen and able to help with Plonky3? That's great! We +encourage external contributions! + +We want to make it easy for you to contribute, but at the same time we +must manage the burden of reviewing external contributions. We are a +small team, and the time we spend reviewing external contributions is +time we are not developing ourselves. + +We also want to help you to avoid inadvertently duplicating work that +is already underway, or building something that we will not +want to incorporate. + +First and foremost, please keep in mind that this is a highly +technical piece of software and contributing is only suitable for +experienced mathematicians, cryptographers and software engineers. + +The Polygon Zero Team reserves the right to accept or reject any +external contribution for any reason, including a simple lack of time +to maintain it (now or in the future); we may even decline to review +something that is not considered a sufficiently high priority for us. + +To avoid disappointment, please communicate your intention to +contribute openly, while respecting the limited time and availability +we have to review and provide guidance for external contributions. It +is a good idea to drop a note in our public Discord #development +channel of your intention to work on something, whether an issue, a +new feature, or a performance improvement. This is probably all that's +really required to avoid duplication of work with other contributors. + +What follows are some more specific requests for how to write PRs in a +way that will make them easy for us to review. Deviating from these +guidelines may result in your PR being rejected, ignored or forgotten. + + +### General guidance for your PR + +Obviously PRs will not be considered unless they pass our Github +CI. The Github CI is not executed for PRs from forks, but you can +simulate the Github CI by running the commands in +`.github/workflows/ci.yml`. + +Under no circumstances should a single PR mix different purposes: Your +PR is either a bug fix, a new feature, or a performance improvement, +never a combination. Nor should you include, for example, two +unrelated performance improvements in one PR. Please just submit +separate PRs. The goal is to make reviewing your PR as simple as +possible, and you should be thinking about how to compose the PR to +minimise the burden on the reviewer. + +Plonky3 uses stable Rust, so any PR that depends on unstable features +is likely to be rejected. It's possible that we may relax this policy +in the future, but we aim to minimize the use of unstable features; +please discuss with us before enabling any. + +Here are a few specific guidelines for the three main categories of +PRs that we expect: + + +#### The PR fixes a bug + +In the PR description, please clearly but briefly describe + +1. the bug (could be a reference to a GH issue; if it is from a + discussion (on Discord/email/etc. for example), please copy in the + relevant parts of the discussion); +2. what turned out to the cause the bug; and +3. how the PR fixes the bug. + +Wherever possible, PRs that fix bugs should include additional tests +that (i) trigger the original bug and (ii) pass after applying the PR. + + +#### The PR implements a new feature + +If you plan to contribute an implementation of a new feature, please +double-check with the Polygon Zero team that it is a sufficient +priority for us that it will be reviewed and integrated. + +In the PR description, please clearly but briefly describe + +1. what the feature does +2. the approach taken to implement it + +All PRs for new features must include a suitable test suite. + + +#### The PR improves performance + +Performance improvements are particularly welcome! Please note that it +can be quite difficult to establish true improvements for the +workloads we care about. To help filter out false positives, the PR +description for a performance improvement must clearly identify + +1. the target bottleneck (only one per PR to avoid confusing things!) +2. how performance is measured +3. characteristics of the machine used (CPU, OS, #threads if appropriate) +4. performance before and after the PR + + +### Licensing + +Unless you explicitly state otherwise, any contribution intentionally +submitted for inclusion in the work by you, as defined in the +Apache-2.0 license, shall be dual licensed as above, without any +additional terms or conditions. diff --git a/Appendix/Plonky3/air/Cargo.toml b/Appendix/Plonky3/air/Cargo.toml new file mode 100644 index 0000000..d4bea1d --- /dev/null +++ b/Appendix/Plonky3/air/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "p3-air" +version = "0.1.0" +edition = "2021" +license = "MIT OR Apache-2.0" + +[dependencies] +p3-field = { path = "../field" } +p3-matrix = { path = "../matrix" } + +[dev-dependencies] +p3-matrix = { path = "../matrix" } diff --git a/Appendix/Plonky3/air/src/air.rs b/Appendix/Plonky3/air/src/air.rs new file mode 100644 index 0000000..e8d7735 --- /dev/null +++ b/Appendix/Plonky3/air/src/air.rs @@ -0,0 +1,224 @@ +use core::ops::{Add, Mul, Sub}; + +use p3_field::{AbstractExtensionField, AbstractField, ExtensionField, Field}; +use p3_matrix::dense::RowMajorMatrix; +use p3_matrix::Matrix; + +/// An AIR (algebraic intermediate representation). +pub trait BaseAir: Sync { + /// The number of columns (a.k.a. registers) in this AIR. + fn width(&self) -> usize; + + fn preprocessed_trace(&self) -> Option> { + None + } +} + +/// An AIR that works with a particular `AirBuilder`. +pub trait Air: BaseAir { + fn eval(&self, builder: &mut AB); +} + +pub trait AirBuilder: Sized { + type F: Field; + + type Expr: AbstractField + + From + + Add + + Add + + Sub + + Sub + + Mul + + Mul; + + type Var: Into + + Copy + + Send + + Sync + + Add + + Add + + Add + + Sub + + Sub + + Sub + + Mul + + Mul + + Mul; + + type M: Matrix; + + fn main(&self) -> Self::M; + + fn is_first_row(&self) -> Self::Expr; + fn is_last_row(&self) -> Self::Expr; + fn is_transition(&self) -> Self::Expr { + self.is_transition_window(2) + } + fn is_transition_window(&self, size: usize) -> Self::Expr; + + /// Returns a sub-builder whose constraints are enforced only when `condition` is nonzero. + fn when>(&mut self, condition: I) -> FilteredAirBuilder<'_, Self> { + FilteredAirBuilder { + inner: self, + condition: condition.into(), + } + } + + /// Returns a sub-builder whose constraints are enforced only when `x != y`. + fn when_ne, I2: Into>( + &mut self, + x: I1, + y: I2, + ) -> FilteredAirBuilder<'_, Self> { + self.when(x.into() - y.into()) + } + + /// Returns a sub-builder whose constraints are enforced only on the first row. + fn when_first_row(&mut self) -> FilteredAirBuilder<'_, Self> { + self.when(self.is_first_row()) + } + + /// Returns a sub-builder whose constraints are enforced only on the last row. + fn when_last_row(&mut self) -> FilteredAirBuilder<'_, Self> { + self.when(self.is_last_row()) + } + + /// Returns a sub-builder whose constraints are enforced on all rows except the last. + fn when_transition(&mut self) -> FilteredAirBuilder<'_, Self> { + self.when(self.is_transition()) + } + + /// Returns a sub-builder whose constraints are enforced on all rows except the last `size - 1`. + fn when_transition_window(&mut self, size: usize) -> FilteredAirBuilder<'_, Self> { + self.when(self.is_transition_window(size)) + } + + fn assert_zero>(&mut self, x: I); + + fn assert_one>(&mut self, x: I) { + self.assert_zero(x.into() - Self::Expr::one()); + } + + fn assert_eq, I2: Into>(&mut self, x: I1, y: I2) { + self.assert_zero(x.into() - y.into()); + } + + /// Assert that `x` is a boolean, i.e. either 0 or 1. + fn assert_bool>(&mut self, x: I) { + let x = x.into(); + self.assert_zero(x.clone() * (x - Self::Expr::one())); + } +} + +pub trait AirBuilderWithPublicValues: AirBuilder { + type PublicVar: Into + Copy; + + fn public_values(&self) -> &[Self::PublicVar]; +} + +pub trait PairBuilder: AirBuilder { + fn preprocessed(&self) -> Self::M; +} + +pub trait ExtensionBuilder: AirBuilder { + type EF: ExtensionField; + + type ExprEF: AbstractExtensionField; + + type VarEF: Into + Copy + Send + Sync; + + fn assert_zero_ext(&mut self, x: I) + where + I: Into; + + fn assert_eq_ext(&mut self, x: I1, y: I2) + where + I1: Into, + I2: Into, + { + self.assert_zero_ext(x.into() - y.into()); + } + + fn assert_one_ext(&mut self, x: I) + where + I: Into, + { + self.assert_eq_ext(x, Self::ExprEF::one()) + } +} + +pub trait PermutationAirBuilder: ExtensionBuilder { + type MP: Matrix; + + type RandomVar: Into + Copy; + + fn permutation(&self) -> Self::MP; + + fn permutation_randomness(&self) -> &[Self::RandomVar]; +} + +#[derive(Debug)] +pub struct FilteredAirBuilder<'a, AB: AirBuilder> { + pub inner: &'a mut AB, + condition: AB::Expr, +} + +impl<'a, AB: AirBuilder> FilteredAirBuilder<'a, AB> { + pub fn condition(&self) -> AB::Expr { + self.condition.clone() + } +} + +impl<'a, AB: AirBuilder> AirBuilder for FilteredAirBuilder<'a, AB> { + type F = AB::F; + type Expr = AB::Expr; + type Var = AB::Var; + type M = AB::M; + + fn main(&self) -> Self::M { + self.inner.main() + } + + fn is_first_row(&self) -> Self::Expr { + self.inner.is_first_row() + } + + fn is_last_row(&self) -> Self::Expr { + self.inner.is_last_row() + } + + fn is_transition_window(&self, size: usize) -> Self::Expr { + self.inner.is_transition_window(size) + } + + fn assert_zero>(&mut self, x: I) { + self.inner.assert_zero(self.condition() * x.into()); + } +} + +impl<'a, AB: ExtensionBuilder> ExtensionBuilder for FilteredAirBuilder<'a, AB> { + type EF = AB::EF; + type ExprEF = AB::ExprEF; + type VarEF = AB::VarEF; + + fn assert_zero_ext(&mut self, x: I) + where + I: Into, + { + self.inner.assert_zero_ext(x.into() * self.condition()); + } +} + +impl<'a, AB: PermutationAirBuilder> PermutationAirBuilder for FilteredAirBuilder<'a, AB> { + type MP = AB::MP; + + type RandomVar = AB::RandomVar; + + fn permutation(&self) -> Self::MP { + self.inner.permutation() + } + + fn permutation_randomness(&self) -> &[Self::RandomVar] { + self.inner.permutation_randomness() + } +} diff --git a/Appendix/Plonky3/air/src/lib.rs b/Appendix/Plonky3/air/src/lib.rs new file mode 100644 index 0000000..e670f61 --- /dev/null +++ b/Appendix/Plonky3/air/src/lib.rs @@ -0,0 +1,11 @@ +//! APIs for AIRs, and generalizations like PAIRs. + +#![no_std] + +extern crate alloc; + +mod air; +mod virtual_column; + +pub use air::*; +pub use virtual_column::*; diff --git a/Appendix/Plonky3/air/src/virtual_column.rs b/Appendix/Plonky3/air/src/virtual_column.rs new file mode 100644 index 0000000..a9f5198 --- /dev/null +++ b/Appendix/Plonky3/air/src/virtual_column.rs @@ -0,0 +1,125 @@ +use alloc::vec; +use alloc::vec::Vec; +use core::ops::Mul; + +use p3_field::{AbstractField, Field}; + +/// An affine function over columns in a PAIR. +#[derive(Clone, Debug)] +pub struct VirtualPairCol { + column_weights: Vec<(PairCol, F)>, + constant: F, +} + +/// A column in a PAIR, i.e. either a preprocessed column or a main trace column. +#[derive(Clone, Copy, Debug)] +pub enum PairCol { + Preprocessed(usize), + Main(usize), +} + +impl PairCol { + pub const fn get(&self, preprocessed: &[T], main: &[T]) -> T { + match self { + PairCol::Preprocessed(i) => preprocessed[*i], + PairCol::Main(i) => main[*i], + } + } +} + +impl VirtualPairCol { + pub const fn new(column_weights: Vec<(PairCol, F)>, constant: F) -> Self { + Self { + column_weights, + constant, + } + } + + pub fn new_preprocessed(column_weights: Vec<(usize, F)>, constant: F) -> Self { + Self::new( + column_weights + .into_iter() + .map(|(i, w)| (PairCol::Preprocessed(i), w)) + .collect(), + constant, + ) + } + + pub fn new_main(column_weights: Vec<(usize, F)>, constant: F) -> Self { + Self::new( + column_weights + .into_iter() + .map(|(i, w)| (PairCol::Main(i), w)) + .collect(), + constant, + ) + } + + #[must_use] + pub fn one() -> Self { + Self::constant(F::one()) + } + + #[must_use] + pub const fn constant(x: F) -> Self { + Self { + column_weights: vec![], + constant: x, + } + } + + #[must_use] + pub fn single(column: PairCol) -> Self { + Self { + column_weights: vec![(column, F::one())], + constant: F::zero(), + } + } + + #[must_use] + pub fn single_preprocessed(column: usize) -> Self { + Self::single(PairCol::Preprocessed(column)) + } + + #[must_use] + pub fn single_main(column: usize) -> Self { + Self::single(PairCol::Main(column)) + } + + #[must_use] + pub fn sum_main(columns: Vec) -> Self { + let column_weights = columns.into_iter().map(|col| (col, F::one())).collect(); + Self::new_main(column_weights, F::zero()) + } + + #[must_use] + pub fn sum_preprocessed(columns: Vec) -> Self { + let column_weights = columns.into_iter().map(|col| (col, F::one())).collect(); + Self::new_preprocessed(column_weights, F::zero()) + } + + /// `a - b`, where `a` and `b` are columns in the preprocessed trace. + #[must_use] + pub fn diff_preprocessed(a_col: usize, b_col: usize) -> Self { + Self::new_preprocessed(vec![(a_col, F::one()), (b_col, F::neg_one())], F::zero()) + } + + /// `a - b`, where `a` and `b` are columns in the main trace. + #[must_use] + pub fn diff_main(a_col: usize, b_col: usize) -> Self { + Self::new_main(vec![(a_col, F::one()), (b_col, F::neg_one())], F::zero()) + } + + pub fn apply(&self, preprocessed: &[Var], main: &[Var]) -> Expr + where + F: Into, + Expr: AbstractField + Mul, + Var: Into + Copy, + { + let mut result = self.constant.into(); + for (column, weight) in self.column_weights.iter() { + result += column.get(preprocessed, main).into() * *weight; + } + result + } +} diff --git a/Appendix/Plonky3/audits/Least Authority- Polygon Plonky3 Updated Final Audit Report.pdf b/Appendix/Plonky3/audits/Least Authority- Polygon Plonky3 Updated Final Audit Report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..abb5826aae36ea3c993d828ff7569d239317fabe GIT binary patch literal 284198 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�edkC?4d+@n%u!zxW7Gx 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≻B;&}h<+cfK$iRI5&n*8 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�Pf@a5 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 E+4tKnIRF3v literal 0 HcmV?d00001