Balloon hashing

Balloon hashing is a key derivation function presenting proven memory-hard password-hashing and modern design. It was created by Dan Boneh, Henry Corrigan-Gibbs (both at Stanford University) and Stuart Schechter (Microsoft Research) in 2016. It is a recommended function in NIST password guidelines.
The authors claim that Balloon:
Balloon is compared by its authors with Argon2, a similarly performing algorithm.
Algorithm.
There are three steps in the algorithm: