Currently, typical coins are locked on some hash of the public key. That means any valid (r,s) pair can be used as a signature. But what about locking some output to some fixed r-value, so that there is only one correct s-value per transaction?
And instead of the hash of the public key, the receiver would give you the hash of the r-value? At the moment, they give you a hash of the public key and once you send them your money, they can spend it if they meet the following condition: If they provide a message which says they want to spend it, a public key that once you hash it it'll give you the hash you've locked your money and a valid pair of (r,s).
Right now, the sender just gives the public key which means they can change their signature since they can change r. Assuming we locked coins on the hash of the r-value and didn't announce what's the hash of the public key, what would stop someone from changing d (private key) each time?
Wouldn't the signature remain the same only if we gave both r AND public key?
Also, what's the problem if the sender can create multiple signatures when spending the same inputs to the same outputs?