Hackernoon logoTechnical Guide to Generating an Ethereum Addresses by@tuna-tore

Technical Guide to Generating an Ethereum Addresses

Author profile picture

@tuna-toreTuna Tore

software engineer and architect at https://mycrypto.tools

Ethereum Addresses are based on the Hexadecimal format (also base16 or hex). Hexadecimal numbers from “0” to “9” represent values from zero to nine, and “A”–”F” (or lower case “a”–”f”) represent values from ten to fifteen. Ethereum addresses are not case sensitive and can be used as lowercase or uppercase.
More information about Hexadecimal format:
Some Hexadecimal samples:
Therefore, Ethereum Addresses can contain the following characters 0–9 and [a-fA-F] — except the prefix which is 0x.
Sample Ethereum Address (42 Hexadecimal characters):
ETH Address: 0xDC25EF3F5B8A186998338A2ADA83795FBA2D695E
How Ethereum Address is created:
Private Key -> Public Key -> Ethereum Address
The first step is to create a random private key using SHA256, for example, using an open-source Ethereum library such as EthereumJ.
https://github.com/ethereum/ethereumj. Private keys are generated as random 256 bits, which is 64 (hex) characters or 32 bytes.
After this, Ethereum public keys (128 characters / 64 bytes) are created using an algorithm called Elliptic Curve Digital Signature Algorithm (ECDSA). Ethereum uses secp256k1 to generate public keys. Public key is a point in this Elliptic curve algorithm.
Please check this book to learn more about Public keys:
In order to create Ethereum Addresses, keccak256 algorithm is applied to the x and y points on public keys.
More information about Ethereum Addresses:
Graphical Ethereum Address Generator:

Public Key:

-128 Hex Characters
-The public key corresponds to the private key created using the cryptographic functions.
-Public keys can be created using private keys; however, you can’t create Private keys from Public keys. (Public key generation is a one-way function).

Private Key:

-Random 256 Bit, 64 Hex character number.
-Only known to the user who created it either through a library, or cryptographic hash functions.
-It is used to sign Ethereum transactions on the Blockchain.
-It shouldn’t be publicly shared because whoever owns the Private keys can access the funds for that address.
-Private keys are used to create Public addresses using SHA256 hash function.
ECDSA Algorithm Details:
Some of the libraries implementing ECDSA algorithm:
Ethereum Yellow Paper:

Ethereum Address details:

Ethereum Address Generation

Ethereum Address details:

-Ethereum addresses are anonymous, meaning that nobody can know if the address belongs to a known person.
-Ethereum addresses can be created offline on your computer, meaning that without the internet.
-Ethereum addresses can be created for free; you don’t need to pay to generate Bitcoin addresses.
-Ethereum addresses are single use only, and they shouldn’t be reused. Using address more than once creates privacy/security issues that should be avoided.
-Ethereum address has a maximum length of 42 characters.
-Ethereum addresses can be represented as QR Codes so that your phone can be used to scan codes and send Ethers (coin used to send funds on the Ethereum Blockchain).
-Public keys are used to create Ethereum addresses
-Private keys are used to sign Blockchain-based transactions to send and receive Ether.

Technical Ethereum Address generation steps:

-Generate Private Key using open source libraries such as Ethereumj or SHA256 hash function with a randomly generated number.
0: Private Key: 09e910621c2e988e9f7f6ffcd7024f54ec1461fa6e86a4b545e9e1fe21c28866
-Generate Public key using ECDSA — secp256k1 — algorithm applied to Private Key. The public key is a point on the Elliptic Curve Algorithm. It has x and y coordinates which are used to crate Ethereum address.
1: Public Key: 048e66b3e549818ea2cb354fb70749f6c8de8fa484f7530fc447d5fe80a1c424e4f5ae648d648c980ae7095d1efad87161d83886ca4b6c498ac22a93da5099014a
-Apply keccak256 — Ethereum hash function — using x and y coordinates to create Ethereum address.
2: Ethereum Address: 0x00B54E93EE2EBA3086A55F4249873E291D1AB06C
See address on Ethereum Blockchain 0x00B54E93EE2EBA3086A55F4249873E291D1AB06C
Output:
0: Private Key: 09e910621c2e988e9f7f6ffcd7024f54ec1461fa6e86a4b545e9e1fe21c28866
1: Public Key: 048e66b3e549818ea2cb354fb70749f6c8de8fa484f7530fc447d5fe80a1c424e4f5ae648d648c980ae7095d1efad87161d83886ca4b6c498ac22a93da5099014a
2: Ethereum Address: 0x00B54E93EE2EBA3086A55F4249873E291D1AB06C

If you want to learn how to create your Ethereum address using open-source software and tools then you can attend my course. You can see the details in the following page.

Tags

The Noonification banner

Subscribe to get your daily round-up of top tech stories!