```
/~ 1512 bits of data per user
```
[unirep]
This [level 023] information system will allow you to simulate up to five (5) users per second. Each simulated user has:
- `data[6]`: six (6) `uint` fields [change by addition in `positive integers % |bn254|`]
- `graffiti[2]`: two (2) `uint` fields [change by replacement]
Each user can make [r1cs proofs](https://en.wikipedia.org/wiki/Zero-knowledge_proof) using `{ identity_nullifier, data, graffiti }` e.g.
- prove identity control
- make digital signatures
- prove truths about user data
```
/~ A user may reveal an identity that is writable
```
During each epoch an application may attest to changes to user data.
Each epoch the application starts with knowledge of 0 users. Users may reveal their identity to the application. Applications can make attestations to an identity any number of times during the epoch for which the identity is valid. Attestations made to identities in a different epoch are impossible to prove (e.g. [noop](https://en.wikipedia.org/wiki/NOP_(code))). Each attestation applies a non-repudiable change to user data.
Applications may ask the user to prove things about their data
e.g.
- Prove user has value 1 at bit offset 3
- Prove user has value uint at bit offset 252
- Prove user has value uint > X at bit offset 252
```
/~ A reputation system
```
Using this approach we can build a social media site with a schema like
- positive reputation: `uint` at `data[0]`
- negative reputation: `uint` at `data[1]`
- graffiti: `uint` at `replacement[0]`
Data can be fully constructed using read access from an Arbitrum node.
Data can be safely read from untrusted entities.
```
/~
```
`[R]`: coming to a distributed turing machine near you