Gridcoin III proposal comments
A few comments. (This is also posted on Cryptocurrency Talk. Please see https://cryptocurrencytalk.com/topic/90700-gridcoin-future-technology-base/)
I am a relative newcomer to Gridcoin - I have been solo staking and pursuing research associated with Gridcoin since the middle of September. I use my real name, and you can look me up: https://www.gridcoinstats.eu/cpid/bc0621a4ac4610ffa400a0d298c02e23. Magnitude ~225 and balance about 180k GRC. I have been participating in distributed computing since 1999 with the original SETI client, and have been a BOINC contributor since its inception. I have a combined cobblestone score of almost 1.9 billion, and am ~#600 in the world by total credit and ~#159 in the world by RAC. So I think I can speak with some weight about BOINC contributions.
I signed onto Gridcoin because I believe it is the most altruistic of cryptocurrencies. It actually motivates people to use their spare cycles to do something good for humanity rather than simply generating heat. The stewards of Gridcoin need to always keep this in mind.
In this discussion, I see a founder who has been disengaged from the community for a while, but has suddenly come back on the scene with a heavier hand than ideal. I see a lot of disagreements that seem to be based on bruised egos. Folks need to calm down and talk rationally about the vision for GRC III. We need to keep the egos out of this. Given the time and money now invested in Gridcoin by many people, the stewards of this community owe it to the community to make the right choices. "First do no harm" should be the maxim. We cannot put into place changes that could be ultimately destabilizing and worse than what we have now. I voted yes to Halford’s proposal in the client poll, but that is a qualified yes, with the expectation that reality will be that the final vision for GRC III will be a mix of different contributions that further the stability, security, and scalability of Gridcoin. I sincerely hope that we have a spirited, but civil debate, and we end up with a hybrid of the different proposals that have been put forth which represents the best path forward. We need to stop looking at this as a black or white issue, and instead look at the actual technical and economic merits of the different components. Putting a coin together that ties into a complete other ecosystem (BOINC) and does so in a secure and scalable manner is a very difficult task. It is a much harder task than a straightforward "me-too" cryptocurrency...
If we want broad based participation in GRC that fits with its ideals, then we have to recognize that much of BOINC research is performed by individuals in a private capacity using personal computing resources. (I am one - these are my own machines - 6 quite capable hosts that do the work.) The ideal would be for everyone to participate in network from a block creation, research credit, and voting power standpoint proportional to their balance AND magnitude. However, there is an inherent tension in blockchain technology between scalability (performance) and transparency/equality. Consider that the Bitcoin network can manage about 50 tps or so. VISA’s network, on the other hand, can handle 50k tps+. The challenge for blockchain technologies to approach commercial private transaction networks in throughput is immense. A distributed transaction network that requires verified journal copies among all the nodes in a purely peer level manner is not going to scale well. This is because regardless of the actual technologies employed, each transaction is going to have a specific network entry point, and this transaction is going to have to be replicated across all of the nodes in a secure manner that prevents corruption of the ledger. The mitigation is to require only a few nodes to confirm a transaction to consider it “done” and then allow additional confirmation to occur afterwards, but we all know that carries risk of forks (the blockchain version of a replication A-B B-A conflict), replays, etc. Maybe we don't care to reach a VISA level of throughput. Quite frankly that level of throughput will never be required for GRC, unless we envision it being used for daily transactions at the cash register. This in fact is the biggest question around cryptocurrencies! Are they cash or gold? Or something in between?
It seems that the general approach to solving these scalability problems among many of the new cryptocurrency developments is to divide the network into a set of “privileged” nodes, sometimes at multiple levels, to control the size of the set of nodes required to synchronize critical information (and also be able to create blocks), thereby reducing the overall network communication load and overall latency. Obviously, Halford’s proposal to adapt Dash’s Masternodes is a version of this. My guess is that we are not going to get around it. Some form of privileged nodes are going to have to be implemented to support scalability. We also have the additional issue of the interface to the BOINC project servers, which are inherently non-scalable, and require effectively a near O(1) relationship between Gridcoin network size and the load on the BOINC servers. We also cannot demand changes to the BOINC server logical interface structure as this would be untenable – it would be very difficult to get all of the BOINC project admins to agree and then keep the changes up to date. This complicates matters for us. We have to ensure a non-spoofable interface to the BOINC project servers to determine proper research credit, but can’t have everyone crowding in and cross-verifying. Again the specter of a set of privileged nodes (maybe even more constricted in the BOINC statistics case) rears its head again as the only viable solution to this problem. I don’t see a way around that either.
The question is the exact form of these privileged nodes and who gets to participate. I am uncomfortable with Halford’s initial investment outlay of 400k GRC and a static IP address to act as a Master node. GRC is supposed to be primarily about contribution to BOINC research, but we need wallets to stay online to ensure network stability. The 400k level of investment plus a static IP requirement for a master node will all but eliminate the participation of researchers in the master nodes, and essentially divide the network into commercial investors that run the master nodes, and the researchers who are then second class citizens. (According to Gridcoin stats, there are only 175 addresses with balances 400k or greater, and some of these addresses could actually be part of the same wallet/node.) I agree that the number of master nodes has to be controlled. But what are the right requirements to participate? Personally, even though I have a dynamic IP set by my ISP, my machines stay up 100% of the time, and the IP address rarely changes. I run a full node, which has port 8333 forwarded from my router/firewall. To me it is important to be able to fully participate in the securing of the network. I have a level of service at the ISP that is not throttled in any way, so I don’t have an issue with the amount of data. I suspect that there are many other researchers with moderate balances that fit into that category. I think the balance requirement should be lower than 400k, maybe in the 25-50k range, and the requirement for a static IP should be removed. (Almost no one running machines personally has a static IP, because to get a static IP requires a commercial ISP account, and that is difficult and expensive to get for home.)
It would seem to me that the qualification to act as a master node should derive from both balance plus magnitude. We need to adopt an appropriate formula. Maybe it should be something similar to the voting shares, where balance + magnitude is combined together.
As I have read the ongoing thread at Cryptocurrency Talk, I feel like folks are calming down and getting down to the business of hammering out what needs to be done. Let’s hope this continues – we will get a great result if everyone can work together.
(This is also posted on Cryptocurrency Talk.)