This reminds me a lot of LBRY way of handling names. You might want to look at it : they also have tried to solve the same naming problem in a decentralized system :
https://lbry.io/faq/naming
They also have an auction system for names, but apparently, in their system, you never really pay for names, you just reserve a certain amount for it. Also, users can help you to reserve names if they are happy with the content.