Formally, we can define a hash function as a mathematical function H:{0,1}∗↦{0,1}256. We use H(x)=y to denote that y is the output of H on input x.
A hash function is a random oracle: it takes an arbitrarily-sized input x, flips 256 coins y=⟨y1,y2,…,y256⟩, “remembers” x↦y, and from now on always returns y (i.e., 256 bits) on input x.
- Download integrity
- proof-of-work
- committment