The Bitcoin blockchain is a sequence of blocks containing transactions. Each block header, apart from the genesis case, refers to the preceding block through its hash. Changing earlier data changes the hashes that later blocks depend on. Block-chain documentation.

A hash is a fingerprint, not encryption

A cryptographic hash maps input data to a fixed-length result. In Bitcoin’s block-header proof of work, SHA-256 is applied twice. Changing the input produces a different-looking result; the hash does not hide the original transaction data. Block structure and hashing.

The small experiment below uses a single SHA-256 operation to illustrate sensitivity to input. It is not a Bitcoin block miner.

Imagine three pages, each recording the fingerprint of the previous page. Edit page one and its fingerprint changes. Page two’s old reference no longer matches. Recalculating those references is easy in this analogy; that is why hashing alone is not enough.

Bitcoin also requires proof of work. A node chooses the chain with the most accumulated work among chains it considers valid. More work does not make an invalid transaction acceptable. Consensus and chain selection.

Ten minutes is a target

Bitcoin mainnet’s parameters target a 600-second average interval between blocks, with difficulty retargeting every 2,016 blocks. Actual block arrivals are irregular. A clock counting to ten minutes cannot tell you exactly when the next block will arrive. Network timing parameters.

Agreement can take time

Different peers can briefly learn about competing blocks. As blocks propagate and one valid branch accumulates more work, nodes converge on that branch. Transactions in a displaced block may need to be confirmed again. Peer-to-peer synchronization.

That is why confirmations describe growing confidence, rather than an instant, unconditional guarantee of finality. Follow the next guide to understand what authorizes a transaction.

Try the idea

One edit. A different fingerprint.

Change the message to calculate its SHA-256 hash in your browser.

Loading the local hashing experiment…

Illustrates a single SHA-256 operation. Bitcoin block headers use double SHA-256. This is hashing, not encryption; nothing is sent to a server.