In this episode of CRYPTO 101, we finally had the chance to address the long-awaited and much-requested topic of MimbleWimble. BEAM CEO Alexander Zaidelson helped walk Matthew through some of the basics of the technology which includes understanding how Bitcoin transactions work. There will be a follow-up piece on BEAM itself in the very near future, so stay tuned. But for now, what is this MimbleWimble business?
Who is Alexander Zaidelson?
Speaking to us from Israel where he is based, Alexander spoke about how he was trained in applied linguistics — a combination of linguistics and computer science — before starting his career as a software developer. He soon co-founded a business in 2005 named ‘Nareos’ that focussed on peer-to-peer networks. In 2005 peer-to-peer networks primarily revolved around distribution of digital data, the sort of thing we are familiar with through programs like Bittorrent. Since then Alexander has taken senior roles with WeFi and CIRTech Fund before becoming the CEO of BEAM.
What is MimbleWimble?
“I call my creation Mimblewimble because it is used to prevent the blockchain from talking about all user's information.”— Tom Elvis Jedusor —
MimbleWimble is a protocol that was published in 2016 under the name Tom Elvis Jedusor, an anagram for the french spelling of the fictional Harry Potter villain Lord Voldemort. In the Harry Potter book series, MimbleWimble is a spell that ties the victim’s tongue so that they cannot speak about what they have just witnessed.
In the blockchain sense, MimbleWimble protects your transactions from being seen and therefore spoken about. In the Whitepaper that Tom Elvis posted online, the case for increased scalability (as well as the obvious added privacy) was also argued for.
“It would be better if an auditor needed only to check data on the outputs themselves, but this is impossible because they are valid if and only if the output is at the end of a chain of previous outputs, each signs the next. In other words, the whole blockchain must be validated to confirm the final state.”— Tom Elvis Jedusor —
How Does it Do That?
In order to understand MimbleWimble, we need to understand how a Bitcoin transaction actually works. You may have noticed — if you have sent a cryptocurrency like Bitcoin from your wallet to another wallet that the interface is relatively simple. You simply choose how much bitcoin you want to send, who you want to send it to, and then click send. But under the hood your wallet is doing a fair bit more work than that.
Each Bitcoin transaction is made up of inputs and outputs. Say you received 1BTC from your employer, your wallet would register a transaction input of +1BTC. When you then want to go and send 0.5 BTC to your friend, your wallet scans through all the transaction inputs you have ever received and not spent — these are called Unspent Transaction Outputs (or UTXOs). Your wallet then chooses one or more of them to become a transaction input for your new transaction of sending 0.5 BTC to your friend. Bitcoin transactions cannot use anything other than UTXOs that are attributed to any given wallet wishing to spend their BTC. This means that you technically don’t have a bitcoin balance, instead you have a list of UTXO values.
Of course if the only UTXO you have is the 1BTC that your employer sent you, there may seem to be a problem. You want to only send 0.5BTC not the full 1BTC that you received. Luckily, the Bitcoin transaction mathematics can handle this. Your wallet will set up a transaction where the input is indeed that same 1BTC UTXO however, every transaction is made up of inputs AND outputs. From that 1BTC input the wallet will create at least two outputs — one for your friend of 0.5 BTC, and the other (0.5 minus the transaction fee) will be sent back to your wallet.
All of this information is made public when your transaction is included in a newly minted block added to the Bitcoin blockchain — that is the nature of Bitcoin.
I would highly recommend checking out ‘Ivan on Tech’s’ helpful Youtube video explaining this in more detail.
So what does MimbleWimble Change?
“Basically with MimbleWimble we don’t store the transaction history. We just store a relatively concise proof that each transaction was legal. This results in a much much smaller blockchain.”— Alexander Zaidelson —
The mathematics behind MimbleWimble are quite simple (even though I am yet to wrap my head around them). Some people, including Jimmy Song have described it as a sort of “blockchainless blockchain” because it hides much of the data that is stored on the blockchain in a regular cryptocurrency like Bitcoin. Mimblewimble does not keep the history of transactions once they have been completed while still mathematically protecting the integrity of the asset by making sure the amounts of inputs and outputs still equal zero. The result is then validated by the main chain but all other information is destroyed thus keeping both parties and their spending/receiving amounts kept disclosed.
The Whitepaper Jedusor posted is very short and straight to the point. Basically MimbleWimble can work off of the main Bitcoin blockchain, providing it with security and scalability solutions. This is why some people suggest it could be a widely influential sidechain or second layer solution to Bitcoin scalability. It could also, however, be used as it’s very own blockchain — which is how Zaidelson and BEAM are implementing it.
“MimbleWimble is a very elegant protocol that allows [users] to use the original bitcoin principles of a decentralised, permissionless and Proof of Work currency. But it solves for full confidentiality and much better scalability than the original Bitcoin.”— Alexander Zaidelson —
Conclusion
MimbleWimble allows for security and privacy to be prioritised in blockchain solutions, which has historically proven very difficult. Typically one has to be traded off for the other. One of the down sides is that both parties need to be actively engaged (typically online) at the exact same time while the transaction is taking place. However there is no doubt this is an exciting step in the blockchain adventure we find ourselves on.
How is it better and different than zk snarks (zcash, horizen)?