Users and Attesters
Actors in UniRep
Attesters can be thought of as applications or contracts. Attesters define their own data schemas and are able to give attestations to users, which are combined to become the users' data.
- Attesters sign up by calling
attesterSignUpon the UniRep contract.
- Attesters are given an
attesterIdthat is their contract address.
- Attester information and attestation history are public; everyone can see each attestation and which attester submitted it to the UniRep contract.
Users receive data from attesters and are able to prove received data.
- Attesters sign up users by calling
userSignUpon the UniRep contract with a signup proof.
- A user's
identityCommitmentis revealed at this time and recorded in the contract to prevent double signup.
- A user can later prove their identity to the protocol by re-creating the
identity commitmentwith the secret values known only to the user.
Attesters may also use
manualUserSignUp and provide the identity and state tree values directly. This is designed to be used by an attester implementing their own signup proof logic. Note that this method must be guarded by appropriate zk checks.