UTXO Size vs Efficiency for upcoming Constant Block Rewards

As most of the community should be aware at this point, Gridcoin will be switching from 1.5% APR rewarded for staking to a constant value of 10 GRC awarded per block staked (Constant Block Reward). The exact timing of this is TBD; however, Gridcoin testing of CBR is commencing on testnet, so we are making good progress towards implementation.

When Constant Block Rewards (CBR) are activated in the Gridcoin network, you may want to consider optimizing your wallet for rewards. Before CBR, you are paid interest when you stake (make a block for the network that includes a payment to you) based on the amount of time elapsed since the coins were acquired, or since they last staked, at a rate of 1.5% per year. With CBR, the concept of time based interest is being replaced with a flat 10 GRC payment per stake. This means you may want to consider how to make the staking in your wallet more efficient. The probability to stake is dependent on the amount of coins you have that are mature. Mature coins are coins that have been in your wallet for at least 16 hours. When you stake, the coins that were used to stake become immature for 16 hours and cannot stake during that time. This is called “cooldown.”

Why should you be concerned about cooldown and how do you minimize its effects? The key is to understand what really underlies your balance in the wallet. Gridcoin utilizes transactions between addresses that are recorded in the blockchain. Just like cash transactions, there are inputs and outputs to each transaction. Staking itself involves transactions. Since everything in the blockchain must be traceable, one or more outputs from a prior transaction which are “unspent” (not sent to an address in another wallet by the transaction), are used as the inputs for the next transaction by the wallet. These unspent “outputs” are called Unspent Transaction Outputs (UTXOs). In an extreme example, if you only had one UTXO in your wallet comprising your balance, once this UTXO stakes, you would have to wait 16 hours for it to be eligible to stake again. Therefore it may make sense to split your coins into more UTXOs. (The UTXOs can be at the same address or different addresses in your wallet. That is entirely up to you.) To do this, just send coins to yourself (to any of your addresses) the amount you desire for the size of the UTXO via the "Coin Control" feature (Settings >> Options >> Display >> Display Coin Control Features) in the wallet. By using this feature you can make sure that you do not use coins that are already broken down to smaller bundles.

Having your wallet balance comprised of more UTXOs will help you stake more often, increasing what you are paid for staking over time, and helping to better secure the network.

A simple calculation to illustrate:

Let's say you stake once per week (roughly every 160 hours) now and have every coin in one UTXO. You extend the staking time by 16 hours once you stake because 100% of your balance becomes immature at that point. This means you stake at 91% (= 160 / (160 + 16)) efficiency. If you had your coins equally distributed in 2 UTXOs, your staking probability only decreases by 50% during the 16 hours timeframe, so on average you would extend your staking time by only 16/2 or 8 hours. So with 2 UTXOs, you would stake at 95% (= 160 / (160 + 8)) efficiency.

You can use the following formula to tell you the UTXO size you need for a desired staking efficiency:

UTXO size = 15000 * Difficulty * ((1/Efficiency) – 1)

For example, a difficulty of 1.0 at 90% efficiency would yield a UTXO size of 15000 * 1.0 * (1/0.9 – 1) = 1667 GRC. At 95% efficiency, the UTXO size would be 15000 * 1.0 * (1/0.95 – 1) = 789 GRC.

We expect the difficulty to rise to 5.0 or greater once CBR is implemented due to increased network participation, so the actual UTXO size required for a given efficiency will be larger. (Notice the UTXO size required is proportional to the difficulty.)

From the above it shows that you do not have to create UTXOs smaller than about 800 GRC each to achieve greater than 95% efficiency for network difficulties of 1.0 or higher, so resist the urge to create really small UTXOs. Creating "dust" will not help you stake more often. In reality UTXO sizes of around 2000 GRC should be perfectly adequate and give good efficiency.

Here is a link to a spreadsheet that provides a table and graph of UTXO size versus efficiency for various difficulties. (Below is the graph from that spreadsheet...)


Note that the above efficiency formula, along with all of the other formulas/thumb rules I have posted in the past, related concepts, and the algorithm used in for estimated time to stake (ETTS) will be concisely described in an upcoming bluepaper section that will be posted very soon.

Watch out for further updates on CBR from the core team as we make progress on moving to CBR implementation.

I also would like to refer people to the excellent tour guide of the Gridcoin wallet at https://www.reddit.com/r/gridcoin/comments/84xtij/a_tour_of_the_gridcoin_wallet/, which provides an excellent overview for those needing a tutorial on advanced coin control.

3 columns
2 columns
1 column