Hi GridCoin Community:
In my last post, I wrote about why the current GridCoin reward mechanism - magnitude distribution - may not be the most optimal. In a recent post, @fortex pointed out what I think is a good example of distorted incentives in magnitude distribution (to be clear, I do not know what @fortex's thoughts on this are, that's just my interpretation).
In my original post I went straight ahead into listing the problems and potential solutions regarding the magnitude distribution. However, I did not explain well why the incentive structure is important for the GridCoin community. I would like to address this problem in a math-oriented way in the future, but in this post I want to explain why I think changing the incentive structure is important, and get some feedback as to where research efforts should go.
There are three main reasons:
- Public Relations and Marketing
- Resource Allocation
The first two are practical, and the last one is more of a matter of where GridCoin is heading in the long term, but all three are interconnected. While it may take a long time before any improvements, of any type, are implemented, I think it is beneficial to continue and contribute to this discussion, which has been going on for a while.
If GridCoin rewards users for contributing their idle processing power (IPP) to distributed computing projects, why should I receive a different reward for different projects? Here are two good reasons:
- My hardware architecture is better suited to some projects than others
- The community agrees that some projects are more deserving of computational resources than others
These are completely valid concerns, and the current magnitude distribution, which gives all projects equal magnitude, does not address either of these problems.
Hardware architecture: I want to crunch a project, but my hardware is not suited for that task. Example: I want to crunch Milkyway@home, which requires FP64 (Floating Point 64) precision calculations (for an excellent tutorial on this, see Vortac's post(s)). However, I only have a measly GTX 1080 Ti (just kidding, great card), which is not going to perform well on Milkyway@home at all for the reasons mentioned in @Vortac's post, compared to an HD 7970. How can we compare contributions from a GTX 1080 Ti on one project, with an HD 7970 on another, not to mention adding CPUs into the mix? None of these problems are addressed by the current magnitude distribution.
The more popular a project is, the less GRC you are going to receive for crunching that project. I consider the popularity of projects a natural "ranking" in a sense (though there are good arguments against this line of reasoning); actually ranking projects is another matter entirely. This means that projects which the community effectively feels are more worth crunching will reward crunchers less, not more - thus incentivizing users to crunch smaller projects that the community "effectively" feels are not as worth it. Now, there are good arguments for making sure smaller, less popular projects get enough computational power, as well as for ranking in general. This was discussed extensively in my last post, and I hope it is discussed more in the future.
Public Relations and Marketing
Another one of the purposes of GridCoin is to increase the number of active users contributing to distributed computing. When someone is considering joining, I think they want simplicity and security.
Clear Rewards: How much GRC (at least approximately) will I get with piece of hardware X?
Security: Is there any way I will not get my fair share of GRC? Can the system be cheated/rigged?
Plug and play: The reality is, the easier it is to use BOINC and GridCoin, the more people will be attracted. If my rewards are not (strongly) related to the project I want to crunch, I consider that a good thing. It means I can focus on the project and not the GRC.
For me, one of the main questions is, how do we grow GridCoin and change the way large-scale, distributed computing is done? I think eliminating significant magnitude distortions smooths the way for this process. For example, I wish I could crunch for Climate Prediction and earn GRC for it (actually, I think this would be a great way to bring new members in), but it's not even whitelisted - for valid reasons, but still, it's just an example; there are other projects which fit the bill. For a potential future example, see @gregan's post.
Disclaimer: Currently, in choosing my projects, I take into account both how worthy the project is, and how much GRC I could make from it (with the exception of Moo! Wrapper, which I crunched after running out of Milkyway@home WUs, not seriously inquiring into what it was actually doing). I just think eliminating or reducing this incentive as much as possible is desirable.
Please comment! In the future I would like to analyze this problem from a mathematical point of view. In particular, I would like to explore the different implications of a completely decentralized GRC reward mechanism, which awards users solely on the amount of work done by their hardware, a more centralized reward mechanism, in which some projects are given preference over others, and what realistically achievable versions of these mechanisms look like.
What do you think? Centralized or decentralized? Or keep it as it is now? Or something entirely different? Why? The more feedback I receive, the more relevant these efforts will be.