Block Chain - Blockchain Address Generation and Address Derivation

Introduction

A blockchain address is a unique identifier used to receive and, in many blockchain networks, send digital assets. It functions somewhat like an account number in a traditional financial system, but it is created using cryptographic information rather than being assigned by a central bank or financial institution.

Blockchain addresses are generally derived from cryptographic keys. A user typically has a private key and a corresponding public key. The private key is kept secret and is used to authorize transactions, while the public key can be shared. An address is usually created by applying specific cryptographic transformations and encoding rules to the public key or information derived from it.

The exact process differs between blockchain networks. Bitcoin addresses, Ethereum addresses, and addresses used by other blockchain platforms can have different structures and generation procedures.

1. Private Key

The process begins with a private key. A private key is a randomly generated number that must remain secret.

For example, conceptually, a wallet may generate a large random number:

Private Key
     |
     v
Cryptographic Operations
     |
     v
Public Key
     |
     v
Blockchain Address

Modern blockchain systems use extremely large key spaces. This makes it computationally impractical to guess another user's private key through brute force.

The private key is extremely important because control of the private key generally means control over the assets associated with the corresponding address.

2. Public Key Generation

A public key is mathematically derived from the private key using a cryptographic algorithm.

For example, Bitcoin historically uses Elliptic Curve Digital Signature Algorithm (ECDSA) with the secp256k1 elliptic curve for its traditional key system.

The relationship can be represented as:

Private Key → Public Key

The operation is designed to be easy to perform in the forward direction but computationally infeasible to reverse. In other words, someone who knows the public key should not be able to practically calculate the private key from it.

The public key can therefore be exposed without revealing the private key.

3. Public Key to Address

The public key itself is not necessarily used directly as the final blockchain address. Many blockchain networks apply hashing, truncation, checksums, and encoding operations.

A simplified process is:

Private Key
     |
     v
Public Key
     |
     v
Hashing / Transformation
     |
     v
Address Data
     |
     v
Encoding and Checksum
     |
     v
Blockchain Address

The exact steps depend on the blockchain and the particular address format being used.

4. Bitcoin Address Generation

Bitcoin supports several address formats. A simplified example of a traditional Pay-to-Public-Key-Hash (P2PKH) address-generation process is:

Private Key
     |
     v
Public Key
     |
     v
SHA-256 Hash
     |
     v
RIPEMD-160 Hash
     |
     v
Version Information
     |
     v
Checksum
     |
     v
Base58Check Encoding
     |
     v
Bitcoin Address

The public key is first processed using SHA-256 and then RIPEMD-160. Additional information is incorporated, including a version byte. A checksum is calculated to help detect errors, and the resulting data is encoded using Base58Check.

This produces an address format commonly associated with older Bitcoin addresses, such as addresses beginning with 1.

Bitcoin also supports newer formats, including SegWit-based addresses, which use different address-generation and encoding mechanisms.

5. Ethereum Address Generation

Ethereum uses a different address structure.

A simplified Ethereum process is:

Private Key
     |
     v
Public Key
     |
     v
Keccak-256 Hash
     |
     v
Last 20 Bytes
     |
     v
Ethereum Address

An Ethereum externally owned account address is 20 bytes, represented as 40 hexadecimal characters, normally preceded by 0x.

For example, an address has a structure similar to:

0x1234...abcd

The shortened representation above is only illustrative.

Ethereum therefore does not generate addresses using exactly the same procedure as Bitcoin. This demonstrates why an address-generation process should always be understood in the context of the particular blockchain network.

6. Address Encoding

After the necessary cryptographic operations are completed, the resulting binary information needs to be represented in a form that people and software can conveniently use.

Different blockchain systems use different encoding methods.

Bitcoin's older address formats use Base58Check, which avoids characters that can easily be confused when reading or copying an address.

Other Bitcoin address formats use Bech32 or related formats.

Ethereum addresses are normally represented using hexadecimal notation.

Therefore, the visible appearance of an address depends partly on the encoding system used by the blockchain.

7. Checksums

A checksum is additional information used to help detect errors in an address.

Blockchain addresses can be long and difficult to type manually. A user might accidentally change one character while copying an address. A checksum can help software identify certain incorrectly entered addresses.

For example:

Correct Address
       |
       v
Checksum Verification
       |
       v
Valid Address

Checksums do not make an address secret. Their primary purpose is error detection rather than encryption.

Different blockchain address formats use different checksum mechanisms.

8. Address Derivation

Address generation and address derivation are related but not identical concepts.

Address generation refers broadly to creating an address from cryptographic key material.

Address derivation commonly refers to systematically producing additional keys and addresses from an existing seed or hierarchical wallet structure.

Modern wallets frequently use Hierarchical Deterministic (HD) wallets. Instead of randomly creating and independently backing up every private key, an HD wallet can use a master seed from which a large number of related private keys, public keys, and addresses can be derived.

The conceptual structure is:

Seed
 |
 v
Master Key
 |
 +---- Child Key 1 → Address 1
 |
 +---- Child Key 2 → Address 2
 |
 +---- Child Key 3 → Address 3
 |
 +---- Child Key 4 → Address 4

This makes wallet management considerably easier.

9. Address Derivation Paths

HD wallets can use predefined derivation paths to determine how keys and addresses are generated.

A derivation path can conceptually identify different levels such as:

Master
  |
  └── Purpose
       |
       └── Coin Type
            |
            └── Account
                 |
                 └── Change
                      |
                      └── Address Index

Different blockchain ecosystems and wallet standards can use different derivation paths.

This allows one seed phrase to manage multiple accounts, networks, and addresses while maintaining a structured relationship between the derived keys.

10. One Seed and Multiple Addresses

A major advantage of hierarchical wallet systems is that one backup seed can be used to recover numerous derived addresses.

For example:

One Seed
   |
   +-- Address A
   +-- Address B
   +-- Address C
   +-- Address D
   +-- Address E

The addresses are not simply random unrelated addresses. They are deterministically derived from the wallet's underlying key hierarchy.

As long as the correct seed and derivation information are available, compatible wallet software can regenerate the corresponding keys and addresses.

11. Change Addresses

Bitcoin and other UTXO-based systems can use change addresses.

Suppose a user has an unspent output worth 1 BTC but wants to spend 0.6 BTC. The remaining 0.4 BTC, minus the transaction fee, can be returned to an address controlled by the user's wallet.

Conceptually:

Input: 1 BTC
        |
        +---- 0.6 BTC → Recipient
        |
        +---- 0.39 BTC → Change Address
        |
        +---- 0.01 BTC → Transaction Fee

Wallet software can generate a new change address rather than repeatedly reusing the same receiving address.

This can improve transaction organization and, depending on how addresses are used, privacy.

12. Address Reuse

Address reuse occurs when the same blockchain address is repeatedly used for receiving funds.

Although technically possible on many networks, repeated reuse can have privacy implications. Blockchain transactions are generally recorded publicly, so repeatedly using one address can make it easier to associate multiple transactions with the same entity or wallet.

For this reason, some wallet systems automatically generate new receiving addresses.

However, address reuse policies differ between blockchain networks and applications, so users should follow the conventions appropriate to the network and wallet they are using.

13. Network-Specific Addresses

An important characteristic of blockchain addresses is that they are often network-specific.

For example, an address or address format intended for one blockchain network may not be appropriate for another network, even when the underlying cryptographic technology is related.

Wallet software therefore needs to know which network is being used before generating or displaying an address.

Sending assets to an incompatible address or network can result in loss of access to the assets, depending on the circumstances and recovery mechanisms available.

14. Addresses and Private Keys Are Different

A blockchain address should never be confused with a private key.

The relationship can be summarized as:

Private Key
   |
   v
Public Key
   |
   v
Address

The address is normally safe to share when receiving funds.

The private key must remain secret because it is used to create valid cryptographic signatures authorizing transactions.

A person does not normally prove ownership of an address by revealing the private key. Instead, the wallet uses the private key internally to generate a digital signature, and the blockchain network verifies that signature using the corresponding public-key information.

15. Address Generation and Security

The security of an address ultimately depends on the security of the underlying private key.

If a private key is generated using a secure source of randomness, it is extremely difficult for another party to guess it.

However, if the private key or seed phrase is exposed, an attacker may be able to control the associated assets.

Important security principles include:

  • Never share a private key or recovery seed.

  • Use trustworthy wallet software.

  • Avoid entering seed phrases into unknown websites.

  • Verify the destination address before confirming a transaction.

  • Be careful when switching between blockchain networks.

  • Keep wallet software and security systems appropriately maintained.

Conclusion

Blockchain address generation is a cryptographic process that converts key material into an identifier that can be used on a blockchain network. Although the general concept follows the relationship private key → public key → address, the actual procedure varies considerably between blockchain platforms.

Bitcoin can use hashing, version information, checksums, and specific encoding formats to create addresses, while Ethereum derives its standard externally owned account addresses differently using a Keccak-256-based process. Modern wallets can further use hierarchical deterministic derivation to create many addresses from a single seed.

Understanding address generation and derivation is important because it explains how blockchain wallets create addresses, how addresses relate to cryptographic keys, why different networks have different address formats, and how users can manage multiple addresses without maintaining a completely separate backup for every address.