Having a stack of hashing algorithms would probably solve that problem. Take a pool of proven hashing algorithms, then randomly choose several in a series of hashing operations to constitute Bitcoin's PoW. Arbitrarily change the hashing algos within the series after a minimum of 3 months (not with another hard fork, build that behaviour directly into the consensus rules). CPU's or GPU's could be adapted to that, but an ASIC would be conventionally impossible.
I remember the concept of periodically switching PoW algorithms being discussed before, but I'm not sure if that discussion ever came to any meaningful conclusion. Are there any alts that have been attempting this approach?
And we still have practically only two companies developing hardware used to mine these altcoins.
There are only 3-4 manufacturers producing SHA256 ASICs for mining Bitcoin (and they appear to be price fixing)
There are also effectively 2 GPU and maybe 3-4 major CPU manufacturers. Lack of competition seems to be just a small part of the equation, with the main problem being that mining hardware manufacturers have a strong incentive to produce mining hardware for themselves rather than their customers.
Theoretically, it's not impossible as you can think about game theoretical scenarios in which doubts about SHA256 would arise, such as the NSA-NIST conspiracy of a backdoor being somehow true, or somehow the curve gets simply cracked by quantum computing (how else could you crack it anyway?)
SHA256 has nothing to do with curves, it's Bitcoin's private / public key algorithm -- ECDSA -- that is endangered. Which is unfortunately much worse. However it can luckily be mitigated by avoiding address re-use until a new private / public key algorithm has been deployed.
Looks like satoshi didn't predict mining pools, which are the cause of centralization, not the actual specialized hardware.
Good point there!
He kinda did though:
https://bitcointalksearch.org/topic/m.6306What do you mean by "stability"? Big rock is more stable then small stone. Read-only file is quite stable comparing to one where anyone can write anything.
Blockchain is not about stability, it's about consensus. And if suddenly tomorrow someone having ten times more hashpower will decide to rewrite the entire blockchain - it is not a bug, it's a feature, and it's there by design.
A blockchain rewrite caused by dominant hashing power is not a feature though. It's a weakness that is kept at bay by game theoretical incentives, ie. the assumption that no rational actor would waste that much money on an attack of questionable merit. Rewriting transactions is exactly what Bitcoin's consensus algorithm is trying to prevent.
ASIC resistance is a temporary thing, so far many algorithms that were claimed to be ASIC-resistant have lost this status - scrypt, X11 and now ethash ASICs were recently announced by Bitmain. If Bitcoin would do an emergency fork today to some existing algorithm, it would probably take around a year or less until new ASICs arrive, since there's very strong motivation to develop them.
And even with new algo the mining might still be centralized, because if it would be very profitable, miners would buy GPU's in bulk while hobbyists won't be able to make small home farms, because retailers would enforce 1 GPU per buyer like they do now in many places. CPU mining might suffer from the same problems, and on top of that the network will be at the risk of attacks from botnets - imagine Microsoft or NSA sneaking mining malware into Windows update to attack Bitcoin's network with CPU hashpower of millions of users.
I think that's the heart of the issue -- Bitcoin's growth has turned mining into an industrial endeavour where economics of scale is key and money available to be put into R&D is plenty.
Simply changing Bitcoin's PoW algo won't keep ASICs at bay forever, but would come with a lot of challenges -- both technologically and community-wise. Not only evaluating and selecting a new PoW algo will be challenging -- even
how the selection for a new PoW algo takes place would likely result in a lot of drama and hidden agendas. Some parties may secretly benefit from one algo over another.
In other words, I too think that the downsides of changing Bitcoin's PoW algo would outweight its benefits -- for
now. As much as I'd love to see a time of hobbyist GPU / CPU Bitcoin mining again, I'm afraid this train has left for good.