Mimblewimble, released in July 2016, is a blockchain protocol with a focus on scalability, privacy and fungibility. Some believe that Mimblewimble achieves the goals of Bitcoin better than Bitcoin itself does, especially in regards to privacy. Instead of adding requirements on, Mimblewimble cuts things out to reduce the size of the node.
In every Bitcoin transaction, the sender’s address, the number of coins sent and the receiver’s address are always captured within a given block. This is necessary for those running full nodes to be able to confirm that the amount sent is equal to the amount received and that the transaction is sent by the holder of the currency.
The Mimblewimble protocol was proposed in a Bitcoin developers chatroom anonymously by Tom Elvis Jedusor, which is the French name of the Harry Potter character Voldemort. The protocol itself, appropriately named after a Harry Potter spell that prevents people from telling secrets, helps to keep blockchains from sharing users’ personal information.
Mimblewimble transactions are a derivative of confidential transactions. Confidential transactions were developed by a former Bitcoin developer, and allow senders to encrypt the amount of bitcoin they want to send using blinding factors. A blinding factor is a random value chosen by the sender used to encrypt bitcoin amounts during a transaction. During a confidential transaction, only the two involved parties know how much bitcoin is transacted. Observers can validate the transaction by comparing the input and output. This procedure ensures that bitcoins aren’t being created out of nothing and keeps the integrity of the system.
Mimblewimble functions similarly, except the sender and receiver both create the transaction. Called a Pedersen commitment, the sender and receiver both select a number. The commitment has to contain both an amount-part and a key part. A Mimblewimble transaction must have two Pedersen commitments, one for money going into the transaction and one for money coming out of the transaction.
Mimblewimble is currently used in two projects, Grin and Beam. Beam has recently introduced scriptless scripts, which aims to lower resource consumption. Because Mimblewimble doesn’t support scripts, developers had to find a way to offer scripts without requiring them.
Using scriptless scripts means that when someone validates a transaction, the smart contract still executes faithfully even though it isn’t hosted on the blockchain.
As of now, Mimblewimble is only able to be integrated into blockchain as a soft fork, or sidechain.