So, I read somewhere that Zero Knowledge Proof based authentication is good because it makes sure that the server does not store your password and neither is your password being transmitted over the 'insecure' network.
However, all the implementations that I have come across involve the server storing some function of the password (a hash/ a graph using some permutation based on the password/ a EC point generated using the password). How does that help? AFAIK traditional systems too store the hash of the password and any rainbow table/ dictionary attack on traditional systems should also be similarly applicable for ZKP authentication servers. Where is the additional security in this case?