Some thoughts regarding a Proof of Research Blockchain by core developer TheCharlatan

in #gridcoin7 years ago (edited)

GRCHorizontal_Purple&Purple_Solid.png



As you may or may not know, there are currently 5 polls underway that seek to help inform developers and organizers as they look to build a general roadmap for Gridcoin development through 2018.

Receiving Earned Research Rewards
Proof of Research Blockchain
Determining Magnitude
Solving the Stake Weight Problem
Securing Superblocks

It is important that we continue open and honest conversations regarding the development of all of these proposals.

TheCharlatan, known by many, loved by all, recently reached out with the request that some thoughts of his regarding Proof of Research Blockchain be delivered to the community. I am happy to share them here.

For those who do not know TheCharlatan, he is a major developer and contributor on the Gridcoin core development team.

He will be paying attention to this thread and may respond directly on a subsequent CCT thread -- he does not have a steemit account. Regardless of TheCharlatan's direct responses to this thread, which will be relayed if requested, we could use this thread as a springboard for further discussion and exploration of the topic of making Gridcoin a Proof of Research Blockchain.

What are your reactions to TheCharlatan's thoughts?
What are you questions regarding a Proof of Research Blockchain?
What are your concerns regarding a Proof of Research Blockchain?
What are you thoughts regarding a Proof of Research Blockchain?



The following text is a direct copy of words written by TheCharlatan:

Note: I have added a few line-breaks to the text he sent me for ease of reading.


The purpose of Gridcoin is providing a secure and cheap way to reward people for work being done on BOINC with a tradeable asset. In this article I will assume that PoS v9 and secure verification of CPIDs and statistics is already implemented. It is to serve as a personal mission statement of where I want this project to go, what it stands for and how it can justify its existence.

Since the inception of Gridcoin, a lot of different reward economics, security models and kernels were tested.

Gridcoin is based on a simple idea, replace Proof of Work with Proof of Research. This is very naive. The word "Proof" should never be used with something that is not provable. For those that don't know, user magnitude is calculated from the RAC (Recent Acquired Credits) in project statistics files that the project servers provide for download. There is no guarantee that Research is actually being done, we rely on statistical methods and the integrity of statistics files to give as reasonable assurance that work units have been computed and delivered to a project server. This completely naive mentality needs to be changed to develop a robust and hardened protocol that can be somewhat relied on.

So far all attempts at tying some form of BOINC data into the actual block creation process, that is the probability of being allowed to create a block and pushing the blockchain forward in a set time interval, have led to catastrophic security holes. Some of which were exploited on livenet (in spring 2014 a successful attack was executed which resulted in global blockchain rollback) and some of which were patched early enough. The patches either introduced more obscurity, that was later exploited again (like the obfuscated email addresses), or introduced even more centralized approaches at verifying the BOINC statistics. The lesson from these continuous experiences should be clear though:

The probability of creating a block should not rely on any work unit data. Even if the magnitude of a user is compromised, or tampered in some way, it should not influence any transactions happening in the chain, nor should he be able to attack the block chain itself with this. Thus the probability of producing a valid block should only rely on Proof of Stake, according to Gridcoin's philosophy of not wasting resources on Proof of Work. On the other hand we want the reward to be heavily biased towards computed work units. While the magnitude should not influence the ability to stake a block, it should very much account for how much you are owed as an extra block subsidy for a found Proof of Stake block.

Verifying BOINC work units is not an alternative to Proof of Work. Proof of Stake in of itself is fast, environmentally friendly and works more than well enough to push the blockchain forward. This is not a good reason to justify the project in comparison to other cryptocurrencies, especially not with systems like SPARC that reward BOINC crunchers, or existing tokens like XRP (Ripple) being minted/rewarded to BOINC users.

Whatever is proposed in future, the integrity of the blockchain should always come first. Using magnitude as a boost for the probability on who gets to solve the next block proved to be a bad idea.

There are however very good reasons why our protocol is not that bad after all, and I think Gridcoin should be promoted based on these:

  1. It further incentivizes running a full node, since we not only have stakers, but also miners that want to claim their reward. Even with an average magnitude and just a few coins, it is still possible to solo stake. This is very healthy for the network and any form of delegation, or centralization of reward issuance will undermine this.

  2. From these BOINC miners it can be assumed that a majority of identities (CPIDs) are honest. They follow whatever rules are dictated in the client and can be expected to not change them. In the case of Proof of Stake, this is very much desired. As long as the network is this decentralized, with thousands of honest nodes taking part, it greatly reduces the odds of a nothing at stake attack, which is a quite naive attack, where nodes during a fork continue to attempt to find a valid stake output to create a block on all forks.

  3. Voting. Having a CPID with some attached magnitude and transactions associated with that CPID provides a provable form of identity on the network. While it is possible to still create multiple identities, this makes it much harder resources wise, and far easier to detect. Also you can flexibly choose how to weigh spent votes. Correlating ballots measured by stake weight, CPID count, or magnitude gives a very clear picture of what the network thinks about a proposal. With regards to voting, having a system capable of verifying external data (CPID statistics) embedded into our client is a huge advantage over other existing cryptocurrencies. Especially if that external data is tied to some expended work to further science.

  4. With all the talk about block size and transaction scaling, it is worth to note that Gridcoin could handle about 5 times the transactions compared to Bitcoin.

Sort:  

Currently network is fairly secure and incentivizes research well - there is no need to push PoR if security would be compromised, but research for the solution might be continued.

ad) 1 and 4:

Concerns.

Currently ~6720 blocks are produced per week, what means only a maximum of ~6720 stakers can stake in average once a week (assuming equal stakes). Including pool members, already we have around ~6720 researchers.(*)

As we know there are no obvious limits in crypto sphere. Let's assume user base explodes (maybe a great BOINC discovery, maybe sudden CNN / BBC / etc coverage) and we have one million researchers. The only solutions to pay rewards daily is either pool membership or manual / automatic reward payments. Also, just the number of reward payments will clog up the blockchain.

While researching and testing solutions, we should ask:

  • Will the blockchain accommodate one million active accounts / researchers?
  • Will the blockchain process ten million transactions per day?

(*) Although currently I believe around ~3000 are staking, as pool members are not staking individually. Nevertheless, we already scratch the limits here.

TheCharlatan's Reply

Reply to Hotbit:
I agree, scaling a blockchain in its current form to millions of researchers is impossible without either strong centralization (such that much larger blocks can be processed), sidechains, or sharding. None of these are sufficiently researched (although Cardano is doing some really good work on the latter).
Lets say we have a system that pays out all researchers on a daily basis, while pure Proof of Stake is used to push the chain forward. Researchers get paid no matter what. It is very cheap to DoS attack such a scheme, daily payouts would flood the entire network, clogging up the network for regular transactions.
I'd argue that the current system can scale to millions of researchers and at the same time serve as an incentive for a healthier Proof of Stake setup. Pools can bundle and hold back their payout, and have little incentive to stake more often than a couple of times a day. This leaves a significant portion of stakers to still do solo staking and keep the network decentralized. Assuming a 25tx/s throughput and pools bundling and holding back their payout for up to a week, the system can easily scale to millions without signifitcantly clogging the network.

The number is even higher than that. As of the new year, we have over 10,000 miners, with about 3500 going at it solo.

I agree pretty strongly with TheCharlatan's central points, I've been thinking about this subject for a while. PoR is a nice notion, but I don't think it meshes well with BOINC because BOINC was never built with the kind of security concerns in mind that are needed for a reliable blockchain. Our current fundamental process of rewarding BOINC work on top of a PoS blockchain really strikes the right basic balance between a secure blockchain that is needed for Gridcoin to be a viable cryptocurrency and the kind incentive we want to provide for people to volunteer their computing capacity towards BOINC scientific endeavors. The efforts of developers are better spent trying to do those two processes as well and fairly as possible, rather than attempting to blend them in a way which is all but assured to sacrifice blockchain security.

As a community, when doing outreach/marketing and especially when comparing to other cryptos, we should be careful to be forthright about how the project is actually functioning and is likely to continue to function. Using PoR (even though it sounds nice) as a description of the project at present is muddy at best and possibly outright dishonest.

I agree with both points. I think our time could be best spent focusing on improving the already proven novelty and utility of Gridcoin - Minting a currency based on work done for external entities. There are plenty of issues to work on.

  • New users need to get their ERR without being forced into a pool
  • Stats gathering needs to be decentralized and made to scale
  • Superblocks need to be prepared for expansion outside of solely BOINC (not any time soon, but we need to start thinking about it)
  • Account verification (beacons) need to be improved

Not to mention that we still have some base processes to work out:

  • Poll parameters
  • Voting weight
  • Treasury creation
  • Treasury distribution
  • Development path consensus

These are off the top of my head so there could be more, or some of these could already be solved and it's just late and I'm not thinking straight = ).

The question I ask myself is:

While PoR is an amazing concept that may become reality in the future, why attempt to invent something that we don't immediately need -- a new blockchain security mechanism -- when we have so much else to do?

Who knows. Maybe by working on one of these more straight forward tasks, a solution to the PoR issues raised here will come to light.


With regards to marketing, I think that any resource that wants to be seen as an official source of information should not use the term "Proof of Research." We do not currently use PoR as a protocol and even if we vote to explore its development further, it is not likely that we will use it again for some time.

Also, removal of the boinc team requirement and mobile wallets etc.

Consider that it may not be cryptographically feasible to create a proof of research unless we have a custom made boinc project that was intended just for this purpose.

removal of team req 100%

I agree with your premise here ..

"SCIENTIA HUMANA LIBERTAS"

boinc
Courtesy of @joshoeah

I think it was called Proof of BOINC back in the day, so perhaps we should simply go back to that

https://bitcointalk.org/index.php?topic=627086.0

The probability of creating a block should not rely on any work unit data. Even if the magnitude of a user is compromised, or tampered in some way, it should not influence any transactions happening in the chain, nor should he be able to attack the block chain itself with this.

Happy to hear someone say this loud and clear. I was a little worried seeing the results of the poll. While I think it's fine to keep the idea of a PoR blockchain lodged far in the back of our heads, I don't see any possibility for its implementation in the foreseeable future, absent full decentralization of the BOINC side of things.

EDIT: I realize some people who voted "Yes" if the poll may have simply meant that we should at least explore the idea. Of course I'm fine with this. Let's be very very cautious regarding actual implementation though.

Yes. It is important to have arguments on both dishes of the balance scale.

Particularly because the odds of a boinc project getting hacked and the RAC modified are much higher than any of the possibilities of attack on the blockchain.

Gridcoin is NOT a proof of research blockchain. It was changed a while ago. We are a PoS that distributes rewards according to boinc RAC on whitelisted projects.

Absolutely true. The poll in question is seeking community feedback on whether we should explore how to integrate PoR back into the creation of blocks, or if we should continue on as a pure PoS blockchain.

Yea, i sort of rushed to comment this because it is a piece of misinformation about GRC you see often . Turns out is still a valid comment so i will keep it. Nice post.

i know the feeling = )

To do true proof of research it seems like we would need to verify work units multiple times independently to demonstrate that the result is true in a statistical sense. Which would require very strong integration between gridcoin and BOINC projects themselves. Which would lead to more centralization around maybe a few chosen projects since it would be difficult to integrate them all with gridcoin.

Maybe there is some way to do proof of research in a limited amount, perhaps if we set up our own BOINC project and somehow incorporated these results into the blockchain. Although I don't think other projects should have to do this since they were never designed to function as a basis for a blockchain.

Coin Marketplace

STEEM 0.25
TRX 0.21
JST 0.036
BTC 98122.26
ETH 3384.17
USDT 1.00
SBD 3.38