

If I remember correctly, that’s partly because p2pool requires access to a full node with the whole blockchain, while a lot (or some?) of the current hash rate is not running their own nodes.
If you somehow force everyone to p2pool we are not sure of the distribution and decentralization of the remaining miners, as some mining will drop out instead of running their own node.
Sometimes it’s because they don’t have the 200gb available for storing the blockchain. Sometimes they are mining multiple blockchains and requiring a full monero node is too much hassle.
Granted, with p2pool you can mine using someone else’s full node and let it spy on you a bit. Do we want that?
The other big issue is that you would have to hard-fork changes to the protocol to impose p2pool and that’s a big change that should be carefully considered, not done in a rush.
We have to remember that Monero is fine for now (as in not dying right now), we are preparing mitigations for POW centralization issues and the cure should not be more severe than the disease.
This is very close the the finality layer idea being discussed currently.
The idea is to record somewhere that this or that block has been seen and is considered final. At that point, even if someone publishes a longer chain afterwards, the longer chain will be ignored as it does not continue from the blocks that have been finalized already.
It is an interesting and good idea @qwerty@discuss.tchncs.de. There are some technical and community details that need consideration as to how exactly to implement that, but it’s one of the good options on the table.
For example, one of the technical details is were/how should we record that a block is finalized.
For this, we need to align a lot of decentralized nodes on a common state of things (which block is finalized), so that they are aligned on what has happened and what has not.
We actually already have a solution for that: a blockchain. Blockchains are a solution to the byzantine general’s problem (a.k.a aligning decentralized actors with each other on a shared state of things, even though they do not all communicate with one another, they communicate at different speed, etc).
So we could use a blockchain to record that this or that Monero block is finalized.
It needs to be a different blockchain, and have some characteristics like fast enough block time, a way to avoid deep re-orgs (POW with enough security budget or POS),…
Right now if you directly apply these conditions, you end up on the bright idea of using Ethereum or something like Litecoin.
The Monero community does NOT want to have to rely on ETH or LTC for security.
That would feel like a huge blow and a huge let down…
But yeah, if need be, for me, this is still a perfectly acceptable temporary solution.
What do you think?