What is Grin?

What is Grin?
poelstra, andrewBitcoin developer Andrew Poelstra, an early advocate for GRIN.

Launched on Jan. 15, 2019, grin is a censorship-resistant, privacy-focused cryptocurrency native to the mimblewimble blockchain, named for a curse in the “Harry Potter” book series. Grin’s system purports to be designed for usability by everyone, regardless of borders, culture, skill or access.1

On July 16 2016, an individual using the pseudonym ‘Tom Elvis Jedusor’ (the name of Potter’s arch-nemesis, Tom Riddle, in French) signed onto a bitcoin research internet relay chat (IRC) channel, posted a document hosted on a Tor hidden service, Jed16, and then signed out.2 The document was titled, “MimbleWimble.”

The paper argues that bitcoin is the first widely used system in which data to validate a system can be cryptographically verified by anyone, but posits that the bitcoin blockchain is flawed in several ways. Jedusor specifically finds fault with its transaction structure and the lack of privacy in transactions..3

Jedusor asserts that the transparency of public blockchains presents a danger for users. For example, he has suggested that companies could use the information visible on the blockchain for surveillance purposes and profit. He proposed mimblewimble as a solution.4

The paper proposed alterations to the bitcoin blockchain to solve these issues, however, the paper’s proposed structure was incompatible with the existing bitcoin code. Jedusor disappeared after posting the paper, but pseudonymous developers also utilizing the names of Harry Potter characters began working to implement Jedusor’s proposal, and called the project ‘grin’. 5

Grin is developed by an open community funded by donations and revenues from ‘swag’ sold on the project’s website. Like bitcoin, no person or entity controls the network, and the first coins were not distributed through an initial coin offering (ICO) or premine. Likewise, there is no ‘founders reward’.6The grin community credits a few particular contributions to the project, including Tom Elvis Jedusor for the first formulation of mimblewimble, Ignotus Peverell for starting the grin project, Andrew Poelstra for creating an updated whitepaper and improvements and John Tromp for a new iteration of a proof-of-work consensus mechanism, Cuckoo Cycle.7

Launch & Issuance

Unlike initial coin offerings (ICOs), which saw projects create and then sell cryptocurrency, Grin did not create its own cryptocurrency prior to the software’s release. Grin was not also not forked from any previous project, meaning it included an original codebase.

Rather, Grin began by publishing its code for public consumption and and rewarded 60 grin to the winner who mined the genesis block.8

Network Design & Security Model

Grin’s consensus model is an iteration of proof-of-work, in which solution time is bound by memory bandwidth, rather than processing power.

Founded by John Tromp, the model is coined the Cuckoo Cycle, and was created to be resistant to what the community calls “Bitcoin’s hardware arms-race.” In other words, Cuckoo Cycle is able to be mined with most commodity hardware9, and requires less energy than other blockchains, like bitcoin, which utilize proof-of-work.

Mining is typically carried out on these blockchains with application-specific integrated circuit chips (ASICs).

The Cuckoo Cycle is a specialized math algorithm that creates a “proof,” which can simply be validated by other peers. The algorithm is designed to solve a complex problem related to detecting cycles in a graph, which becomes more difficult as the graph increases in nodes and the connections increase between them.10

Monetary Policy

The block reward is set to remain at 60 grin per block solved.11 This causes grin to be inflationary at a decreasing rate.

In this way, grin will experience high levels of inflation in the early days as each block will have a great impact on the circulating supply – as time goes on, this effect will decline. 

Grin has a target block time of one block per minute, effectively resulting in one grin mined (created) every second. The community argues that sound money has more to do with a transparent emission schedule, than a capped supply. The system by design has no supply maximum limit.12

Transaction Processing

Confidential transactions (CTs) are a default function on the grin network.

Each grin transaction has three pieces of information: inputs –  which are references to past outputs; outputs, which include the transaction amount, ownership and proof that the transaction amount isn’t negative; and a proof confirming that the sum of the inputs corresponds to the sum of outputs in addition to a fee.13

Confidential transactions enable the blockchain to obscure transferred amounts of grin and ownership. Unlike bitcoin, there are no addresses on the blockchain, and ownership is ensured through keys that are only used one time. Transactions intentionally seem like random bits put together; they hold very little information and hold no script for the benefit of privacy.14

For scalability purposes, the protocol cuts-out inputs and outputs from the blockchain as they grin is being spent. This allows for the removal of large portions of data that are traditionally stored on blockchains.

Coding

Grin is written in Rust.15

Resources:

Website

Twitter

Reddit

Guides:

FAQ

Whitepaper

Whitepaper V.2

Authored by Matthew Kimmell

  1. https://grin-tech.org/
  2. https://www.coindesk.com/coders-harry-potter-bitcoin-mimblewimble
  3. https://www.coindesk.com/coders-harry-potter-bitcoin-mimblewimble
  4. https://www.coindesk.com/coders-harry-potter-bitcoin-mimblewimble
  5. https://www.coindesk.com/coders-harry-potter-bitcoin-mimblewimble
  6. https://grin-tech.org/funding
  7. https://github.com/mimblewimble/docs/wiki
  8. https://www.coindesk.com/coders-harry-potter-bitcoin-mimblewimble
  9. https://github.com/mimblewimble/docs/wiki/How-to-mine-Grin
  10. https://github.com/mimblewimble/grin/blob/master/doc/pow/pow.md
  11. https://github.com/mimblewimble/docs/wiki/How-to-mine-Grin
  12. https://github.com/mimblewimble/docs/wiki/Monetary-Policy
  13. https://github.com/mimblewimble/docs/wiki/Grin-Privacy-Primer
  14. https://github.com/mimblewimble/docs/wiki/Grin-Privacy-Primer
  15. https://github.com/mimblewimble/grin/blob/master/doc/code_structure.md