Upcomming changes in Gridcoin

in #gridcoin7 years ago (edited)

Hello again. Quite a big changes are being prepared for Gridcoin, so let me walk you thru what all can be changed. But keep in mind that my word on this is not authoritative and the changes first must be elaborated, approved by community, voted upon, implemented and tested a before being pushed to production network.

Interest payments

First, you may have noticed, that a poll was created in a topic of Interest payments. Currently a Coin*Age interest calculation is used, which uses the Age multiplied by Value of the UTXO multiplied by the interest rate (in correct units) to calculate the reward amount. The main problem with Coin*Age interest is that, you continue to collect interest even when your wallet is offline. As it is not convenient to keep the wallet open and online 24/7. Big holders noticed this, keep their wallets closed for most of the time and come online only to collect their interest. To keep the network secure, it is important, that big holders keep their wallet open and unlocked for staking.

But they are rewarded the same amount for basically not doing that. For that there exist a Fixed interest reward, which was invented in PoSv3 of Blackcoin. It works by not taking the value and age into account and instead paying constant amount as an Interest per block. The higher balance you hold, the more often you stake, and the more of this interest reward you get. But it you take your wallet offline, you are loosing this rewards.

DPoR calculation

Currently research reward is calculated using very inaccurate Trapezoid rule. In detail, the midpoint of magnitude at your previous reward and your current magnitude is multiplied by the time since last reward (in days) and current magnitude unit. As you see, the magnitude between your two rewards is not taken into account at all. This can have both negative and positive effect and can be gamed a bit. For details see the development wiki.

We want to replace this calculation by more accurate one. The reward will be based not only on the two, but on average magnitude in that period.

Or this can become irrelevant, if Gridcoin decides to pay the rewards at each superblock.

DPoR Payments

With the introduction of V8 kernel the time between rewards to some miners increased and is expected to increase more when the interest payment is changed. More and more miners are forced to join the pool. Something must be done to correct this situation. I already written about the potential solutions.

Magnitude calculations

Currently the total network magnitude is capped at 115000. This number is evenly split to all white-listed projects and then split by individual's RAC relative to team gridcoin's RAC in each project.

Then it was promised that 48000 GRC will be paid to BOINCers per day. As you see, it does not add up, so a Magnitude Unit was introduced to bring the average reward per day to 48k. But due to error in the code, the actual average before v8 was 41k. Besides that, the magnitude unit often drops, which steals some of the research rewards.

When a project is offline or does not update it's exported stats, NN keeps using the old values of User and Team RAC. This results in free mag if the project is actually down or wrong mag if only the stats are wrong.

You see, there are few magic numbers, which are not a good thing, plus the complex and buggy magnitude unit, plus the shortcomming of RAC usage.

To solve this issue, it was suggested to replace magnitude with a round, fixed value, either 1 GRC/Mag/Day or 0.01GRC/Mag/Day. Then adjust the total network magnitude to 48 M (or 50 M to make it more round).

The effect of that would be that everyone's mag will increase, so those who don't understand will be happy, but actually won't be paid more. And the payments will be much more accurate and fair, due to removed magnitude unit.

Better "Neural" "Network"

The NN plays important role in research reward distribution. It runs only on Windows nodes. Nodes running the NN periodically download exported statistics from boinc servers process it and calculate magnitude for every CPID. After reaching consensus, one node will create the superblock, containing all magnitudes.

The actual improvement will be making this pice of software run on Linux too. Make it use something more reliable than RAC and properly deal with projects being offline. Properly scaling down the load on project servers and improving the security.

Who is interested should read the development article about Neural Network and my Dynamic Withess Participation proposal.

I propose a new superblock voting and staking mechanism. It works in three periods: registration, consensus and staking. The whole process including the stats block production is separate for each project. This is to prevent one misbehaving project to delay consensus. The number of participants is securely and fairly reduced by using cryptographic method of dynamic participant selection.

CPID Ownership

Currently what binds your wallet to a BOINC CPID is the beacon. First the beacon system is not secure and many users are having problems with bad beacons.

The new system may stop using CPIDs altogether and use the Account IDs instead, as CPIDs are both not very secure. Users are having problems with split CPIDs, CPID changing unexpectedly. And it current system requires user to supply an email address to wallet.

@cm-steem recently posted an article with a proposed slution, but there are few more proposals in the Wiki article, including my "Secure Account Association proposal".

Misc

Last there are few other, smaller changes. I want to merge the CoinBase and CoinStake transaction, to save some bytes of the blockchain and maybe half the records in transaction database.

Thank you for reading so far and stay tuned for the actual road-map bundled with a bunch of polls deciding the future of gridcoin. Sadly I most likely wont be able to work on gridcoin as much as I did, because the summer break is over and boss level of university is waiting for me.

Sort:  

Great summary Tomas ! Just like always very good work, let's see where the community is in the end deciding gridcoin to go but I see a lot of promising ideas here!
go

altought this need a truthfull explanation , I agree

Looks great, looking more and more like we have a detailed high-level roadmap of items to be accomplished. Between this, the code-base conversion to make it less dependent on Microsoft languages, and the GUI updates, the developers have a lot of balls in the air for the betterment of GRC (and, to help support BOINC!).

Can you back me up with nex languages?

Sorry, not sure I understand your comment...

Thanks Tomáš

  • resteemed!
  • excerpts / selection here

The 41k per day DPoR is wrong, please ignore it until I correct it.

If I read properly,

  • gridcoinresearchd list network

says just under 30k goes to PoR these days...

Ok,

  • since V8 to now, it is 26,705.17 GRC/day,
  • over 200000 blocks before v8, it was 27,112.07 GRC∕ day

Looking forward to these changes. Also, there is a typo here :

" Nodes Nodes running the NN"

Do you have any plans for making an interactive, basic, cli util for operating the wallet?

Thanks.
There is basic cli already, you can use the gridcoinreearchd binary to control running daemon or gui wallet. It needs to be enabled in config.

Aaa . Ok . Then what is needed is more manuals about it. Guess i will get my hands on that until i figure it.

Is it fixed, I reported it broken on Windows a while back.

Thank you for the interesting summary. Many of these upcoming changes are really important to keeping Gridcoin functional and to improve it's chances to survive. Especially in times like these where there is a lot of pressure on the market it is critical to keep on evolving. Gridcoin is complex and has some elements that are inherently almost impossible to "get right
form a cryptocurrency tech perspective (esp. due to the BOINC tie-in) it will take quite some willingness to make bold yet carefully weighed adjustments to make if succeed. Please keep up your valuable contributions. They are truly appreciated!

Glad to read some development news here. It's sometimes hard to follow along but I'm catching up on this interesting project. Keep up the good work!

Hi @tomasbrod, will you be able to do an update in a week or two (when a month passes from this post) to let us know if any progress has happened in the last month? I think that would be an awesome contribution the developers could make: monthly updates to the community. My apologies if I missed a new update already.

Yes. Part II is almost ready. It is a team effort and will include polls.

Thank you for the update! I'm very much looking forward to discussions around different proposals and their implementation.

I hope we change the name of the "Neural Network" soon so people stop thinking we're hyping something that is definitely not a neural network. It is a pain to explain to those not familiar with the crypto environment.

I agree with making it simpler to understand, that will help prevent all the noob questions.