Ethereum address test tool

This tool will help you to understand technically how a ethereum address is created.

(note: all values are hexstring)

(any random 256-bit number from 0x1 to 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140)
more info: Secp256k1
(ethereum public key must be 64byte (32byte x 32byte y coordinates)
(this is uncompressed ECDSA public key without 04 prefix)
(this is ethereum address(without 0x prefix) but currently have not checksum)
starting checksum calculation
(this is checksum reference)
(compare first 40 hex digit)
(a=10,b=11,c=12,d=13,e=14,f=15)
how?:
if (n th digit of (value of 4) > 7) then:
–> n th digit of (value of 3) must be uppercase(ignore digit is number)
else
–> n th digit of (value of 3) must be lowercase(ignore digit is number)

(case sensitive final address)

How to create an Ethereum address?

Ethereum addresses are fundamental to interacting with Ethereum's blockchain, whether it’s sending and receiving Ether (ETH) or interacting with smart contracts. The process of generating an Ethereum address is rooted in cryptography, ensuring that each address is unique and secure. Here’s a detailed look into how an Ethereum address is generated, broken down into accessible steps.

Private Key Generation

The first step in generating an Ethereum address is the creation of a private key. A private key is a random 256-bit number, which can be generated using various cryptographic algorithms. The most common method to generate this randomness is through the use of the Elliptic Curve Digital Signature Algorithm (ECDSA), specifically the `secp256k1` curve. This curve is widely used for its balance of security and efficiency.

Public Key Derivation

Once the private key is generated, the next step is to derive the public key from it. This is done using elliptic curve multiplication, which is a one-way cryptographic function. Essentially, the private key is multiplied by a generator point on the `secp256k1` curve to produce the public key. The public key is a 512-bit number, consisting of two parts: the x-coordinate and the y-coordinate.

Public Key Hashing

After obtaining the public key, it is then hashed to create the Ethereum address. This involves two main hashing algorithms: first, the Keccak-256 hashing algorithm (which is a variant of SHA-3) is applied to the public key. Notably, Ethereum uses the uncompressed form of the public key (excluding the 04 prefix) for this step.

Address Formation

The result of the Keccak-256 hash is a 256-bit (32-byte) hash. However, an Ethereum address is only 20 bytes long. To get the Ethereum address, the last 20 bytes of the Keccak-256 hash are taken. This part is known as the address’s public identifier.

Address Representation

Finally, the 20-byte address is converted into a more human-readable form using the hexadecimal representation. This gives the Ethereum address its familiar `0x` prefix followed by 40 hexadecimal characters. It's worth noting that Ethereum addresses are case-insensitive in their hexadecimal form but can be represented in a checksummed format with mixed case for enhanced error detection, as specified in EIP-55.

Additional Considerations
  • Security: The security of an Ethereum address directly depends on the secrecy of the private key. As such, it is crucial to keep the private key secure and private.
  • Checksum: The checksum format of an Ethereum address helps prevent errors in address input. EIP-55 specifies a checksum mechanism where the case of the hexadecimal address characters is varied to encode a checksum.
Conclusion

The process of generating an Ethereum address from a private key involves several steps of cryptographic operations. These steps ensure that Ethereum addresses are unique and secure, allowing users to safely engage in transactions on the Ethereum network. Understanding this process highlights the importance of cryptographic principles in maintaining the integrity and security of decentralized networks.