Public Keys, Private Keys, and Addresses in ETC

Every Ethereum Classic account is secured by public-key cryptography. Understanding how keys and addresses work is fundamental to safe interaction with the network.

## The Key Pair

### Private Key
A private key is a randomly generated 256-bit number — essentially a number between 1 and approximately 1.158 × 10⁷⁷. This number must be kept secret. Anyone who knows a private key has full control over the associated account.

### Public Key
The public key is derived from the private key using elliptic curve multiplication on the secp256k1 curve — the same curve used by Bitcoin. This operation is computationally easy in one direction but infeasible to reverse. Given a public key, there is no known way to determine the private key.

### Address
An ETC address is the last 20 bytes (160 bits) of the Keccak-256 hash of the public key, prefixed with "0x". For example: `0x3b0952fB8eAAC74E56E176102eBA70BAB1C81537`.

## Key Derivation Path

The derivation process follows a chain:

1. **Random entropy** → Private key (256 bits)
2. **Private key** → Public key (secp256k1 elliptic curve multiplication)
3. **Public key** → Address (Keccak-256 hash, take last 20 bytes)

Each step is a one-way function: you cannot reverse the process to recover the previous step.

## HD Wallets

Modern wallets use Hierarchical Deterministic (HD) key generation (BIP-32/BIP-44). A single seed phrase (12 or 24 words) deterministically generates an unlimited number of key pairs. ETC uses derivation path `m/44'/61'/0'/0` (where 61 is ETC's coin type per SLIP-44).

## Security Implications

- **Seed phrase = all keys**: Anyone with your seed phrase can derive every key your wallet has ever generated
- **Private key = account control**: There is no password reset. If a private key is lost, the funds are permanently inaccessible
- **Address = public identifier**: Addresses can be freely shared. They reveal no information about the private key

## Checksummed Addresses

EIP-55 mixed-case checksums encode error detection directly into the address string. Wallets should always validate checksums before sending transactions.