Ceramic[0] (a sort of mutability layer on top of IPFS) solves this off-chain by using your crypto wallet to authenticate a DID (their DIDs are known as 3id[1]) which can have a list of socials and crypto wallets associated with them (using their IDX[2] system and the schemas called alsoKnownAs[3] and cryptoAccounts[4], respectively), and the validations are made possible by systems called IdentityLink[5] (verifies similar to Keybase) and Caip10Link[6] (sign a message with your wallet) (respectively). The Caip10Link also allows reverse lookup of a DID from a blockchain address. A reference implementation of these systems in action can be found at https://self.id/ .
Grain of salt: I'm working on a project that makes heavy use of Ceramic.
[0] https://developers.ceramic.network/learn/advanced/overview/ [1] https://github.com/ceramicstudio/js-3id-did-provider [2] https://developers.idx.xyz/learn/overview/ [3] https://github.com/ceramicstudio/datamodels/tree/main/packag... [4] https://github.com/ceramicstudio/datamodels/tree/main/packag... [5] https://developers.ceramic.network/tools/identitylink/overvi... [6] https://developers.ceramic.network/streamtypes/caip-10-link/...