Silly Sounding Tech Could Seriously Reform Bitcoin
The state of bitcoin today is highly discouraging.
Watching grown men hurl insults at each other on Reddit and Twitter is just sad. When I became involved in 2013, bitcoin's potential seemed endless. It was heralded as a possible solution for micropayments, remittances, microfinance, parking meters, email spam and so on. Many women, myself included, believed in bitcoin as a means to address world problems of poverty by providing access to capital for the remaining three-quarters of the world.
As time passed, I became discouraged that many needed use cases did not come to fruition. Startups attempting to build companies with those business models have died. Anything involving small payments in bitcoin has been mostly eliminated due to high fees. The most popular use case is as a store of value. It's not to say that isn't useful: in the growing number of countries with devaluating currencies, bitcoin is an attractive alternative. Bitcoin has had an indelible impact as a groundbreaking technology. But it's disheartening that it has stalled in doing more.
There are fundamental issues that will likely never be solved, as evidenced by the two-year debate on how to scale bitcoin. The community is more divisive than ever. I can't help but think part of the reason it's so dysfunctional is because it's devoid of women. Women (or any rational person) do not want to participate in this dystopian community: it's juvenile and filled with vitriol. Bitcoin desperately needs a Patronus Charm, "a pure, protective magical concentration of happiness and hope.” My disappointment in bitcoin caused me to look at the blossoming landscape of alternate blockchains: eg litecoin, zcash, monero, ethereum and dash have all grown in market size and popularity. It's clear that more alternative coins (altcoins) will develop innovative solutions and come to market. This is why MimbleWimble caught my interest.
As a brief background, the original MimbleWimble white paper was placed by someone called Tom Elvis Jedusor (Voldemort’s French name in JK Rowling's Harry Potter book series) on a bitcoin research channel in July 2016. Tom's white paper "Mimblewimble" (a tongue-tying curse used in "The Deathly Hallows") was a blockchain proposal that could theoretically increase privacy, scalability and fungibility. It remained theoretical until recently.
At the end of 2016, someone named Ignotus Peverell (the original owner of the invisibility cloak, if you know your Harry Potter characters) started a Github project called Grin and began turning the MimbleWimble paper into something real. Andrew Poelstra, a mathematician at Blockstream, presented on this work in January 2017 at Stanford University’s Blockchain Protocol Analysis and Security Engineering 2017 conference. More recently, Ignotus posted a technical introduction to MimbleWimble and Grin.
It took me a while to wrap my head around MimbleWimble. The more I internalized it, the more hopeful I became that something more magical than bitcoin could appear. I will attempt to explain MimbleWimble and why what it proposes – privacy, freedom of choice, equal access, fungibility, and sustainable growth over time – are so important. Privacy matters, a lot. One of the most important rights we have is the right to privacy. It’s our right to “keep a domain around us, which includes all those things that are part of us, such as our body, home, property, thoughts, feelings, secrets, and identity."
I consider privacy extremely important. It's very apparent how valuable it is when you lose it or when someone violates it. In my 20s, I was stalked. A person whom I had met in passing on a military base waited for me after work and surreptitiously followed me home. He did this for several weeks – all unbeknownst to me – until one day he knocked on my door and told me he had been following me and professed his undying love. I immediately slammed the door and called the local and military police. I lived alone in the woods and was so freaked out that I moved.
Only someone who has been stalked can understand how frightening this experience was. To this day, it affects many of my behaviors to guard my privacy. Physical trespass of privacy is often preceded by online privacy violations. Recent events, such as Congress granting ISPs (internet service providers) the right to sell your personal information – browsing habits, app usage history, purchasing habits, location data – are very concerning. As Luke Mulks from Brave elegantly wrote, "Your digital data trail is the evidence of your human presence online. Your data is valuable, private, and most important, it’s yours."
If we cannot rely on our legislature to protect our constitutional rights (can we rely on them for anything anymore?), technology needs to intercede to make it harder for greedy capitalists to put your privacy up for sale. Privacy extends to what to share publicly about what we buy or whom we donate to. These transactions should not be open for all to see. Women, especially those trying to escape repressive social or economic conditions, have a dire need to stay anonymous. That's a fundamental flaw in bitcoin: every transaction and address balance is available for the world to watch and track.
There are some things you can do to hide your transaction, such as tumbling, but you need to go out of your way to use them and they are breakable. Privacy-oriented cryptocurrencies like monero and zcash improve privacy significantly. In monero, the transaction is not natively private but relies on ring signatures to mask exchanges. Zcash leverages a technology called zk-snarks to build private transactions, which is a huge improvement. However, it still requires a lot of extra resources to build a confidential transaction, so most users still issue their transactions "in the clear" (clear vs shielded counts).
The big change
MimbleWimble is natively private. There are no ring signatures or zero-knowledge proofs on top of a transparent bitcoin-like transaction. In a MimbleWimble transaction, all values are fully obscured. There are no reusable or identifiable addresses. Every transaction looks the same to an outside party.
The two properties verified in a MimbleWimble transaction are:
- No new money is created
- The parties sending money must prove ownership of their keys.
To verify no new money has been created, you must demonstrate that the sum of outputs minus the inputs equals zero. To verify key ownership, the transacting parties must legitimately prove their public and private keys exist to authorize the transaction. MimbleWimble uses a blinding element to obscure all values – transaction amounts and keys – while holding true basic mathematical facts. The blinding element relies on multiplying and adding secret factors to obscure real values.
let's say I have a transaction with these amounts:
(1) 17 + 12 = 29
The balanced equation shows no new money was created, complying with property 1) above. The equation remains true if I apply a secret blinding number (eg 11) to all terms.
(2) 17*11 + 12*11 = 29*11
Without knowing my secret number 11, you would have a hard time guessing what the original transaction values are in this equation.
(3) 187 + 132 = 319
In equation (3), I’ve managed to keep both the values and blinding number private while still allowing others to verify I have not created new money in my transaction.
The big picture
Still, don't think this is a big deal? MimbleWimble offers other extensive benefits that indicate it could form the foundation of the kind of network bitcoin was meant to be.
Freedom of choice
By obscuring all values, MimbleWimble provides full privacy and gives you the choice of what to reveal. It's similar to donor levels in various non-profits. You’ll see the range a donation was made for, but you don’t necessarily know the exact donation. Both the donor and the non-profit know exactly how much was donated, but no one else needs to know. This "right to privacy gives us the ability to choose which parts in this domain can be accessed by others, and to control the extent, manner, and timing of the use of those parts we choose to disclose."
Another aspect of bitcoin that disturbs me greatly is there is little opportunity left for an average person to participate in securing the network. The requirement of a highly specialized and expensive chip for bitcoin mining – the ASIC – has almost eliminated anyone from becoming a bitcoin miner, whose primary responsibility is validating transactions and placing them into blocks. The mining community is now heavily centralized and this has greatly contributed to bitcoin's woes.
The ability to grow over time while still providing equal opportunity to participate are key tenets of Ignotus' Grin implementation of MimbleWimble. Grin is designed to be ASIC resistant so that anyone who wants to try mining can buy a widely available GPU chip at a local Best Buys or online for a reasonable price. Making MimbleWimble ASIC resistant democratizes access. I’ve even toyed with the idea of building a GPU miner with my kids to see what it can do.
Ability to grow over time
Another way to safeguard equal access over time is to ensure the blockchain network doesn't get dragged to a standstill when transaction volume increases. This is the core issue in the bitcoin block-size debate: there are more transactions than can fit into a 1Mb block. As long as there's a restrictive size limit, there will be a capacity issue. A dirty little secret is that to get around scalability issues, almost all payment processors and exchanges do off-chain transactions. Which begs the question: why bother using a cryptocurrency with blockchain?
Increasing usage will increase transaction volume. So how do you ensure that a block size can continue to accommodate volume increases? By streamlining each block. The principle is similar to simplifying equations. If there are terms that are identical on both sides of an equation, you can cut them:
(8) 2+y = x+2
(9) 7+3+5+4+2+y = x+7+3+5+4+2
Both equations (8) and (9) simplify to:
(10) y = x
MimbleWimble maintains that if an output spends an input, you no longer have to keep them because they cancel each other out. This greatly cuts down the amount of data you have to store and process. The only data that nodes keep is unspent outputs and block headers. Instead of thinking of blockchain capacity in terms of number of transactions, MimbleWimble is designed to grow with the number of users. The streamlined blocks make growth sustainable over time as the transaction data set does not continue to get bigger. This increases privacy since transaction data gets removed and it also enables fungibility.
Fungibility is the ability for equal units to be interchangeable. Let's say I give you a dollar – either as a coin or a paper note. The Federal Reserve prints the paper dollar and the US Mint produces the coin dollar, but both are equal. Neither is lesser or greater than the other and you can choose to use a dollar coin or bill interchangeably. This is a key characteristic of currency: equal units must be interchangeable, or fungible. The US dollar is fungible. Bitcoin is not.
The bitcoin blockchain keeps every single input and output forever and so each coin carries a legacy. It's similar to equation (9) above. Another dirty little secret is that when picking which transactions to process – in addition to the fee – payment processors, miners, and exchanges will look at the inputs (ie 7+3+5+4+2) to assess the quality of the transaction. The consequence is one bitcoin is not fungible with another.
The most valued bitcoins are called 'coinbase transactions', which are the ones created when a block is found. They are newly minted and 'clean' and some parties pay a premium to buy them. A hierarchy in coin quality develops. The consequence is, if you receive bitcoins that have inputs that are tainted (eg they have been used in a dark market), spending them may become increasingly difficult. In MimbleWimble, because the (7+3+5+4+2) inputs and outputs are all discarded when spent, each coin is exactly equal to the other. In other words, MimbleWimble coins are interchangeable and fungible.
I'm very hopeful seeing the accelerating pace of research and innovation in public blockchains. If privacy and scalability are solved, MimbleWimble could be the Patronus Charm for bitcoin, perhaps as a complementary sidechain. Imagine what a universal fungible digital coin could enable with access for everyone. One hesitation I have, however, is that many people developing it have taken on Harry Potter-themed pseudonyms. It's understandable given the personal attacks rampant in the community, but it does conjure a mystical aura. I’m glad Andrew Poelstra, a highly qualified real figure, is actively involved with MimbleWimble.
I hope I can add my voice to the mix, also as a real person. I realize that by not using a pseudonym, I'm opening myself to the troll armies. I’ve attempted to explain why MimbleWimble is interesting to me. I hope it intrigues enough people and inspires both men AND women to engage early; it would be great if this community doesn’t wind up as a testosterone-filled boys club. Apparently, Merope Riddle (Lord Voldemort's mother) is already very involved in MimbleWimble’s development. I believe it’s worth learning, participating in its genesis, and helping to develop a healthy community around it.