Hash
A fixed-size cryptographic identifier created from variable-sized input data.
Hashing is used throughout computer science for data indexing and retrieval, but in blockchain, it is the bedrock of security. It allows the network to verify the integrity of blocks and transactions. For instance, Bitcoin uses the SHA-256 algorithm to secure its ledger. Because hashes are one-way, they allow for 'Proof of Work'—where miners must find a specific hash that meets a difficulty target, proving they expended computational energy without revealing the secrets behind the data.
graph LR
Center["Hash"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Rel_encryption["encryption"]:::related -.-> Center
click Rel_encryption "/terms/encryption"
Rel_mathematics["mathematics"]:::related -.-> Center
click Rel_mathematics "/terms/mathematics"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explain Like I'm 5
🌍 Think of a hash as a 'Digital Fingerprint'. Just as any person can be identified by their fingerprint, any digital file can be identified by its hash. If you change even one pixel in a photo, its digital fingerprint changes completely, letting you know the file was tampered with.
🤓 Expert Deep Dive
Cryptographic hash functions must satisfy three primary criteria: Pre-image Resistance (impossible to reverse the input from the output), Second Pre-image Resistance (impossible to find a different input that yields the same output), and Collision Resistance (statistically impossible for any two distinct inputs to produce the same hash). In blockchain, the 'Avalanche Effect' is critical — where a 1-bit change in input flips approximately 50% of the output bits, making the function unpredictable. Hashing is the fundamental building block of Merkle Trees, allowing for efficient verification of large datasets without needing the entire data set.