I am hoping someone can provide an in depth explanation of how an ASIC miner for Ethereum is even possible (in the traditional sense of what an ASIC is defined to be). When I think ASIC, I think of a custom chip that is designed to do ONE algorithm very quickly and efficiently. For example, SHA256 used for Bitcoin. After skimming the Ethereum wiki, I came across this line:
""Random circuit" - a proof of work function developed largely by Vlad Zamfir that involves generating a new program every 1000 nonces - essentially, choosing a new hash function each time, faster than even FPGAs can reconfigure. The approach was temporarily put aside because it was difficult to see what mechanism one can use to generate random programs that would be general enough so that specialization gains would be low; however, we see no fundamental reasons why the concept cannot be made to work"
This excerpt came from:
https://github.com/ethereum/wiki/wiki/Dagger-HashimotoI think I answered my own question, but I will post my process here so that others can hopefully benefit. The above link was an predecessor to the current Ethash. Unfortunately, the current Ethash wiki makes no mention of changing the hashing algorithm every 1000 nonces. I wonder if they can figure out a way to add this in based on the current ASIC situation? It is unfortunate that this was ever set aside in the first place.
This Ethereum whitepaper talks about "Poisoning the well":
https://github.com/ethereum/wiki/wiki/White-PaperWhich seems like a viable option they thought of in the beginning. Lots of people have been talking about this option for the last couple of months. With the strong possibility of an Ethereum ASIC, why have the developers not become vocal about "poisoning the well".
It is obvious from their papers that they acknowledged that ASICs could exist but their intent was to ensure the advantage of an ASIC was so marginally small that it would not significantly impact computer based mining.
What are your thoughts?
Thanks,