Grin Implementation of MimbleWimble Looks to Improve Bitcoin Privacy and Scalability
Whenever commentators speak about cryptocurrencies and blockchain, a recurring theme is privacy. This feature is becoming more and more growing population wish their information to be available onto a public ledger that accessible by governments, regulators or even close-knit associates like family and friends.
Bitcoin’s Relationship with Privacy (or Lack Thereof)
Initially, when Bitcoin came to existence, it was a pseudonymous coin that offered enough privacy to convince users of the difficulty in connecting a Bitcoin hash address to a real-life individual or businesses. However, as the ledger of the cryptocurrency was public, it came to light that it was very much possible to track specific addresses based on their usage patterns and their transactions.
Also, specific nodes did accidentally give out details of IP addresses when a transaction was broadcasted. The first instance when it became clear that Bitcoin operations were not as private as some thought was in 2013 when Sarah Meiklejohn, along with her colleagues, published a paper named “A Fistful of Bitcoins: Characterizing Payments Among Men with No Names” which identified clusters that belonged to sure online wallets, e-commerce websites, and other service providers.
Once it was established that Bitcoin transactions could be traced, company’s such as Chainalysis and Elliptic came into existence. Among others, these two firms quickly began uncovering transactions on the public ledger to provide information on the detection of money laundry, fraud, and compliance violations.
The traceability “flaw” of Bitcoin gave rise to many services such as CoinJoin and others that provided sought of privacy to the users. Despite their best efforts, these offers still had their set of flaws and continued to leave an opportunity for others to launch a privacy-based solution. One such attempt has been Mimblewimble.
In August 2016, a text file was posted by an anonymous person in a Bitcoin development forum providing an outline to a primitive MimbleWimble whitepaper. The post presented MimbleWimble as a similar blockchain to Bitcoin, but which leveraged sidechains or a potential extension block scheme to improve privacy and scalability.
MimbleWimble brought together some of the previously tested concepts like confidential transactions and one-way aggregate signatures (OWAS) which made it a private-by-default blockchain.
In comparison to Bitcoin, MibleWimble only needs to store ten percent of data thus optimizing for speed. MimbleWimble also outlines further upgrades to the Bitcoin protocol, such as definite privacy, functionality and improved democratic access.
Grin: Implementing MimbleWimble
In October 2016, another unknown developer posted on the same forum explaining that he was working on an implementation of MimbleWimble called Grin. By implementing MimbleWimble, Grin expected to fill in areas, namely privacy, fungibility, and scalability, which are currently preventing cryptocurrencies from becoming a true, global medium of exchange.
The main characteristics of Grin are as follows:
- Privacy by default: This feature is meant to facilitate complete fungibility without averting the facility to reveal particulars as required.
- Scalability: Grin offers substantial space saving features and can merge with other protocols as it grows with the number of users, and to some extent, with the number of transactions.
- Validated cryptography: Grin takes this feature from MimbleWimble which has been dependant on proven Elliptic Curve Cryptography (ECC).
- Simplicity: Auditing and maintaining various components of Grin is more accessible as the design of the project is kept simple.
- Community-Driven: The project is driven by a community which uses an ASIC-resistant mining algorithm (Cuckoo Cycle) encouraging mining decentralization.
Grin has specific features and techniques that make it a standout compared to other projects which also are working on improving the privacy concerns of Bitcoin. These are confidential transactions, Uniformity, and Dandelion Relay.
Grin natively uses a format of transaction called Confidential Transactions (CT). This transaction-type is not an extension of other transaction-types which help in hiding the amount; instead, it is the one that Grin uses for every transaction that occurs. Catering to privacy, Grin transactions save very little information about the transaction. The data it saves include:
- Inputs, which reference to past outputs
- Outputs, which would be a 33-byte blurb dubbed a commitment. This commitment encrypts all related information regarding that transaction such as amount, ownership, and proof that validates that the amount is not negative.
- A proof that shows all inputs and outputs (including the transaction fees) are matched.
Grin uses commitments which are called “perfect hiding” that embeds the amount in the commitment. It also hides the ownership details of the transaction.
All transactions within the Grin protocol look like random bits which makes them difficult to trace for critical information of the parties involved. All Grin transactions are uniform and store very less information, making it very difficult for wallets or people to lower privacy guarantees.
Commonly, crypto transactions are sent by way of “fluffing” them which sends the transactions to all the peer participants a user is connected to. However, to address the concern of IP address leak, Grin uses a Dandelion, which adds a “stem” phase before the fluffing, where the user delegates the fluffing exercise to some other peer that has been randomly selected by the network.
This makes it nearly impossible for anyone to track down the IP address of the user. In addition to this, when a transaction is sent to the stem, there is an opportunity to bundle them together with other transactions on the stem. However, its application in a practical sense has yet to be seen.
As the name suggests, Cut Through is a technique where the protocol cuts-out inputs and outputs from the blockchain as they are being spent. This technique is effective for scaling as a large part of the data needed to be stored on the blockchain can be removed. The only drawback here is this feature provides a smaller privacy benefit.
While Grin and MimbleWimble are taking significant steps to improve the privacy and scalability aspect of Bitcoin, many of these features have yet to be successfully implemented. Regular improvements to Grin and MimbleWimble should eventually make privacy objectives a practical solution for blockchains with these goals as their primary focus.
What’s your take on Grin? Let us know your views in the comments section.