A word that you hear in the Cryptocurrency Ecosystem lately and the topic of many conversations is Mimblewimble.
In the world of Harry Potter, Mimblewimble is a tongue-tying curse that causes the opponent to speak incoherently without the ability to cast a spell or say incantations.
How is that applied to Cryptocurrencies? Well, so happens Mimblewimble was the name chosen for a newly trending protocol that depends on secure Cryptographic primitives. These secure Cryptographic primitives are rudimentary in providing a robust framework for the blockchain to achieve scalability, fungibility, and privacy.
How does Mimblewimble work?
Mimblewimble uses about 10% of the storage on the blockchain that Bitcoin transactions do, making it exceedingly scalable, allowing for faster transactions, and less centralized than Bitcoin. Additionally, this protocol makes for privacy and extremely anonymous transactions.
How does it use much less storage space on the blockchain? Mimblewimble protocol requires no address storage on the blockchain and shorter keys. The protocol used is called elliptic-curve cryptography, extensively tested for decades.
Harry Potter fans will be excited with another reference when the Mimblewimble Whitepaper, published to the Bitcoin research channel in 2016. An anonymous author by the name of Tom Elvis Judisor – the French name for Voldemort submitted the Mimblewimble Whitepaper.
Remember the owner of the invisible cloak in Harry Potter? Shortly after the Mimblewimble Whitepaper was published, another anonymous user adopting the false name “Ignotus Peverell” began a project on GitHub with the application of the Mimblewimble protocol. This project, called Grin, released its mainnet on January 15, 2019. Recall, the owner of the invisible cloak, was one Ignotus Peverell.
USD VS Bitcoin transaction comparison:
First, let’s examine Bitcoin’s UTXO (unspent transaction output) model and paying in USD fiat.
Erline: -1 USD
Gail: +1 USD
On the Bitcoin network, it would not look the same since BTC transactions consist of several inputs and outputs going from the sender to the receiver. Checking a BTC transaction on the blockchain, you will notice several inputs and outputs done on one transaction from your address.
On the Bitcoin network, exchanging a Bitcoin would look like this: Gail wants to send 1 BTC to Erline. Here, merely deducting one Bitcoin from Gail’s wallet would show instead, the network bundling up multiple inputs from previous BTC transactions that were sent to Gail to equalize the one coin Gail sends to Erline. Therefore, this Bitcoin (UTXO transaction could look like this:
Gail: – (0.1+0.25+0.35+0.3) BTC where A+B+C+D are all inputs added up
Erline: + 1 BTC
The example shows Gail’s 1 BTC consisted of four inputs. In some cases in the Bitcoin network, one transaction has hundreds of inputs. Additionally, if the sum of the inputs is greater than the transaction amount, the transfer will create yet another output. Resulting in the first output, including the exact amount that will go to the receiver, and the rest returned to the sender. Every transaction must be individually signed by wallet software, burdening the network with massive amounts of data to process. The whole process is very inefficient.
As we read above, the Mimblewimble protocol offers a much more efficient system eliminating inputs and outputs. One Multisignature replaces the UTXO model, and all inputs and outputs called Confidential Transactions. If Alice wants to send Bob a coin, both Alice and Bob create a multi-signature key that verifies the transaction.
Confidential Transactions use the “Pedersen Commitment scheme,” using no addresses. The project uses something called a “blinding factor” for the inputs and outputs along with both parties’ public and private keys. Resulting in the transaction done “in secret” between the two parties engaged in the trade, and only they know the details. This blinding factor makes and keeps privacy very high in the network.
How does The Pedersen Commitment scheme work?
Full nodes deduct encrypted amounts from inputs and outputs. The process creates balanced equations proving no coins produced and added fraudulently. Even the node is unaware of the actual value of the transaction during the whole process.
Mimblewimble protocol verification requires only to ensure no new coins have been created in this process, and that the parties taking part in the transaction have ownership of their keys. Both verification processes use the blinding factor to ensure privacy in operation.
- 5+5=10 — 5+5-10=0
The example shows that no new coins were created – indicating the net balance is zero.
Using (10) as the secret number above – this blinding factor – is added to the calculation, then multiplied by all variables. Using it in this way to obscure the original values.
This 3rd step shows that when multiplied by 10 (the secret number in the second equation), the values remain private while still allowing others to verify that no new coins were created in the transaction.
In Mimblewimble, the blinding factor is a combination of the public and private keys. This process proves that no new coins are added and both parties can prove ownership of their keys.
At the completion, both parties are given a miltisignature header, which consists of all the inputs and outputs of the transactions that were merged.
What is “Cut-Through?”
A single block using UTXO protocol consists of hundreds of transactions and data that needs storing on the blockchain. Instead, using Mimblewimble’s Cut Through feature, this data is compressed, and most data used in the UTXO protocol will is removed without the risk of the security of the blockchain.
- Gail sends 1 BTC to Erline.
- Erline sends 1 BTC to David.
This typical block has two UTXOs—the first UTXO is showing the input for that 1 BTC, which reflects how it got to Gail. The output for the first UTXO is the result of that transaction; this verifies that Erline now owns the Bitcoin. The second UTXO shows the output of the first UTXO – which is now the input of the second UTXO – and the output of the second transaction to David.
Mimblewimble eliminates the output of the first transaction and the input of the second transaction. That leaves only one input and one output – verifying how Gail got this 1 Bitcoin and how David received their 1 BTC -, instead of having two of each.
This compression results in decreasing the size of the blockchain, making Mimblewimble much lighter and faster in data storage.
In addition, it can be proven that no new funds were created from thin air through the summation of the number of inputs and outputs which should always cancel out. Due to the cut-through feature, it means that a Mimblewimble block may simply only contain:
- A block header
- The list of inputs remaining after cut-through
- The list of outputs remaining after cut-through
- The transaction kernel
- Kernel offset
What is a Kernel offset? – A kernel offset is a blinding factor that is included in a block to prevent it from being reconstructed by malicious actors.
Mimblewimble & CoinJoin
…Mimblewimble transactions also leverage another piece of cryptographic innovation known as CoinJoin. Proposed by Gregory Maxwell, CoinJoin is a mechanism by which payments from multiple spenders are combined to form a single transaction, thus making it difficult for an outside party to determine which payment was intended for which recipient.
…Currently, Mimblewimble can only be integrated into the Bitcoin network as a soft fork or as a sidechain. On this sidechain, users would be able to move bitcoins onto it and transact with an increased level of privacy...
…Through the use of cryptographic innovations such as confidential transactions, CoinJoin, and the cut-through feature, Mimblewimble offers a strong scaling solution, as well as an increased level of privacy...