What's Bitgrin

INTRODUCTION

Bitgrin is a privacy focused cryptocurrency on a protocol level based on MimbleWimble and a fork of GRIN coin.

This is about freedom from censorship and the banker regime.

The technology of Grin meets the economics of Bitcoin, for the worlds first

- private,

- scalable,

- decentralized currency with sound economic model (limited supply)

If you're not clear on what i mean by scalability: Bitcoin has a 240 GB blockchain. Ethereum has a 1TB blockchain. BitGrin will stay below 1GB due to the way old transactions get compressed and pruned

that means i can put a full node on your phone, not just a light wallet but a true full node

Bitgrin mainnet launched the 8th of February 2019

==========================================================

Purpose of MimbleWimble is that no one can see your coins or who you sent them too, while still knowing coins are valid.

This is a huge deal in privacy, and we wish that Bitcoin had that from beginning.

But looks like we have a 2nd chance now. Grin failed that in our eyes with horrible economics

==========================================================

WHAT IS BITGRIN

BitGrin is a store of value, designed to be easy to use

Bitgrin share the same halvening schedule as BTC. Half as many rewards every 4 years. 4.5 coins per block, and then 2.25 after halving, and so on.

So theres really 3 things we bring to the table

  1. We create an economic incentive for folks to hold there coins with halvenings. This means the coin acts more as a store of value.

  2. We create a dev fee so we don't have to be like the Grin team and beg for donations. We'll take modest salaries to keep things running clean

  3. We are building super simple user friendly tools on top of the protocol so that in time the average user can simply pull out a phone and work with XBG coins

BitGrin makes transactions completely private, hiding the amount of coins a user owns, how many have been sent, and to whom they were sent.

Transactions are blinded, which means no-one can prove that coins have been sent at all!

BitGrin is private by design, even the developers don't know who is sending or receiving coins.

But how does it all actually work?

BitGrin is governed by the laws of mathematics, exploiting some very simple properties of addition and multiplication.

Elliptic curve cryptography is at the root of what keeps BitGrin (and Bitcoin) secure. The standard is also used by countless military, banking, and even government operations. Elliptic curve cryptography is a method of utilizing a secure curve to produce privately known numbers These extremely large numbers are nearly impossible to guess, but can be proven to have been generated by someone with knowledge of their private key.

Let me walk you through the process.

First, a user picks a really, really, really large number. Then they multiply it with the starting point on the curve.

The resulting coordinates on the curve are your public key and that really, really big number is your private key!

You can now securely encrypt values utilizing your private key, and publicly share your encrypted messages along with your public key. Other users in the world can *prove* that you must have knowledge of the correct private key, without them knowing what it is.

And this is the bedrock of almost all cryptography. It keeps the whole world secure!

The trick here is that it's pretty easy to get the coordinates of your public key, but it's nearly impossible to discover another user's private key.

A simple analogy for elliptic curve cryptography

Knowing just the public key is like knowing the location of an indestructible box, with the world's most complicated lock. Without the private key, it is impossible to access it's contents.

This is where, for example, Bitcoin's security model ends.

BitGrin, on the other hand, goes a few steps further.

BitGrin hides your even your *public* key. So now no one even knows *where* your indestructible box is.

This means that no one can see how many coins you have, who you are sending coins to, or how many you have received.

All of this is accomplished using just a few additional mathematical tricks.

How Bitcoin transactions work

To further explain, let's first talk about how Bitcoin transactions work.

Lett’s say you, a Bitcoin user, want to send some funds to another user. You would announce publicly to the network your public key, the amount of coins you would like to send, and proof that demonstrates you are indeed the owner of these coins.

You can see the problem here.

If someone goes through the history of the blockchain, they can clearly see who you received the coins from, who you are sending them to, how many were sent, and even how many you have.

You don't really want people knowing all of that information, do you?

Do you share your bank statements with everyone? Of course not.

Now... How can we fix this? How can we make transactions more private?

How BitGrin transactions work

Let's go over a BitGrin transaction...

BitGrin transactions are completely different than Bitcoin transactions, You can think of them as just a blank credit card with no name, just the number, and everyone who knows this number can spend money with it.

What the blockchain holds is just a list of these "cards", while obscuring the amounts in them, and who is in possession of them, or even who had contents in them prior.

Let's say for example I want to send you three BitGrin.

What we need to do now is prove that I own a credit card (or multiple cards) with the total of at least 3 coins.

We also need to create a new card for you. One whose number is only known by you.

First, I send you a message via a secure channel in between our wallets.

"Hey, I want to send you 3 coins. Here's proof I own at least 3. I'll also pay the fee."

You receive the message and you can compute your part of what it takes to make a new card. Then you send me back the proof that you know the new credit card number,

while not revealing the number to me, by using a special type of encryption.

Next, you send me a very very big number you choose to obscure the amount of coins by moving them by this amount on the elliptical curve.

Then, add to it a public key of the credit card number, made with another operation on the graph.

This will prove you own the coins, without either user revealing their private keys.

Finally, I add the number of coins to the very big number you chose.

We can prove the number of coins didn't change because 5-5 is 0. This is validated by the network to prevent coins from being created out of thin air.

And 5 plus the BigNumber, minus 5 plus the BigNumber, is also zero. By adding a hidden big number known only to us, we hide the amount from everyone else.

I combined all these details together into one large commitment, and then submit it to the BitGrin network.

Now the network needs to validate that no new coins were created and that your new card is valid. This is all done with simple mathematics, and is completely secure.

You now received your money! While it may sound like a long process, all of it is done within less than 1 second from the BitGrin wallet.

Want to spice things up? Generate invoices, transact using QR codes or send it by pigeons!

We're not done yet. This is not all that BitGrin improves.

As you may know, BitCoin transactions can take a very long time to be confirmed, and running a Bitcoin node is a very computer-intensive process.

BitGrin on the other hand is both fast, and extremely scalable! The majority of spent transactions get removed, making the blockchain much smaller than traditional blockchains.

This is done by miners in every block, as well as the entire blockchain over time.

Soon, everyone will be able to download the entire blockchain and synchronize it within seconds or minutes, even on a low powered mobile device or a payment terminal at the local checkout.

With further work and research, BitGrin will improve even more, enabling truly private, scalable digital cash to see mass adoption.

==========================================================

PREMINE

1M coins are put in to height-locked contracts

about 20k released per month, starting next March 2018

so at launch, dev team has 0 coins

10% for 4 yrs, which amounts to 4% of total supply over time

Just a reminder that the dev fee is quite modest. It’s not like we are holding 90% of the supply like ICOs like to do

1mln pub const DEV_FEE_TOTAL: u64 = 1_000_000; // 1M coins to match Satoshi's Bitcoin holdings

line 58 https://github.com/bitgrin/bitgrin/blob/master/core/src/consensus.rs

You can see line 128 that the initial blocks mined are given the increasingly high lock heights.

line 128 https://github.com/bitgrin/bitgrin/blob/9351c4798d553bcf8a745328576d6a4aa5e02731/core/src/consensus.rs#L128

Payouts are staggered over 4 years by the smart contract

I think as far as the community goes, what you would WANT is developers who are paid for success in the same terms they would expect success as buyers/miners.

==========================================================

FUTURE

It took a lot of work to know what to change, and to understand GRIN codebase and then the generatioin of the genesis block wasnt documented

or it was, but it was incorrect.

Getting seed nodes up and running, making the miners work thousands of little details

BitGrin in particular also has rollback protection

Uses block hash checks to make sure the chain stays stable

BitGrin in particular also has rollback protection

Uses block hash checks to make sure the chain stays stable

Also worth noting this is something added by us. Grin doesn’t support block hash checking

It’s not possible to rewrite any meaningful amount of the chain through a 51% attack. Those attacks are quite limited in exclusively abusing double spend

The team is currently working on porting the entire codebase to be web friendly for web wallets, and offline/non-interactive transactions using BitGrin addresses

basically we want to include a tx pool so users dont need to share ips/files, and can simply use disposable "addresses".

A major improvement with we call XBGJS. This will include tools for other devs to make working with BitGrin easier

Adding non-interactive transactions will be a major improvement

==========================================================

ASICS

Community will make those decisions when it comes to it, there is time till end of 2019.

We can fork in to a different PoW, as needed.

There are ongoing discussion about it on discord

=========================================================

There is no coin other than bitgrin that has true privacy, scalability, and limited supply it doesn't exist.

I say the more the merrier, this is about growing MW and it’s ecosystem, not about one coin “beating” the other.

But either way competition is healthy, let’s see where this road leads.

Competition is needed for innovation to keep up at a high pace.

Aren't you as excited about that as we are? Join us. Let's change the world !