Decentralized identity explained