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

Optimize Public Parameter Size #2

Closed
wants to merge 8 commits into from

Conversation

winston-h-zhang
Copy link

@winston-h-zhang winston-h-zhang commented Jun 9, 2023

Hack: lurk-lang/arecibo#111. With some eyeballed timings, this is around a 2x improvement in memory and speed.

Note: Do not merge until all the dev-dev dependencies for lurk-lab forks are set up.

huitseeker and others added 5 commits June 8, 2023 10:29
- Add a GitHub workflow for syncing upstream pasta_curves updates
- Set sync to occur every 15 minutes or on manual triggers
- on the dev branch, so as to not be rewritten automatically
ci: Job to auto-sync upstream changes
- Add a GitHub workflow for syncing upstream pasta_curves updates
- Set sync to occur every 15 minutes or on manual triggers
- on the dev branch, so as to not be rewritten automatically
@huitseeker
Copy link

huitseeker commented Jun 13, 2023

This will need a rebase on the latest master probably on lurk-lab/lurk-beta#4

- Update `pasta-msm`, `bellperson` and `pasta_curves` dependencies to use `lurk-lab` repository's `dev` branch
@huitseeker
Copy link

huitseeker commented Jun 13, 2023

Unfortunately, I do mean git fetch lurk-lab && git rebase -i lurk-lab/dev (where lurk-lab is the remote name for this fork). The merge commit that this contains will probably not work.

@huitseeker huitseeker force-pushed the dev branch 3 times, most recently from a5190d0 to cb378bd Compare June 22, 2023 12:03
@huitseeker huitseeker force-pushed the dev branch 3 times, most recently from 6ff6eb9 to 7514716 Compare July 6, 2023 23:49
@huitseeker
Copy link

Made obsolete by lurk-lab/lurk-beta#5

@huitseeker huitseeker closed this Jul 7, 2023
@huitseeker huitseeker deleted the 431/optimize-param-size branch September 25, 2023 14:20
@huitseeker huitseeker restored the 431/optimize-param-size branch September 25, 2023 14:20
@huitseeker huitseeker deleted the 431/optimize-param-size branch September 25, 2023 14:20
porcuquine pushed a commit that referenced this pull request Dec 7, 2023
* start SuperNova

* setup unit test and start program counter

* experimenting with the RunningClaims selector.

* start conversion of RecursiveSNARK into NivcSnark

* theta function needs to be defined. Starting from public param generator.

* RunningClaims will be a user provide Struct.

* moving CK out

* setup public params in a nice way for SuperNova.

* starting on phi logic

* adding pci into code

* move cks out and also start on U_i and pki as described in paper.

* Start on SuperNova augmented circuit

* work on augmented circuit2

* testing pci as output

* closer to pci fin

* push notes

* more details and analysis of implementation method.

* change to match paper

* clarified wording

* leave write up for review.

* typo

* clarity

* inputize progam_counter

* start on hash of U_i

* swapping wording out for hash of Fpci' pre-image

* testing U_i constraints

* need to rethink how U_i works in the circuit. Might just be a hash.

* decided on how to represent the running instance U_i in the cicruits.

* change to U_i is preset amount of circuits.

* refactor

* got output of hash supernova from circuit

* add new X2 for supernova_hash. All tests are a GO!

* prep for SuperNova circuit sequence checking

* generics for circuit passing

* cleanup

* verify supernova step

* add supernova hash witness check

* cleanup and bug fix

* add Makefile

* fix bugs and cleanup generics

* compile pass but test failed due to shape mismatch

* refactor to fit supernova implementation

* introduce rom concept

* constrain sequence execution by memory commitment

* rom access commitment: program counter manipulation by step circuit

* code cleanup

* constrain pc[i]=z_i[x] in step circuit as well

* remove number of arguments circuit constraint

* adapt latest main

* reuse nova nicv::prove for supernova

* reuse nova runninginstance for supernova

* more util function to serve supernova

* disable supernova by default

* error pruning: arity length check in synthesis function

* primary circuit folding can be single element

* optimise supernova proof size from 2*relax_rc1s to relax_rc1s + 1

* code cosmetics

* cleanup and reuse compute_digest, fix typo

* variable rename and cleanup some leftover

* better naming and cleanup

* proper naming on r1cs_shape

* opt memory usage, remove unnessesary clone trait

* docs decoration

* isolated trait/lib for supernova

* expose supernova module public

* refactor and reuse most of reference

* optimize pc handling in step circuit, opt running instance clone

* fix comment format

* retain constraint in Nova to narrow down the scope

* clean up comment

* add supernova bench

* almost all passed by reference in supernova recursivesnark

* supernova soundness and clippy fix

* fix groupname in supernova bench

* chores: polish reference usage in prove step

* fix bug in recursive snark base case for only success on first running claim

* simplify synthesis error handling

* supernova align naming convention with nova

* fix soundness in supernova sequence constraints

* code cosmetics based on review comments

* optimise util alloc_const and supernova usage

* code cosmetics and clean up

* optimize with less constriants, following-up fixing soundness on const index

* eliminate program_counter from secondary circuit ro, better error handling

* typo fix

* supernova refactor test to separate mod

* clean up UnSatMsg from Nova error

* fix soundness: empty running instance under-constraint

* refactor circuit test to test module

* code cosmetics

* fix soundness: use last_augmented_circuit_index consistently

---------

Co-authored-by: WYATT <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants