visdude are you describing p2pool ?
I am not entirely familiar with the inner workings of P2Pool but I remember it could not garner enough hashing power to compete with the big pools back in the day, hence it failed. I also remember its peculiarity of needing a special or customized version/release of certain mining software in conjunction with some mining hardware. I surmised that it was still subject to Bitcoin's winner-take-all lottery mining reward implementation and therefore still functioned as an "external" mining pool (outside of core/protocol)...still had to compete with other centralized "external" pools for those winner-take-all block rewards to be divvied up among the participants. Is that an accurate assessment on my part? I mean, Bitcoin's block reward rule have not changed since the genesis block as far as I know.
The model that I am thinking of is for a cryptocurrency to have a pool-like block reward distribution in its core/protocol, i.e. based on hashing share of participating "solo" miners instead of the current winner-take-all lottery reward paradigm. Whether it can be technically implemented or not, I do not know as I am not a coder; just a user with a somewhat wild imagination. If it can be technically implemented, the motivation to establish centralized "external" pools would no longer exist then as the block reward is already divvied up according to shares out of the gate or from the get-go.
So then the current block rewards become something based on work performed, not based on some method of luck. This seems like a very good egalitarian voting system, where each vote counts as one that is deserved
Yes. A paradigm shift from a competitive/gambling block reward model to a distributed or more accurately, a "cooperative" model. The nature or principle of Monero and other similar cryptocurrencies is unmistakably egalitarian in itself (all nodes are equal). So why not adopt the same principle in its mining reward implementation?
So to make this "egalitarian mining" or "fair mining work for pay", would the code changes need to be made to core, mining, and pool source code?
It seems pretty straightforward to implement, as the block rewards would simply be each in relation to each miners hash for a specified period of time - maybe daily work for daily pay is a starting point.
I guess the first question to be answered is how often this block reward would be paid, as expressed in time vs blocks. It seems intuitive that a 24 hour period would be used, but maybe a 12 hour or 1 hour period is better?
It seems that the communication of each miners daily PoW would need to be encrypted and sent to the network for inclusion in the blockchain, and it would be processed like a transaction, is this correct?
That might add an additional component of blockchain bloat that will have to be dealt with
"Egalitarian mining" is not exactly a new concept, and I doubt it's achievable as you describe without adding a significant amount of complication.
Is there a better approach? Probably. For the purpose of discussion, let's try throwing our current crypto model out the window, and create an entirely new cryptocurrency:
What if there are no block rewards in the first place? Hell, what if "distribution" as we think of it didn't exist? What if the hash itself (the PoW) is the token?
"How much for the coffee?" "200 hashes."
- Anyone with a computer can mine. You wouldn't even need an internet connection to mine.
- Hashes only need to be verified at the time of transaction (by the receiver, by scanning the 'blockchain' to make sure the hashes haven't already been used/spent)
- Inflation happens naturally as hardware improves and hashes become cheaper to create, etc.
This is just an idea, but you get the point. The crypto of the (more distant) future probably won't need any fancy "distributed-mining" technology.
I don't think there will ever be a drop-in solution for Monero or any of our current cryptocoin systems. We have to wait for the next generation, whatever it may look like.
The only question is how is it possible to verify those hashes (performed work) in decentralized and trustless manner?