My main issue with Mastodon is that your identity is tied to whatever instance you signed up with. So if I sign up at example.social I will be bob@example.social. If the moderators ban me or the instance stops working I am losing all my tweets and followers.
Ideally you would sign up with your own domain (bob@mydomain.com) and point some dns records to whichever instance you want, this way you stay flexible and you own your identity.
It is actually very easy to move your identity along with follows and followers from one Mastodon instance to another. I did it a couple times to finally land on my own instance I have running on a Raspberry PI.
Identity is always an issue in a decentralized systems. DNS can be used but not everybody owns a domain name. Ultimately if you want to keep your identity over a federated network you have to rely on an identity provider : Government issued, centralized platform that act as Id Provider (facebook, github, google, etc). I'm not aware of decentralized provider, maybe in a blockchain, there are a lot of writings on the topic: https://www.sciencedirect.com/science/article/abs/pii/S10848...
Ideally you would sign up with your own domain (bob@mydomain.com) and point some dns records to whichever instance you want, this way you stay flexible and you own your identity.
There is a github issue for this that is open for 5 years but not much has been done https://github.com/mastodon/mastodon/issues/2668