The identity system does not require a centralized database. Users are registered in a decentralized network. The registry is implemented as an EVM smart contract. It could have been any smart contract system, or it could be implemented its own purpose built state machine. EVM smart contract is chosen purely for convenience. Once the contract is deployed, everyone has equal access to the identity system. Anyone can register an entry in the UserRegistry contract. Each entry is equivalent to a user. No one other than the user owner could make changes to their entry. The identity system is the foundation that many other applications could build on top.
- EVM smart contract implementation of the UserRegistry
- Here is a yaml example that describes a user
- Key features
- Each user is uniquely identified by a 20 bytes ID
- User could add more keys to their entry
- User could rotate keys out of service
- Each user has a human-readable name
- See examples on how to register and modify user entries
A backend service could leverage Elliptical Curve Digital Signature Algorithm (ECDSA) to implement a login system
- See simple-login
- See pubkey-jwt-login; this is a work in progress
- Here is a short introduction to ECDSA
Users could use the identity system to manage and share data without intermediaries.
- See documentation on the data permission module
- See how data blob is represented