GoldMint blockchain: why custom?

Tony Kent
GoldMint
Published in
6 min readAug 16, 2017

--

Hello. My name is Anton. I worked as a C++ programmer for about 10 years, then moved to the cryptoworld. I have designed and implemented several DApps.

Now I am a part of the GoldMint team as the Lead Blockchain Developer and I am proud of that. I enjoy working together with other developers from our team. It’s an awesome experience and I am sure we will deliver a great product that will solve real world problems for our customers.

You can read more about the GoldMint project in our whitepaper here.

What is blockchain?

Blockchain is a technology which supports a decentralized distributed ledger DB whose main purpose is to protect its users against the situation that is commonly referred to as “double-spend.” An example would be when an individual spends a cryptocurrency on an item (a Ferrari) and immediately spends the same coins on another item.

Because blockchain is decentralized (almost like BitTorrent). This means that different users can will have different versions of reality. For example, 90% of the users will indicate you have purchased the car, but the remaining 10% will claim you have not. Because of the of the distributed nature of the block chain, these two groups will have different histories of the transactions. How does blockchain solve this problem and prevent cheating? This is accomplished through the use of a Consensus Algorithm. Consensus will eventually determine which version is correct and therefore, which history fork to choose. The above is a simplified description of consensus.

Bitcoin uses Proof-of-Work (PoW) Consensus Algorithm. The user who consumes more electricity is the one that wins. If you want to revert some transaction and do a double spend you should buy a very powerful miner and burn a lot of electricity. Then you can “go back in time” and change the blockchain.

It seems that in real life it is very energy consuming to go back in time too. Time is ticking and the history is made and there is no easy means to go back. Just like in blockchain.

There is an alternative to PoW algorithm that is called Proof-of-Stake (PoS). The “miner” in PoS is usually called a validator. In it’s simplest form, PoS is where your stake of cryptocurrency matters, but not your mining power. So even if you can easily rebuild the whole blockchain from scratch in a second it is just not economically feasible to do this even if you own large stake of cryptocurrency.

How should the GoldMint blockchain work?

We wish to build a custom-tailored PoS blockchain that works only with 2 tokens — GOLD token and MNT token. When someone transfers GOLD token his transaction is added to the current block. The GoldMint validator automatically gets a fraction of his transaction as a reward for validating this block.

The Block validator will use MNT token as a stake to validate blocks. The more MNT tokens the validator has, the more GOLD fees he collects.

Very simplified picture of this process:

Basic GoldMint blockchain properties:

  1. Openness
    Anybody should be able to become a validator. Just download GoldMint software from the official repository and start it.
  2. PoS Consensus Algorithm
    GoldMint should use PoS as it is more natural for GoldMint infrastructure than PoW. Block validator should use MNT token as a stake to validate blocks.
  3. The validator should receive GOLD token as rewards
    The rewards should be paid as soon as possible (at time of block validation).
  4. Tokens
    No MNT or GOLD token emission occurs during block validation. Addition of other tokens on top of our blockchain is possible only by forking the code.
  5. Smart contracts
    There will be no custom-minted token or smart contract capabilities in the first version.

Please note that this is our current vision of what we are building and it will (of course) evolve!

Why we are building our own Blockchain?

Our custom blockchain should be safer than Ethereum, because it does not use Turing-complete smart contracts, it does not allow addition of custom tokens and it will have a very high throughput. It will be also protected from DDoS because each GOLD transaction requires a small fee as payment (just like gas in Ethereum).

In short: we want to build a perfect infrastructure for GOLD tokens.

What problems does PoS have?

We have to build a PoS system that is secured against problems like the “Nothing-at-Stake” and the “Long Range” attacks.

Nothing-at-Stake

Nothing-at-stake problem refers to the fact that the PoS miners best strategy is to “mine” on all forks, because blocks are very cheap to “mine”. In the case of one fork “failure”, the validator has nothing to loose, hence the term nothing-at-stake.

In PoW miners get the most rewards by being on the main/correct chain. Miners are incentivized to put all their hashing power on the chain they believe is correct or will win: splitting up their hashing power across many chains only reduces the potential rewards they could have earned by putting all their hashing power on the “correct” chain.

Ethereum’s long awaited Casper PoS algorithm fixes Nothing-at-Stake by requiring validator to commit a deposit first. If validator cheating is detected, he is penalized by the loss of his deposit.

Long Range Attack

“A version of this attack also exists for naively implemented Proof-of-Stake algorithms. In a naively implemented Proof-of-Stake, suppose that there is an attacker with 1% of all coins at or shortly after the genesis block. That attacker then starts their own chain, and starts mining it. Although the attacker will find themselves selected for producing a block only 1% of the time, they can easily produce 100 times as many blocks, and simply create a longer blockchain in that way“ (https://blog.ethereum.org/2014/05/15/long-range-attacks-the-serious-problem-with-adaptive-proof-of-work/)

What options do we currently have to implement the GoldMint blockchain?

There are different approaches to PoS today. Basically, there are 2 visions: Vitalik’s (Ethereum) vision and Dan’s (Bitshares/Graphene/Steem) vision. Vitalik is a proponent of monetary penalization in case of validator cheating. Dan’s philosophy is that shareholder’s reputation is everything and no additional deposit is needed for each miner.

We have these options:

  1. Build our own blockchain from scratch
    Too difficult and time consuming.
  2. Modify existing technology:
  • Ethereum
    Casper PoS still not read
  • Bitshares/Graphene/Steem
    Features DPoS and can be used right now. Has great throughput and large community of developers.
  • Other PoS like NXT

We reviewed these options and decided that it would be best to take Graphene as the basis and fork its code. We will need to rebuild the original Graphene’s Proof-of-Stake algorithm to make it work with conditions of MNT tokens. Steem is a fork of Graphene and has a bit different features and settings.

Currently Graphene’s PoS is working like that:

  1. By default 101 (21 for Steem) witnesses (i.e. validators) are selected to validate the block;
  2. The reward is divided equally to all witnesses. It doesn’t matter whether one witness has bigger stake than another. If you are in the list of 101 (21) witnesses then you get equal reward to the rest of the list. There is, however, little technical detail regarding Steem blockchain: one witness called the backup witness is selected from all SteemPower token holders.;
  3. Graphene is using delegation and voting to elect 101 active witnesses. That’s why its consensus algorithm is called Delegated Proof-of-Stake (DPoS). The system is really about social equity. Witnesses are generally voted for because they are trusted members of the community.

Of course, the Graphene/Steem has its drawbacks too.

To be continued…

Please stay tuned and feel free to ask us if you have any questions.

Website & BitCoinTalk:
http://goldmint.io
https://bitcointalk.org/index.php?topic=2091726.0

Follow us:
https://facebook.com/goldmint.io
https://twitter.com/Goldmint_io
https://reddit.com/r/goldmintio
https://linkedin.com/company-beta/24984963
https://t.me/goldmintICO
https://github.com/Goldmint/

Communication:
https://t.me/goldmintio
https://t.me/goldmintrus
https://goldmint.herokuapp.com

Questions:
invest@goldmint.io

--

--