Understand that MimbleWimble/Grin is privacy centric. Does it use Zero Knowledge Proofs to achieve the privacy goals?
In addition, what consensus algorithm is MimbleWimble/Grin using?
Understand that MimbleWimble/Grin is privacy centric. Does it use Zero Knowledge Proofs to achieve the privacy goals?
Yes. Zero Knowledge Proofs (specifically, Range Proofs. Possibly Bulletproofs in the future) contribute to the privacy goals of Grin by giving validators the ability to verify that no inflation or deflation occured in a transaction without needing know the amounts transacted.
In addition, what consensus algorithm is MimbleWimble/Grin using?
Grin uses Nakamoto Consensus (Proof of Work) with the Cuckoo Cycle PoW system. You can find more information on that here: https://github.com/tromp/cuckoo
A Mimblewimble blockchain relies on two complementary aspects to provide security: Pedersen Commitments and range proofs (in the form of Bulletproof range proofs). Bulletproofs do not require a trusted setup. They rely only on the discrete logarithm assumption, and are made non-interactive using the Fiat-Shamir heuristic.
Pedersen Commitments provide perfectly hiding and computationally binding commitments. Since Mimblewimble commitments are totally confidential and ownership cannot be proved, anyone can try to spend or mess with unspent coins embedded in those commitments. Fortunately, any new UTXO requires a range proof, and this is impossible to create if the input commitment cannot be opened.
A Mimblewimble blockchain grows with the size of the UTXO set. Using Bulletproofs, it would only grow with the number of transactions that have unspent outputs, which is much smaller than the size of the UTXO set.
CoinJoin is a technique to aggregate multiple payments from multiple senders into one unified transaction. Dash deployed an improved version of CoinJoin earlier. Mimblewimble can do CoinJoin non interactively and verifiably in public. Hence Mimblewimble can be viewed as a privacy preserving cryptocurrency approach using Non Interactive CoinJoin technique.