Replies: 1 comment
-
ping @emmdim @jordipainan |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Currently the Vochain consensus reactor uses a Proof-of-Authority approach. A kind of Proof-of-Stake would bring more decentralization and flexibility to the blockchain. Cosmos-sdk implements Coin, Mint and Staking modules which are currently used for PoS over Tendermint. We might adopt a similar approach.
We need a native token for the blockchain. We might reuse the current cosmos coin type.
How many coins exist and how are they distributed can be stored on a Merkle-Tree (as Ethereum does) instead of using UTXO approach (as Bitcoin does). So each existing key on the merkle-tree represents an Address and the value its the number of coins.
The number of coins each address have is the voting power for creating new consensus blocks (held on the Tendermint layer). So for every new block the voting power should be updated (that should be very resource cheap).
On every new block the Validator will receive new coins, here a proposal on how the reward might look:
So a Validator with small stake will get more reward than a validator with big stake. This mechanism allows new validators to become relevant with the time if they perform correctly.
If
max_mint
is 5 tokens. Total stake is 3000 tokens.This is around 30% more tokens for B than for A while the stake is 900% higher for A.
Using this coin distribution and in order to make splitting the stake into small accounts not profitable, we need to introduce a huge transaction fee that will be burnt once a validator transfer tokens to another one. A proposal might be
received_amount = transfered_amount * 0.2
, so 80% of the transferred stake is burnt.So if Validator A transfers 500 tokens to Validator B, B will receive 100 tokens (400 are burnt). However due the reward formula, both validators (A & B) will get new stake quickly than others keeping its stake.
Since B initially have a very small stake (due the high transaction fee), transferring tokens to a new validator (C) its quite useless. So B needs to wait and mint new tokens before sharing its stake with a new one.
We could also add a mechanism for Locking tokens before they can be transferred. I.e 15 days.
Beta Was this translation helpful? Give feedback.
All reactions