Privacy and scalability are two of the most prevailent topics in the blockchain industry. Bitcoin, the brainchild of Satoshi Nakamoto offers a decentralized, peer-to-peer, and transparent alternative to fiat currency.
One of the major reasons why bitcoin is imbibed with these characteristics is because they are a polar opposite to fiat’s facets – centralized, stored with 3rd party custodians (banks), and opaqueness in the form of money laundering. These three properties of fiat were instrumental in giving birth to one of the biggest financial crisis of the last few decades.
In an attempt to free the world from the cold shackles of banks and financial institutions, Nakamoto wanted to create a currency that would be completely transparent and accessible for anyone from anywhere; whilst Nakamoto did succeed in creating such a currency to some extent, there emerged a demand for an alternative that could facilitate transactions behind the veil of anonymity.
This new appetite for anonymous cryptocurrencies was soon filled by the likes of privacy-oriented digital currencies like Monero (XMR) and Zcash (ZEC). And while these currencies have undergone continual fine-tuning to bolster their privacy features, they have somewhat lagged behind on the scalability front.
However, a new alternative, called the MimbleWimble protocol could very well be the answer to the dual problem of privacy and scalability.
MimbleWimble takes its name from J.K. Rowling’s Harry Potter universe where it is used as a spell to forbid a person from spilling secrets. The protocol works in a similar manner` in the cryptoverse in that it is a robust privacy-enhancing and scalable blockchain solution.
How Did it Come about?
The MimbleWimble protocol first came into the limelight in 2016 when it was proposed by a user under the pseudonym of Tom Elvis Jedusor, who shared a Tor link on the bitcoin wizards IRC chatroom to an inconspicuous text file and then disappeared forever. Here’s some fun trivia, Tom Elvis Jedusor is Voldemort’s real-name in the French adaptation of Harry Potter.
Later, in October 2016, Andrew Poelstra, a mathematician at Blockstream, published a more detailed and refined paper on MimbleWimble.
Before delving deeper into the finer intricacies of the protocol, it’s important to remember that MimbleWimble is one of the very first solutions that deal with two of the biggest clinks in the armor of bitcoin and other such cryptocurrencies – privacy and scalability.
What Does MimbleWimble Do?
MimbleWimble runs on a Proof-of-Work (PoW) protocol called the Cuckoo cycle.
Cuckoo cycle has emerged as one of the most promising PoW protocols in recent times. The protocol provides ASIC-resistant frameworks and ensures that the network remains decentralized at all times.
Some of the features that make MimbleWimble an attractive protocol for privacy and scalability purposes are as follows:
MimbleWimble uses complex cryptography and mathematics to provide a scalable solution that can process large blockchains at once without putting extra stress on the network. This happens because MimbleWimble allows the validators store only unspent transaction outputs (UTXOs).
For the uninitiated, a UTXO is an output of a blockchain transaction that has not been “spent,” i.e. used as an input in the next transaction. It’s vital to note that outputs are a superset of UTXOs.
For instance, let’s assume that Josh has two transaction outputs of 2 BTC and 1 BTC from prior transactions. Josh needs to pay a vendor 2.5 BTC. Now, while initiating payment in BTC, Josh’s wallet will create a transaction which sends 2.5 BTC with two new outputs. As a result, the vendor receives 2.5 BTC and Josh receives 0.5 BTC back as balance (less transaction fees).
If you’d like to experience this first hand, check your bitcoin wallet’s block explorer. You’ll likely observe that your bitcoin address often sends a slightly higher amount of BTC than specified.
MimbleWimble also ensures complete anonymity for users involved in a transaction.
In a manner akin to XMR and ZEC, MimbleWimble hides the details of transaction sender, recipient, and the number of tokens transferred from people not involved in the transaction. The involved parties can verify the transaction by ensuring that it has been recorded on the chain of data. Once a transaction is completed, the currency in the outputs can be summed to ensure that it is equal to the inputs uploaded on the chain.
This is a big improvement from protocols used by Bitcoin where everyone can trace the value of cryptocurrencies being transferred from one wallet to another. This property of BTC recently came in the news when Binance CEO, Changpeng Zhao, Tweeted that the exchange has frozen some of the funds moved by hackers from New Zealand’s Cryptopia cryptocurrency exchange.
Another of MimbleWimble’s impressive privacy features is the absence of public key addresses. The protocol works entirely on inputs and outputs. MimbleWimble makes use of secret keys generated during a UTXO transaction. These secret keys, also called “binding factor” are stored by the receiver in his wallet.
A binding factor, akin to Bitcoin, relies on elliptic curve cryptography and the UTXO model.
Elliptic curve cryptography sounds like a hodgepodge of complex technical terms but in reality, it’s a fairly easy concept.
Crypto enthusiasts are aware of the functionality of public and private keys in validating a transaction.
While doing a crypto transaction, Alice generates a key pair comprising of her public and private keys. The private key thus generated encrypts the hash of the transaction message. Alice then sends the message and the signed hash to Bob, who takes his own hash of the message, and uses Alice’s public key to decrypt her hashed version of the message. If both the hashes match, it means that the original message was indeed sent by Alice and that the message has not been changed or altered in any capacity.
Now, let’s take the help of the following infographic to understand how exactly an elliptic curve functions.
Elliptic curves are preferred by programmers due to their numerous properties that make them fit to carry out complex cryptographic protocols. Their “one-way function” is perhaps their silver bullet when it comes to cryptography.
On an elliptic curve, it is easy to take a random point Z and multiply it with some integer i to get another randomly generated point P = Zi.
If an individual is presented with the value of (Z, P), it is computationally infeasible to recover the value of i as it could be any of the infinite integers lying on the curve. This phenomenon allows users to use (Z, P) as a public key, and i as a secret key.
Limitations of MimbleWimble
MimbleWimble, being one of the latest scalability and privacy protocols developed, has its own share of downsides.
Due to the privacy feature attached to MimbleWimble, the protocol suffers from limited programmability. This means that more complex and elaborate functions like time-lock or sidechain payment channels like Bitcoin’s Lightning Network cannot be implemented as yet.
Also, due to the absence of public addresses, MimbleWimble requires both the transaction parties to be online at the same time to complete a transaction. A transaction cannot be executed successfully if either of the parties is not online. This is in stark contrast to Bitcoin where a user can send BTC to the destination wallet even if the recipient doesn’t have access to the internet.
Further, MimbleWimble protocol, as yet, hasn’t outlined a way to be quantum resistant. Close followers of cryptocurrencies and blockchain technology are well aware of the level of threat quantum computers can pose to the emerging technology’s functionality.