HOWTO prevent users from impersonating each other?

I allowed users to comment without registration (to get more reactions). However, this led to cases of users using the same name others where using already to impersonate them in their posts.
Is there any way (except a mandatory registration for comments) to prevent this?
Maybe forcing comments from people that are not logged in to always have no name or the name “anoynmous”?
A ways to hide the input field for “Name” when you are not logged in would also do.
Or maybe a way/extension to prevent anonymous users to use names which exsist in the user table? Like that registered users would have their name protected as well.