Circuits used in UniRep
yarn install && \
yarn build
yarn test
- Check if user exists in the Global State Tree
- Check nonce validity
- Check if epoch key is computed correctly
- Check if user exists in the Global State Tree
- Compute blinded user state and blinded hash chain to start user state transition
- Verify blinded input user state
- Verify attestation hash chain
- Process attestations and update user state tree
- Compute blinded user state and blinded hash chain to continue user state transition
- Check if user exists in the Global State Tree
- Process the hashchain of the epoch key specified by nonce
n
- Check if blinded user state matches
- Compute and output nullifiers and new GST leaf
- Check if user exists in the Global State Tree and verify epoch key
- Check if the reputation given by the attester is in the user state tree
- Check reputation nullifiers are valid
- Check if user has reputation greater than min_rep
- Check pre-image of graffiti
Hide epoch key nonce: spend reputation will not reveal a user uses which epoch key
- Check if user exists in the Global State Tree and verify epoch key
- Check if the reputation given by the attester is in the user state tree
- Indicate if user has signed up in the attester's application
Fixed epoch key nonce: one user is only allowed to get attester's airdrop once per epoch Sign up flag cannot be overwritten. Once a user has signed up before, he can always prove that he has signed up.
- Rename
CircuitName
toCircuit
- Add
formatProofForSnarkjsVerification
function - Make test scripts more clean
- User can prove that he has not signed up in one leaf to get airdrop
proveUserSignUp
circuit: changesign_up
from private input to public input - Export
CircuitName
enum