A Merkle proof (also called a Merkle path or inclusion proof) is a list of hashes that allows anyone to verify that a specific piece of data was included in a Merkle tree without seeing the entire tree. If the Merkle root (the tree’s top hash) is known and trusted, a Merkle proof lets you verify inclusion in O(log n) steps — making it efficient even for trees with millions of leaves. Merkle proofs are fundamental to how Bitcoin’s SPV (Simplified Payment Verification) works, how crypto airdrops distribute tokens on-chain at scale, and how blockchain bridges verify cross-chain state.
How It Works
Say you have a Merkle tree of 8 items and want to prove that T3 is in the tree:
“`
[Root]
/
[H1234] [H5678]
/
[H12] [H34]
/
T3 T4
“`
The proof consists of: [H(T4), H12, H5678]
To verify:
- Hash T3 → H(T3)
- Hash H(T3) with H(T4) → H34
- Hash H34 with H12 → H1234
- Hash H1234 with H5678 → compare to Root
If the final hash matches the known Merkle root → T3 is proven to be in the tree. The verifier never sees T1, T2, T4, T5–T8 — only the 3 sibling hashes on the path to root.
Proof size: For a tree with N leaves, a proof requires log₂(N) hashes. For 1 million recipients: log₂(1,000,000) ≈ 20 hashes × 32 bytes each = 640 bytes. Efficient.
Applications in Crypto
The following sections cover this in detail.
Airdrop Claims
The most common on-chain use of Merkle proofs in DeFi:
- A protocol builds an eligibility list (e.g., 500,000 Ethereum addresses with amounts)
- They compute the Merkle root of this list
- They store only the 32-byte root on-chain in a
MerkleDistributorcontract - Off-chain: they publish the full list + individual proofs (often via IPFS or their website)
- Each eligible user submits their Merkle proof; the contract verifies it against the stored root and releases their tokens
This approach costs the protocol ~20,000 gas (one storage write for the root) instead of millions of gas (writing 500,000 addresses on-chain). The cost is pushed to claimers.
Bitcoin SPV (Light Clients)
Bitcoin lightweight clients (mobile wallets) download only block headers (80 bytes each). When they need to verify a transaction, they request a Merkle proof from a full node — the path of hashes from the transaction to the block’s Merkle root. If the proof is valid and the block header is in the longest chain, the transaction is confirmed. Users don’t need to download gigabytes of blockchain data.
Bridges and Cross-Chain Verification
Blockchain bridges often work by:
- A transaction occurs on Chain A
- A relayer submits a Merkle proof of that transaction to Chain B
- Chain B’s bridge contract verifies the proof against Chain A’s block root (which the bridge already knows)
This enables trustless (or trust-minimized) cross-chain messaging.
ZK Proofs and State Proofs
Merkle proofs are used inside zero-knowledge proof systems to prove membership in a set without revealing which element. “I know a preimage that hashes to a leaf in this Merkle tree” can be expressed as a ZK circuit. State proofs (proving the value of an Ethereum storage slot at a specific block) use the Merkle Patricia Trie of that block’s state root.
History
- 1979 — Ralph Merkle patents the hash tree (U.S. Patent 4,309,569), implicitly introducing path-based inclusion proofs.
- 2008 — Bitcoin whitepaper, Section 8 — Satoshi Nakamoto describes SPV using Merkle proofs to verify transactions without full blockchain.
- 2018 — UNI airdrop era approaches — Uniswap, 1inch, and other DeFi protocols popularize the
MerkleDistributorcontract pattern for token airdrops. - 2020 — Uniswap UNI airdrop uses Merkle proof distribution for 150,000+ eligible addresses — cementing the pattern as standard practice.
- 2021 — Bridge exploits highlight the critical importance of Merkle proof verification logic; several bridges were exploited due to insufficient proof validation.
- 2023–2024 — ZK ecosystem extensively uses Merkle proofs within circuits for set membership and state verification in rollup proving systems.
Common Misconceptions
“You need to store the entire Merkle tree on-chain to use Merkle proofs.”
Only the Merkle root is stored on-chain. The full tree and individual proofs are distributed off-chain (website, IPFS). This is the whole point — the root is the trust anchor; proofs verify against it.
“Merkle proofs prove authenticity of the data itself.”
A Merkle proof proves inclusion in the tree — that X was present when the root was computed. It doesn’t prove the data is accurate or that the root was computed honestly. You still must trust the entity that published the root (though this can be replaced by consensus if the root is derived from a blockchain’s own block hash).
“Submitting a wrong proof will cost nothing.”
Failed Merkle proof verification still consumes gas up to the failure point. Users submitting wrong proofs (e.g., a wrong address or amount) pay gas for the failed transaction.
Criticisms
- Off-chain proof distribution risk — Airdrop Merkle proofs rely on the protocol hosting the proof data (often their website or IPFS). If the site goes down and IPFS pins expire before a claim window closes, some users cannot claim even though their address is in the tree.
- Claim window griefing — Protocols can publish a root with a short claim window; users who miss the window lose eligibility. The on-chain root doesn’t help if the off-chain proof data has been deleted.
- Bridge verification bugs — Multiple bridge hacks (Ronin, Nomad, Wormhole) involved incorrect or missing Merkle proof validation. The complexity of proof verification under different hash functions, tree depths, and encoding formats creates attack surface.
Social Media Sentiment
Merkle proofs surface on Crypto Twitter/X primarily during airdrop seasons — “how to claim” threads explain the proof submission process, and post-mortems after bridge exploits analyze what verification went wrong. On r/ethereum, Merkle proofs are discussed respectfully as core infrastructure but receive little glamour; most users encounter them only through airdrop UIs that abstract away the proof details. Developer communities (Ethereum Magicians, GitHub EIPs) discuss Merkle proof standards in the context of ZK rollups and stateless Ethereum.
Last updated: 2026-04
Related Terms
Sources
- Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System, Section 8: Simplified Payment Verification. Bitcoin.org.
- Buterin, V. (2017). Ethereum Light Client and State Proofs. Ethereum Research.
- Merkle, R. (1988). “A Digital Signature Based on a Conventional Encryption Function.” CRYPTO 1987, LNCS 293.
- Trail of Bits (2022). Bridge Security Review: Common Merkle Verification Failures. Blog.trailofbits.com.