Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync with upstream PSE #7

Merged
merged 8 commits into from
Sep 23, 2023
Merged

Sync with upstream PSE #7

merged 8 commits into from
Sep 23, 2023

Commits on Aug 21, 2023

  1. Add field conversion to/from [u64;4] (privacy-scaling-explorations#80)

    * feat: add field conversion to/from `[u64;4]`
    
    * Added conversion tests
    * Added `montgomery_reduce_short` for no-asm
    * For bn256, uses assembly conversion when asm feature is on
    
    * fix: remove conflict for asm
    
    * chore: bump rust-toolchain to 1.67.0
    jonathanpwang authored Aug 21, 2023
    Configuration menu
    Copy the full SHA
    723c976 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. Compute Legendre symbol for hash_to_curve (privacy-scaling-explorat…

    …ions#77)
    
    * Add `Legendre` trait and macro
    
     - Add Legendre macro with norm and legendre symbol computation
     - Add macro for automatic implementation in prime fields
    
    * Add legendre macro call for prime fields
    
    * Remove unused imports
    
    * Remove leftover
    
    * Add `is_quadratic_non_residue` for hash_to_curve
    
    * Add `legendre` function
    
    * Compute modulus separately
    
    * Substitute division for shift
    
    * Update modulus computation
    
    * Add quadratic residue check func
    
    * Add quadratic residue tests
    
    * Add hash_to_curve bench
    
    * Implement Legendre trait for all curves
    
    * Move misplaced comment
    
    * Add all curves to hash bench
    
    * fix: add suggestion for legendre_exp
    
    * fix: imports after rebase
    davidnevadoc authored Aug 22, 2023
    Configuration menu
    Copy the full SHA
    1d71d34 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2023

  1. Add simplified SWU method (privacy-scaling-explorations#81)

    * Fix broken link
    
    * Add simple SWU algorithm
    
    * Add simplified SWU hash_to_curve for secp256r1
    
    * add: sswu z reference
    
    * update MAP_ID identifier
    
    Co-authored-by: Han <tinghan0110@gmail.com>
    
    ---------
    
    Co-authored-by: Han <tinghan0110@gmail.com>
    davidnevadoc and han0110 authored Aug 24, 2023
    Configuration menu
    Copy the full SHA
    2bb4633 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2023

  1. Bring back curve algorithms for a = 0 (privacy-scaling-explorations#82

    )
    
    * refactor: bring back curve algorithms for `a = 0`
    
    * fix: clippy warning
    han0110 authored Sep 4, 2023
    Configuration menu
    Copy the full SHA
    6e2ff38 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2023

  1. fix: Improve serialization for prime fields (privacy-scaling-explorat…

    …ions#85)
    
    * fix: Improve serialization for prime fields
    
    Summary: 256-bit field serialization is currently 4x u64, ie. the native format. This implements the standard of byte-serialization (corresponding to the PrimeField::{to,from}_repr), and an hex-encoded variant of
    that for (de)serializers that are human-readable (concretely, json).
    
    - Added a new macro `serialize_deserialize_32_byte_primefield!` for custom serialization and deserialization of 32-byte prime field in different struct (Fq, Fp, Fr) across the secp256r, bn256, and derive libraries.
    - Implemented the new macro for serialization and deserialization in various structs, replacing the previous `serde::{Deserialize, Serialize}` direct use.
    - Enhanced error checking in the custom serialization methods to ensure valid field elements.
    - Updated the test function in the tests/field.rs file to include JSON serialization and deserialization tests for object integrity checking.
    
    * fixup! fix: Improve serialization for prime fields
    
    ---------
    
    Co-authored-by: Carlos Pérez <37264926+CPerezz@users.noreply.github.com>
    huitseeker and CPerezz authored Sep 18, 2023
    Configuration menu
    Copy the full SHA
    8e3a33a View commit details
    Browse the repository at this point in the history
  2. refactor: (De)Serialization of points using GroupEncoding (privacy-…

    …scaling-explorations#88)
    
    * refactor: implement (De)Serialization of points using the `GroupEncoding` trait
    
    - Updated curve point (de)serialization logic from the internal representation to the
      representation offered by the implementation of the `GroupEncoding` trait.
    
    * fix: add explicit json serde tests
    huitseeker authored Sep 18, 2023
    Configuration menu
    Copy the full SHA
    2f3e388 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2023

  1. Insert MSM and FFT code and their benchmarks. (privacy-scaling-explor…

    …ations#86)
    
    * Insert MSM and FFT code and their benchmarks.
    
    Resolves taikoxyz/zkevm-circuits#150.
    
    * feedback
    
    * Add instructions
    
    * feeback
    
    * Implement feedback:  Actually supply the correct arguments to `best_multiexp`.
    
    Split into `singlecore` and `multicore` benchmarks so Criterion's result
    caching and comparison over multiple runs makes sense.
    
    Rewrite point and scalar generation.
    
    * Use slicing and parallelism to to decrease running time.
    
    Laptop measurements:
    k=22: 109 sec
    k=16:   1 sec
    
    * Refactor msm
    
    * Refactor fft
    
    * Update module comments
    
    * Fix formatting
    
    * Implement suggestion for fixing CI
    einar-taiko authored Sep 22, 2023
    Configuration menu
    Copy the full SHA
    ee7cb86 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2023

  1. Configuration menu
    Copy the full SHA
    ce253ad View commit details
    Browse the repository at this point in the history