While a hash function generates a fixed-size output based on input data, a hash chain extends this concept by creating a sequence of hash values linked together, with each subsequent hash value dependent on the previous one.