You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.1 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
Add Grumpkin cycle implementation (#181) * bn256+grumpkin from halo2curves * chore: Integrate halo2curves more extensively - Extend existing tests with additional test cases using the new curve types * fix: Assign correct orders to bn256 and grumpkin scalar fields - Swap scalar orders between grumpkin and bn256 in `impl_traits!` implementation * test: Finish improving test integration with halo2curves - Enhances test coverage for `pasta_curves` and `halo2curves` - Cleans up commented code in `test_ivc_nontrivial` and `test_ivc_nontrivial_with_compression` tests - Updates relevant test cases in `src/lib.rs` to include new curve tests * chore: Remove commented-out/uneeded code in bn254_grumpkin.rs * test: reproduce test_from_label for bn254_grumpkin - Implement the `from_label_serial` function in bn254_grumpkin provider - Add a test to compare parallel and serial implementations of `from_label` function * refactor: Clean up to_coordinate & summarize changes * refactor: rename bn254_grumpkin -> bn256_grumpkin * test: Expand testing for public params digest using bn256 and grumpkin * chore: Update halo2curves dependency in Cargo.toml - Updated the `halo2curves` dependency in `Cargo.toml` to the latest version `0.1.0` from a specific git branch. * refactor: Refactor multi-exponentiation methods across providers - Updated bn256_grumpkin.rs to use the cpu_best_multiexp function from pasta provider instead of its native function. - Modified visibility of cpu_best_multiexp function in pasta.rs from private to crate level. * chore: set up dependencies to import the correct getrandom feature on Wasm --------- Co-authored-by: Leo Alt <leo@ethereum.org>
1 year ago
Add Grumpkin cycle implementation (#181) * bn256+grumpkin from halo2curves * chore: Integrate halo2curves more extensively - Extend existing tests with additional test cases using the new curve types * fix: Assign correct orders to bn256 and grumpkin scalar fields - Swap scalar orders between grumpkin and bn256 in `impl_traits!` implementation * test: Finish improving test integration with halo2curves - Enhances test coverage for `pasta_curves` and `halo2curves` - Cleans up commented code in `test_ivc_nontrivial` and `test_ivc_nontrivial_with_compression` tests - Updates relevant test cases in `src/lib.rs` to include new curve tests * chore: Remove commented-out/uneeded code in bn254_grumpkin.rs * test: reproduce test_from_label for bn254_grumpkin - Implement the `from_label_serial` function in bn254_grumpkin provider - Add a test to compare parallel and serial implementations of `from_label` function * refactor: Clean up to_coordinate & summarize changes * refactor: rename bn254_grumpkin -> bn256_grumpkin * test: Expand testing for public params digest using bn256 and grumpkin * chore: Update halo2curves dependency in Cargo.toml - Updated the `halo2curves` dependency in `Cargo.toml` to the latest version `0.1.0` from a specific git branch. * refactor: Refactor multi-exponentiation methods across providers - Updated bn256_grumpkin.rs to use the cpu_best_multiexp function from pasta provider instead of its native function. - Modified visibility of cpu_best_multiexp function in pasta.rs from private to crate level. * chore: set up dependencies to import the correct getrandom feature on Wasm --------- Co-authored-by: Leo Alt <leo@ethereum.org>
1 year ago
  1. [package]
  2. name = "nova-snark"
  3. version = "0.22.0"
  4. authors = ["Srinath Setty <srinath@microsoft.com>"]
  5. edition = "2021"
  6. description = "Recursive zkSNARKs without trusted setup"
  7. documentation = "https://docs.rs/nova-snark/"
  8. readme = "README.md"
  9. repository = "https://github.com/Microsoft/Nova"
  10. license-file = "LICENSE"
  11. keywords = ["zkSNARKs", "cryptography", "proofs"]
  12. [dependencies]
  13. bellperson = { version = "0.25", default-features = false }
  14. ff = { version = "0.13.0", features = ["derive"] }
  15. digest = "0.10"
  16. sha3 = "0.10"
  17. rayon = "1.7"
  18. rand_core = { version = "0.6", default-features = false }
  19. rand_chacha = "0.3"
  20. itertools = "0.11"
  21. subtle = "2.5"
  22. pasta_curves = { version = "0.5", features = ["repr-c", "serde"] }
  23. neptune = { version = "10.0.0", default-features = false }
  24. generic-array = "0.14"
  25. num-bigint = { version = "0.4", features = ["serde", "rand"] }
  26. num-traits = "0.2"
  27. num-integer = "0.1"
  28. serde = { version = "1.0", features = ["derive"] }
  29. bincode = "1.3"
  30. flate2 = "1.0"
  31. bitvec = "1.0"
  32. byteorder = "1.4.3"
  33. thiserror = "1.0"
  34. halo2curves = { version = "0.1.0", features = ["derive_serde"] }
  35. [target.'cfg(any(target_arch = "x86_64", target_arch = "aarch64"))'.dependencies]
  36. pasta-msm = { version = "0.1.4" }
  37. [target.wasm32-unknown-unknown.dependencies]
  38. # see https://github.com/rust-random/rand/pull/948
  39. getrandom = { version = "0.2.0", default-features = false, features = ["js"] }
  40. [dev-dependencies]
  41. criterion = { version = "0.4", features = ["html_reports"] }
  42. rand = "0.8.4"
  43. hex = "0.4.3"
  44. pprof = { version = "0.11" }
  45. cfg-if = "1.0.0"
  46. sha2 = "0.10.7"
  47. proptest = "1.2.0"
  48. [[bench]]
  49. name = "recursive-snark"
  50. harness = false
  51. [[bench]]
  52. name = "compressed-snark"
  53. harness = false
  54. [[bench]]
  55. name = "compute-digest"
  56. harness = false
  57. [[bench]]
  58. name = "sha256"
  59. harness = false
  60. [features]
  61. default = []
  62. # Compiles in portable mode, w/o ISA extensions => binary can be executed on all systems.
  63. portable = ["pasta-msm/portable"]
  64. cuda = ["neptune/cuda", "neptune/pasta", "neptune/arity24"]
  65. opencl = ["neptune/opencl", "neptune/pasta", "neptune/arity24"]
  66. flamegraph = ["pprof/flamegraph", "pprof/criterion"]