A hash function takes any input (a file, a transaction, a password) and produces a fixed-size output (the hash or digest) that acts as a unique fingerprint. It's a one-way function: easy to compute the hash from input, practically impossible to reverse-engineer the input from the hash.
What Is a Hash Function (Plain Language)?
2 min read
The short version
A hash function is a digital fingerprint machine. Feed it a 1,000-page book or a single letter, it always outputs a string of exactly the same length (like a 64-character code). Change one comma in the input and the output changes completely and unpredictably. You can't reconstruct the book from the fingerprint.
How It Works
Cryptographic hash functions (SHA-256, Keccak-256) have key properties: (1) Deterministic, same input always produces same output. (2) Fast to compute. (3) Avalanche effect, a tiny input change causes a completely different output. (4) Pre-image resistance, given a hash, you can't find the input. (5) Collision resistance, practically impossible to find two different inputs producing the same hash. In blockchains, hash functions secure block linking (each block hashes the previous), prove work was done (mining = finding inputs that hash below a target), verify data integrity (Merkle trees), and derive addresses from public keys.
SHA-256 in action
Input: "Hello" → SHA-256 output: 185f8db3... (64 hex chars). Input: "hello" (lowercase h) → SHA-256 output: 2cf24dba... (completely different 64 hex chars). Input: the entire Bitcoin whitepaper (9 pages) → still just 64 hex chars. A miner hashing "block_header + nonce=1" gets one output, "block_header + nonce=2" gets a totally different output. They cycle through billions of nonces per second looking for one that starts with enough zeros.
What People Get Wrong
Hashing is encryption
Encryption is reversible (with the key). Hashing is one-way, there is no key that decrypts a hash back to the original input. They serve different purposes.
Two inputs can't produce the same hash
Mathematically, collisions must exist (infinite inputs, finite outputs). But for SHA-256, finding a collision would take longer than the age of the universe with current technology.
Longer inputs produce longer hashes
The output is always the same fixed size regardless of input length. SHA-256 always outputs 256 bits (64 hex characters) whether the input is 1 byte or 1 terabyte.
Keep Reading
Sources & Further Reading
- SHA-256 Specification (NIST)
The official NIST standard defining SHA-256 used in Bitcoin
- Online SHA-256 Calculator
Try SHA-256 hashing yourself to see the avalanche effect in action
Questions People Also Ask
- What hash function does Bitcoin use?
- Bitcoin uses SHA-256 (double-hashed: SHA-256(SHA-256(x))) for block hashing and proof of work, and RIPEMD-160 (after SHA-256) for address derivation.
- What hash function does Ethereum use?
- Ethereum uses Keccak-256 (often incorrectly called SHA-3) for transaction hashing, state roots, and address derivation.
- Can quantum computers break hash functions?
- Grover's algorithm could theoretically halve the security bits (SHA-256 → 128-bit security). This is still astronomically secure. Hash functions are more quantum-resistant than public-key cryptography.