Concept
Implement support for decentralized identifiers (see Decentralized Identifiers (DIDs) v1.0 ) that are used by a lot of projects around the ecosystem.
Format
did:massa:AU12Vi9V6Fsq9HMh9ge88WJ5cgymBGc3oUX2F6WpRqA5HdabPcPt5
where AU12Vi9V6Fsq9HMh9ge88WJ5cgymBGc3oUX2F6WpRqA5HdabPcPt5
is the user address
Smart contract
Create a smart contract that provides a CRUD-like interface for externally owned accounts to create and update a publicly available JSON associated to their account and signed by their key.
The smart contract needs to only allow the right public key owner to update their own DID JSON document.
Resolver
An external program (typically wrapped as a javascript library) allows resolving a DID identifier by querying the smart contract on-chain, then checking the integrity and signature matching of the returned JSON.