r/Monero • u/ParnianCoinTeam • 18h ago
Is a PoW algorithm that actually balances CPU/GPU/ASIC even possible, or is balance a fantasy?
Been turning this over for a while and I can't decide if it's a real design goal or just wishful thinking. Almost every PoW algorithm quietly picks a winner. RandomX basically says CPUs win and everything else runs at a loss. SHA-256 says ASICs win, don't even bother with anything else. The GPU-leaning ones like Ethash or KawPow sit somewhere in the middle but still clearly tilt one way.
What I keep wondering is whether you could aim for actual balance instead a hash where a CPU, a GPU and an ASIC all land roughly in the same ballpark on performance-per-dollar, so no single class of hardware just takes over the whole network. Not "resist ASICs" or "resist GPUs," but genuinely spread the hashrate across all three.
The problem is every path I think through seems to collapse back into favoring someone. Make it memory-hard enough to blunt ASICs and you've basically handed it to whatever has the best memory subsystem, which tends to be CPUs with big caches so now you're back to CPU-only without meaning to. Something like ProgPoW tried to hug GPU capabilities so ASICs couldn't pull ahead, but that just locks you to GPUs and ages badly the moment GPU architectures move on.
And maybe that's the real issue: balance might not even be a stable state. Whoever gets the best perf-per-watt on that specific algo wins over time, and the market quietly converges on one class no matter what you intended at launch.
So I'm genuinely asking has anyone ever seen an algorithm, real or theoretical, that actually keeps CPU, GPU and ASIC competitive with each other at the same time? Or is a balanced hardware field just something PoW can't give you, and you're always secretly choosing a winner the second you pick the algo? Would love to hear if someone has a counterexample, because I keep landing on "impossible" and I'm not sure I trust that.