In a PKI approach, a public key is approved by a Certificate Authority (CA) in a centralized manner. However, since Ethereum is a decentralized network, how is my public key validity is approved? Or, in general, is there an approving process of public keys? And if not, doesn't that cause any security issues? How is a public/private key generated in Ethereum? Is there a way to prevent a user from generating too many public keys?


1 Answer 1


Ethereum is not your typical PKI infrastructure.

The public key is derived in a deterministic way from the private key - same private key always leads to the same public key. The public key is not "validated" in that sense by any authority - it's always valid. The private key can be chosen with whatever means.

Furthermore, the public key is used to generate a public address in a deterministic way.

Nothing stops a user from generating multiple public keys. As they are not validated in any way, there is no overhead in generating "too many" public keys. The system doesn't even know which public keys have been generated - it only has records of which public addresses have been used for transactions. So nothing also stops you from sending a transaction to a random address - you have no way of knowing (without checking whether has issued transactions from that address) whether someone possesses the corresponding private key or not. If you choose the address at random, it's highly unlikely that someone has a private key which results in that address.

There are plenty of more detailed articles online about the generation of private key / public key / public address. Here's the first hit from google: https://medium.freecodecamp.org/how-to-create-an-ethereum-wallet-address-from-a-private-key-ae72b0eee27b

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.