ethereum

Ethereum

How to generate Ethereum addresses - Technical explanation and online course

Author: Tuna Tore - December, 2 2019

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: https://en.wikipedia.org/wiki/Hexadecimal

Some Hexadecimal samples:

Decimal Hexadecimal
0 00
1 01
9 09
10 0A
11 0B
12 0C
13 0D
14 0E
15 0F
16 10
50 32
55 37

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:
https://github.com/ethereumbook/ethereumbook/blob/develop/04keys-addresses.asciidoc#public-keys

In order to create Ethereum Addresses, keccak256 algorithm is applied to the x and y points on public keys.
https://eth-hash.readthedocs.io/en/latest/

More information about Ethereum Addresses:
https://github.com/ethereumbook/ethereumbook/blob/develop/04keys-addresses.asciidoc#ethereum-addresses

Graphical Ethereum Address Generator:
https://www.royalfork.org/2017/12/10/eth-graphical-address/

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.

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 Ethereum 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 hexadecimal characters.
  • Ethereum addresses can be represented as QR Codes so that your phone can be used to scan codes and send Ether (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 Ethereum.

ethereum generation steps

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 the Private Key.
-The public key is a point on the Elliptic Curve Algorithm. It has x and y coordinates which are used to create 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 the address on the etherscan 0x00B54E93EE2EBA3086A55F4249873E291D1AB06C

Output: Sample Ethereum Address Generation steps:
----------------------------------------------------------------------------------------------------------------------------
0: Private Key: 09e910621c2e988e9f7f6ffcd7024f54ec1461fa6e86a4b545e9e1fe21c28866
1: Public Key: 048e66b3e549818ea2cb354fb70749f6c8de8fa484f7530fc447d5fe80a1c424e4f5ae648d648c980ae7095d1efad87161d83886ca4b6c498ac22a93da5099014a
2: Ethereum Address: 0x00B54E93EE2EBA3086A55F4249873E291D1AB06C
----------------------------------------------------------------------------------------------------------------------------

When it comes to creating Bitcoin and Ethereum public and private key pairs, security becomes crucial. Having the right software code gives users the confidence to create as many as Bitcoin, and Ethereum addresses offline without the need to download any commercial software on their computers or mobile phones. This is what we provide here to our users at mycrypto.tools — increasing the security of cryptocurrency key generation to a maximum level, which is the offline key generation for Bitcoin and Ethereum coins.

Tuna Tore founder of mycrypto.tools



Learn more about our cryptocurrency course

demo
COURSE

Cryptocurrency private-public address generation course for you

Benefits of attending this cryptocurrency course are listed below:
  • Complete ownership of your public and private keys for Bitcoin and Ethereum cryptocurrencies.
  • Complete ownership of the source codes to create private keys — open-source software.
  • Understand how the addresses are created step by step (with a simplified language) without depending on external parties such as companies providing software wallets or cold wallets also named as cold storage.
  • You will be able to encrypt your private keys and store them in a safe place without the need to share anywhere, which provides you the opportunity to send some cryptocurrency to your offline address and store it for many years in a safe location.
  • You don't need to depend on anyone apart from following this course — which is simplified and based on open-source software — while creating your cold/paper wallets.
  • Understand Bitcoin and Ethereum, Blockchain, Crypto Wallet Types, and history of cryptocurrencies.

Learn more about our cryptocurrency course