It's got a rememberable name, but all it is in essence is a protocol that aims to provide scalability, privacy and increased fungibility. Setting privacy as a primary goal of the project, and going for a simple easy to maintain design route that is an ASIC-resistant mining algorithm (named the Cuckoo Cycle) has made the project very interesting indeed.
You can see the implementation currently in progress as the Grin project on Github
You may of already used Zk-Snarks if you have any Zcash, as it is the first widespread implementation of the technology. A interesting form of highly private, zero knowlege cryptography.
The acronym stands for "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” essentially Zero knowledge proofs allow one party (known as the prover) to prove to another party (the verifier) that a statement is true. The smart feature being in doing this without revealing any information beyond validating that statement alone.
In laymen's terms a zero-knowledge 'proof of knowledge' is where a prover can assure the validity of a proof of a key or piece of information such as a secret number (or transaction), also they can mathematically prove without revealing any information about themself, at anytime without prover or verifier, even needing to interact with one another. The process is autonomous and can be verified at anytime by the networks consensus.
Preserves anonymity by obscuring transaction values, making amounts transferred only visible to the transactions participants.
Being able to not only obfuscate the values being sent to any third-party, cryptographically ensuring no double spend or fake coins are sent.
The elements project has been working with confidential transactions, in a nearly identical implementation to bitcoin. Users send and sign transactions via the command line interface in much a similar fashion.
One drawback in this solution is that the implementation only currently hides a certain amount of digits, depending on the 'blinding coverage' making the minimum amount 0.0001 BTC. Meaning transactions smaller then this are revealed so sending 123.456789 BTC would appears as ?.?????89 BTC