Ethereum: How Private Keys, Public Keys, and Addresses Are Generated

·

Understanding how cryptographic keys and addresses are generated in blockchain networks is essential for anyone exploring decentralized systems. In Ethereum, the process follows a well-defined cryptographic path: private key → public key → address. While similar in structure to Bitcoin’s approach, Ethereum has distinct differences—especially in how it derives an address from a public key.

This article walks you through each step of Ethereum's key and address generation process, compares it with Bitcoin where relevant, and explains the underlying cryptography in clear, accessible terms. Whether you're a developer, investor, or blockchain enthusiast, this guide will deepen your understanding of Ethereum’s foundational security mechanisms.


The Three-Step Process: From Private Key to Address

Ethereum address generation consists of three core stages:

  1. Generate a random private key (256 bits / 32 bytes)
  2. Derive the public key from the private key (64 bytes uncompressed)
  3. Generate the Ethereum address from the public key (20 bytes)

Each stage builds on the previous one using standardized cryptographic functions. Once created, these components form a secure identity on the Ethereum network.

👉 Discover how blockchain wallets secure your digital assets using these principles.


Step 1: Generating the Private Key

The foundation of any Ethereum account is the private key—a 256-bit (32-byte) number chosen at random. It must be kept absolutely secret, as anyone with access to it can control the associated account.

A valid private key is simply a number between 1 and roughly 2²⁵⁶. When represented in hexadecimal format, it appears as a 64-character string:

18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725

This randomness ensures near-impossible predictability. Ethereum uses the secp256k1 elliptic curve, the same as Bitcoin, for generating key pairs. This curve is defined over a finite field and allows for efficient yet secure derivation of public keys from private ones.

Because brute-forcing such a large number space is computationally infeasible, the security of Ethereum accounts hinges on proper private key management.


Step 2: Deriving the Public Key

Using elliptic curve cryptography (ECC), specifically the ECDSA (Elliptic Curve Digital Signature Algorithm) with the secp256k1 curve, the public key is mathematically derived from the private key.

The result is a point (x, y) on the curve, typically encoded in uncompressed format as:

So, a full public key looks like this:

04
50863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
2cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6

Note: Unlike Bitcoin, which supports both compressed (0x02 or 0x03) and uncompressed (0x04) public keys, Ethereum exclusively uses uncompressed public keys during address derivation.

This simplifies implementation but means all public keys used internally are 65 bytes long.


Step 3: Generating the Ethereum Address

Here’s where Ethereum diverges significantly from Bitcoin.

In Bitcoin, addresses are derived by hashing the public key with SHA-256, then RIPEMD-160, and finally encoding it in Base58 with checksums (P2PKH format). Ethereum takes a different route:

🔐 Ethereum Address Derivation Steps:

  1. Take the full 65-byte uncompressed public key
  2. Compute its Keccak-256 hash (not SHA-3, despite common confusion — more on that below)

    • Result: 32 bytes (256 bits)
  3. Take the last 20 bytes (160 bits) of that hash
  4. Prepend 0x to indicate hexadecimal notation

For example:

This 20-byte value becomes your Ethereum address, unique and irreversible back to the public or private key.

⚠️ Important Note: Ethereum uses Keccak-256, not standard SHA-3. Although they are similar, there are subtle differences in padding rules. Many libraries label Keccak as SHA-3 — always verify which function your tool actually implements.

👉 Learn how modern crypto wallets automate this process securely and instantly.


Key Differences Between Ethereum and Bitcoin Address Generation

AspectEthereumBitcoin
Public Key FormatAlways uncompressed (0x04)Supports compressed (0x02/0x03) and uncompressed
Hash FunctionKeccak-256SHA-256 → RIPEMD-160
Address Length20 bytes20 bytes (RIPEMD-160 output)
EncodingHexadecimal with 0x prefixBase58Check (P2PKH), Bech32 (SegWit)
ChecksumOptional EIP-55 checksum via mixed-case hexBuilt-in Base58 checksum

Despite sharing the same elliptic curve (secp256k1), their address formats and hashing methods reflect different design philosophies: Ethereum favors simplicity and developer accessibility; Bitcoin emphasizes backward compatibility and multiple address types.


Frequently Asked Questions (FAQ)

Q: Can two different private keys generate the same Ethereum address?

While theoretically possible due to hash collisions, the probability is astronomically low—approximately 1 in 2¹⁶⁰. For practical purposes, every address is unique.

Q: Is it safe to generate my own private key?

Yes, if done securely using cryptographically strong randomness. However, manually generating keys increases risk of exposure or errors. Use trusted wallet software instead.

Q: Why does Ethereum use only the last 20 bytes of the Keccak-256 hash?

Using 160 bits matches the output length of RIPEMD-160 used in Bitcoin, maintaining comparable security levels while leveraging a more modern hash function.

Q: What happens if I lose my private key?

You lose access to your funds permanently. Unlike traditional accounts, there’s no “forgot password” option. Never share or misplace your private key.

Q: Can I derive the private key from a public key or address?

No. The cryptographic functions used are one-way: you can go from private → public → address, but never backward without breaking ECC or Keccak—currently impossible with known technology.

Q: Are all Ethereum addresses starting with '0x'?

Yes. The 0x prefix denotes hexadecimal encoding and is part of the standard format (EIP-55). Some tools display mixed-case letters to provide a checksum feature.


Core Keywords for SEO

These keywords naturally appear throughout this article, supporting search visibility while delivering accurate technical content aligned with user intent.

👉 See how leading platforms protect user keys using advanced encryption techniques.


Conclusion

Ethereum’s method of generating private keys, public keys, and addresses combines robust cryptography with developer-friendly design. By relying on proven algorithms like secp256k1 and Keccak-256, it ensures high security while enabling interoperability across wallets and dApps.

While the steps may seem complex, modern tools abstract away most of the complexity—yet understanding what happens under the hood empowers users to make informed decisions about security, custody, and best practices in managing digital identities on the blockchain.

Whether you're building decentralized applications or simply holding ETH, knowing how your account is formed adds a crucial layer of confidence and control in the world of Web3.