An infographic about a protocol looking to increase anonymity without making a trade-off with scaling.
What is Mimblewimble?
A brief history
Mimblewimble is a protocol introduced in August 2016 by a pseudonymous author going under the name of Tom Elvis Jedusor. This is Tom Riddle’s full name in the French books and movies of Harry Potter. Jedusor posted this paper in the middle of the night in the #bitcoin-wizards IRC channel. It proposed a way to have unseen anonymity without a trade-off with scaling. It soon went viral in the cryptography circles and a few weeks later another Harry Potter character ‘Ignotus Peverell’, a name of a character who invented the invisibility cloak in the books, published an implementation of the protocol on Github.
This was the start of Grin, the first Mimblewimble implementation.
What is it?
Bitcoin isn’t anonymous, it works with pseudonyms addresses but identity can still be traced. Mimblewimble is a blockchain design focused on giving pure anonymity to its users without sacrificing scaling abilities. It leverages two pieces of cryptographic innovations: Confidential Transactions (CT) and Coinjoin (CJ)
- Confidential Transactions in Bitcoin
CT hides the amount of transactions so only the sender and receiver know how much was actually sent but it can still be verified by anyone else. The major disadvantage is that it makes the transaction size much bigger.
- Coin Join in Bitcoin
CJ combines multiple transactions therefore obfuscates which bitcoins were sent from which address to which address.
- CT + CJ + some cryptographic magic = Mimblewimble
Where Bitcoin works with addresses and public and private keys, a Mimblewimble block removes these so it simply consists of inputs, outputs and signature data. A block becomes one large transaction without visible amounts and addresses, it becomes one large CT + CJ transaction.
Bitcoin is an ever growing blockchain which becomes larger and larger. Mimblewimble grows much slower and it can actually shrink. The reason is that old and new transaction data can be cancelled out against each other so most old transaction data can be forgotten. If CT and CJ had been used in bitcoin from day one, the bitcoin blockchain would be 1 terabyte. With Mimblewimble this would be 120 gigabyte and as said before it can even shrink. This is the real magic of the protocol.
Mimblewimble has two implementations. Grin, the one mentioned in the introduction and Beam. These implementations have some major differences. Grin is an open source project introduced in March 2016. The community formed organically after the release of the paper. Grin is coded in Rust and new transactions are added to the blockchain by a proof of work algorithm which is a combination of Equihash and Cuckoo Cycle . The vision for Grin is to become a currency so the monetary policy is unfixed. 1 Grin is issued every second.
The second one is Beam, this is also an open source project but come later into the industry, around March 2018. They maintain a corporate structure, and a portion of the block reward goes to the Foundation to support the blockchain’s development. This implementation is coded in C++ and new transactions are added to the blockchain by by the proof of work algorithm also used in Grin, Equihash. The first 12 months only General Purpose Hardware (GPUs) should be able to mine. However, it only intends to keep the ASICs at bay for about a year, giving them a head-start. Beam has a vision to become a ‘store of value’ coin (short-term) and has a fixed issuance schedule, like bitcoin, capped at 263 million.