## GRiN-(AltCoin)

GRiN-(AltCoin): Launched on January 15th, 2019, Grin is a cryptocurrency focused on privacy without censorship in its implementation of Mimblewimble. According to their website, the developers want Grin to be usable by everyone regardless of borders, culture, skills or access.

Without address information or amounts stored on the blockchain, the chain is meant to be lean and scalable. Grin was launched without a premine, ICO, or founders rewards and relies on donations to support the long-term development of the project.

GRiN-(AltCoin) is an exciting new cryptocurrency leveraging the MimbleWimble protocol. But tutorials on Grin are notoriously nondescript. This post aims to share

**exactly how**Grin transactions work.

#
Introduction:

MimbleWimble and Grin

MimbleWimble is a blockchain format and protocol that provides extremely good scalability, privacy and fungibility by relying on strong cryptographic primitives. It addresses gaps existing in almost all current blockchain implementations.

GRiN-(AltCoin) is an open source software project that implements a MimbleWimble blockchain and fills the gaps required for a full blockchain and cryptocurrency deployment.

The main goal and characteristics of the Grin project are:

- Privacy by default. This enables complete fungibility without precluding the ability to selectively disclose information as needed.
- Scales mostly with the number of users and minimally with the number of
transactions (<100 byte
`kernel`

), resulting in a large space saving compared to other blockchains. - Strong and proven cryptography. MimbleWimble only relies on Elliptic Curve Cryptography which has been tried and tested for decades.
- Design simplicity that makes it easy to audit and maintain over time.
- Community driven, encouraging mining decentralization.

**Introduction:**

This document is targeted at readers with a good understanding of blockchains and basic cryptography. With that in mind, we attempt to explain the technical buildup of MimbleWimble and how it's applied in Grin. We hope this document is understandable to most technically-minded readers. Our objective is to encourage you to get interested in Grin and contribute in any way possible.

To achieve this objective, we will introduce the main concepts required for a good understanding of Grin as a MimbleWimble implementation. We will start with a brief description of some relevant properties of Elliptic Curve Cryptography (ECC) to lay the foundation on which Grin is based and then describe all the key elements of a MimbleWimble blockchain's transactions and blocks.

### Brief primer on Elliptic Curve Cryptography:

We start with a brief primer on Elliptic Curve Cryptography, reviewing just the properties necessary to understand how MimbleWimble works and without delving too much into the intricacies of ECC. For readers who would want to dive deeper into those assumptions, there are other opportunities to learn more.

An Elliptic Curve for the purpose of cryptography is simply a large set of points that we will call

*C*. These points can be added, subtracted, or multiplied by integers (also called scalars). Given such a point

*H*, an integer

*k*and using the scalar multiplication operation we can compute

`k*H`

, which is also a point on
curve *C*. Given another integer

*j*we can also calculate

`(k+j)*H`

, which equals
`k*H + j*H`

. The addition and scalar multiplication operations on an elliptic curve
maintain the commutative and associative properties of addition and multiplication:```
(k+j)*H = k*H + j*H
```

In ECC, if we pick a very large number

*k*as a private key,

`k*H`

is
considered the corresponding public key. Even if one knows the
value of the public key `k*H`

, deducing *k*is close to impossible (or said differently, while multiplication is trivial, "division" by curve points is extremely difficult).

The previous formula

`(k+j)*H = k*H + j*H`

, with *k*and

*j*both private keys, demonstrates that a public key obtained from the addition of two private keys (

`(k+j)*H`

) is identical to the addition of the public keys for each of those
two private keys (`k*H + j*H`

). In the Bitcoin blockchain, Hierarchical
Deterministic wallets heavily rely on this principle. MimbleWimble and the Grin
implementation do as well.### Structure of transactions:

The structure of transactions demonstrates a crucial tenet of MimbleWimble: strong privacy and confidentiality guarantees.

The validation of MimbleWimble transactions relies on two basic properties:

**Verification of zero sums.**The sum of outputs minus inputs always equals zero, proving that the transaction did not create new funds,*without revealing the actual amounts*.**Possession of private keys.**Like with most other cryptocurrencies, ownership of transaction outputs is guaranteed by the possession of ECC private keys. However, the proof that an entity owns those private keys is not achieved by directly signing the transaction.

**Sources for this Content above:**

Source-1

**Other Sources of Related Content:**

Source-2

Source-3

**The Begining**