UniRep (Universal Reputation) is a private and non-repudiable data storage and retrieval system. Applications can attest to changes in user data using short lived identifiers called epoch keys. Users can:
- Receive data from applications.
- Voluntarily prove facts about their user data.
- Users cannot refuse to receive data from an application.
The high-level goal for UniRep is to be a base layer on top of which anyone can easily build custom, yet interoperable, zk applications. UniRep acts as a memory layer for zk: anything stored in UniRep can be retrieved and proven with strong privacy guarantees and constant computation complexity.
UniRep can be used to store the result of large proofs (e.g. proof of Ethereum address control from an ECDSA signature). This result can later be retrieved and proven by a user any number of times. Similar patterns exist for web2 authentication bridging; a user oauths with a trusted entity once, and the entity attests storing information about the users web2 identity in zk.
UniRep can be used to store data important to applications. This might include reputation the user has accrued, actions the user has taken, groups the user is a member of, or anything else. Applications can interoperate by having users make proofs using publicly available state roots.
Read the latest UniRep blog post here
UniRep is originally proposed by BarryWhiteHat in this ethresear.ch post