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

feat: batched updates (in audit) #1316

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Commits on Nov 8, 2024

  1. fix: add light prover client batch update and append tests

    added bloomfilter
    
    batch e2e test failing because filter change doesn't work yet
    
    debugging
    
    batched Merkle tree e2e test works with output queue
    
    fix: e2e test work with input and output queues
    
    chore: rename wipe bloomfilter -> wipe_batch
    
    refactored input queue into mt account
    
    stash
    
    test: rnd account init works
    
    chore: replace is_inserted with state
    
    chore: moved offset to bounded vec, added bounded vec init and deserialize
    
    fixed bounded vec imports
    
    refactor: partial batch zkp updates, flexible sized root history array with seq
    
    implemented batch prove and verification in rust tests untested
    
    stash: batched updates work with simulate transactions test
    
    add comment
    
    stash before account *mut
    
    onchain account init works
    
    test: account compression program batch updates work
    
    feat: add flexbile nullifier to circuit
    
    feat: implement nullifier derivation from tx hash
    
    test: batch
    
    test: bounded vec
    
    cleanup
    
    cleanup
    
    cleanup
    
    feat: add flexible nullifier to update circuit
    
    fix: e2e test
    
    chore: add full asserts to simulate tx test
    
    test: root overwrite test
    
    cleanup
    ananas-block authored and sergeytimoshin committed Nov 8, 2024
    Configuration menu
    Copy the full SHA
    2898eac View commit details
    Browse the repository at this point in the history
  2. refactor: update health check timeout in spawn_prover function, rewri…

    …te prove_batch_append test
    
    Change CI runner to buildjet-8vcpu-ubuntu-2204 for rust tests
    
    run rust.yml on buildjet-16vcpu-ubuntu-2204
    
    debug rust.yml workflow
    
    Add step to download proving keys for big batches
    
    Remove redundant setup steps and update test configurations
    
    Update ProverConfig to use test-specific circuits
    
    cleaning up after rebase to main
    sergeytimoshin committed Nov 8, 2024
    Configuration menu
    Copy the full SHA
    c192b75 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2024

  1. fix: batch append public input computation (#1330)

    Issue:
    the batch append zkp public input LeavesHashchainHash is computed 
    dynamically from the values array during the batched update.
    If the values array changes in between proof generation and transaction 
    execution the batched append update fails.
    -> Users can make batched append update transactions fail.
    
    Solution:
    compute LeavesHashchainHash incrementally when the output value is 
    inserted into the value array (the same way we compute it with 
    nullifiers for input queue insertions).
    
    Changes:
    1. switch to updated circuits
    2. batch.rs
    - add start_index field to derive the leaf_index of values from a value 
    array
    - introduce store_and_hash_value to store an output queue value and add 
    it to the LeavesHashchainHash
    3. batched_queue.rs
    - init_queue initialize start_index during account initialization
    - use store_and_hash_value instead of store_value when inserting into 
    output queues
    - update batch.start_index when wiping a batch
    4. batched_merkle_tree.rs
    - remove subtree field (it is not used in new batch append circuit)
    - initialize root_history with the zero_value_root
    - add hashchain store for leaves_hashchain in 
    ZeroCopyBatchedMerkleTreeAccount
    - add leaf_index to nullifier hash H(value, leaf_index, tx_hash)
    
    Co-authored-by: ananas-block <[email protected]>
    sergeytimoshin and ananas-block authored Nov 9, 2024
    Configuration menu
    Copy the full SHA
    c5b4aa3 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2024

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