I wonder if there's a way to make morphing POW code, such that every n years the POW function gets modified.
This would prevent mining centralization, and do so in a way that avoids politics, because changing the POW would definitely cause an uproar from the mining camp.
In the case that ASICS *are* developed for Monero, this would disrupt that significantly.
If the only thing that exists in 10 years are GPU operations, then it would only disrupt it in terms of software development.
if the only thing is CPU mining, then all it would do is cement further CPU mining.
The following approaches, being IO bound with a changing dataset achieve "some" extra level of polymorphism and although the PoW as it stands has strong merits for ASIC resistance, IMO they improve upon it somewhat.
http://boolberry.com/files/Block_Chain_Based_Proof_of_Work.pdfhttps://github.com/ethereum/wiki/wiki/EthashFor instance, in the case of the blockchain PoW (wild keccak) faster verification resulting in faster syncing. I believe last year someone conducted a test in an infographic for initial blockchain download and XMR was 200+ minutes, whereas BBR came in at about 13 minutes. I'm trying to find where it was posted.
I can't conceive a situation at the cryptonote protocol level where you could randomly switch algo's outright though. Voting through forks would be inelegant and cause much disruption. Much like modifiying the emission curve, even if it was practical on a technical level, it would seem that it would far from ideal from an econ standpoint.
You can't just switch what people signed up for retroactively. Also, you cannot ever stop the tendency to drift towards mining centralization- even the classic notion of 1 CPU, 1 Vote can be abused by sysadmins, botnet owners etc, AWS cowboys. I know this well as I was mining BTC before there were optimized CPU miners- and no GPU miners nor pools, and it was not even called mining, but "Generating'.
It was always centralized to some degree. With the rolling snowball effect of those who are profiting ploughing in more towards expansion you can only ever attempt to
stave off specialized custom silicon.Cool, thanks for those links - will read up on them and try to understand them!!
re: the first bold, I agree, which is why these things would need to be done before things get too cemented. Furthermore, one of the pillars of Monero is decentralization - so I tend to believe that efforts would be made to maintain decentralization even at the cost of switching things as fundamental as the POW.
re: second bold - I agree to a degree ( snarf ), but its the "some degree" that matters, IMO. At the existing difficulty, it is still possible for your average PC consumer to mine monero, even though there are probably definitely botnets, AWS cowboys, and sysadmins already on the network. This is *not* the case with bitcoin and soon to be litecoin with the scrypt asic development.
re: third bold: e x a c t l y. thats what a theoretical polymorphism would do. A guarantted 10 year window where its guaranteed that the only thing that will work is a CPU.... granted, its impossible to know CPU architecture in the future.... but, we got math.
and there will soon be a missive detailing your point re: voting through forks, if I understood correctly.