Technology

Decentralized Video Game Crafting

How to make sure that crafting items is just the right price

Ben Stokman
OneTwentyEight Blog

--

In my original whitepaper, I said that crafting should be determined by the following formula:

#tokens required = <tier number> * <#addresses in the past 64 blocks> / 20,000

The tier would be linear; the second tier would be twice as expensive as the first, the third three times as the first and so on.

This formula is an estimate of what I think the ratio to network activity to the demand of tokens will be. This equasion, if it is right, will probably become outdated; or it will be just downright wrong.

There needs to be a way to change the constant, that also protects against misuse of a small group or person.

So the new equation would be:

#tokens required = <tier number> * <#addresses in the past 64 blocks> * constant

All you need to do is find the constant.

The simplest way is to have everyone vote for a constant (which the whole equation will be multiplied by), and average it at each update. However, someone could unlock a block and just vote for that constant to be something like 42345 or something like 0.00000000001, and totally mess up the average.

However, the idea of the vote is a good idea, because the majority of a blockchain will almost always want what’s best for a blockchain, there just needs to be protection from the abusive minority

A way to fix this is to eliminate all votes that are over 100% of the standard deviation. Standard deviation is a simple way to find a general range that weakens the power of outliers arithmetically. To calculate a standard deviation, you take the average of the values, and then find the difference between the values and the average, each of the differences are then squared, and divided by the amount of values. You then take the square root of the result, and get the standard deviation. If the average is 10, and the standard deviation is 5, every value not between or equal to 5 and 15 will be eliminated.

Once those values have been eliminated, the remaining values will be averaged, and then the new constant is created.

--

--