I am reading about cryptography in Bitcoin. Bitcoin adress is created by applying cryptographic hash function to public key of the wallet. I know that this function is a trap door function but what are possible vulnerabilities if the public key could be derived from the address? Public keys are used anyway when authenticating the creator of the transaction (signer of the transaction).
There are several aspects to not sending to a public key directly. Here are a few I can name
- RipeMD160 shortens the address from 256 bits to 160 bits
- A checksum is introduced to the address
- An address doesn't expose the pubkey, so if the ECDSA gets compromised, funds are still safe ["quantum PC attack resistant"]
- Pay to script hash is possible with the same address format; in later iterations with e.g. taproot this can greatly enhance privacy and functionality at little or no extra on-chain cost