BEAM is based on Mimblewimble – an elegant protocol released by an anonymous developer in 2016. Named after a tongue-tying spell from the Harry Potter saga, Mimblewimble uses Pedersen Commitment scheme for full anonymity and zero-knowledge range proofs to ensure validity of transaction amounts. To enhance privacy and reduce the blockchain size, Mimblewimble merges all intermediate outputs within a single block and across multiple blocks, thus only storing the current UTXO state and making the blockchain size an order of magnitude smaller than in other leading currencies. BEAM team implemented Mimblewimble from scratch using C++. BEAM blocks are mined using memory-hard Equihash Proof-of-Work algorithm.