ethereum/EIPs

EIP: Modify block mining to be ASIC resistant.

Closed this issue Β· 262 comments

Disclaimer: My area of expertise does not lend well to me suggesting how to make things ASIC resistant. I hope there are some informed opinions floating around out there who can help fill in the how.

According to "the internet" there is an ASIC based ethereum miner on the horizon.

this may be the original source of that news

If you believe the analysis in the comments on this reddit thread BitMain may already running these miners.

I believe it is the accepted wisdom that ASIC based mining leads to increases centralization when compared to GPU mining.

This leads us to two questions:

  1. Should we hard fork to make ASIC mining harder and to demonstrate a willingness to hard fork any future ASIC based ethereum mining.
  2. What specifically changes do we make to implement this increased ASIC resistance.

Should we fork?

I propose that people indicate support/opposition with a simple πŸ‘ / πŸ‘Ž on this main issue. I would prefer this conversation not devolve into deep discussions around this subjective topic so my request is that people refrain from commenting on that specific question here.

How do we implement improved ASIC resistance

This is the primary issue that I think needs to be addressed, after which we can have an informed discussion about whether we should actually do it.

As a starting point: This came up from some very brief research into current ASIC resistant mining approaches. This is not my area of expertise so I'm somewhat relying on the community to help fill in the blanks here.

X16R-Whitepaper.pdf

Is there any reason to believe this problem won't just all go away once full PoS lands? Or in the fear around that still being a ways out and centralization could occur in the meantime?

I don't think it's practical to design a new asic-resistant algorithm until we have a better idea how the current ASICs (if they exist) function.

For instance, they could be a parallel keccak256 chip with a large and fast array of DRAM attached; in that event it might be easy for them to reconfigure the microcode, and adapt to new variations that rely primarly on keccak256 and fast memory access.

Incidentally, I think X11/X15/X17 etc are terrible ideas - none of the individual algorithms are intrinsically ASIC-resistant, they're just trying to use up lots of silicon area. Since they're chained, an ASIC manfacturer could just produce multiple ASICs that are chained together, if they actually ran out of space on one die (which is unlikely).

In fact, I wouldn't be surprised if the slowdown from using multiple algorithms on CPUs and GPUs - from not being able to do consistent register allocation for the algorithm, for instance - is greater than the impact on an ASIC.

93% upvote rate on that Reddit post. I'm happy to vote here too but I'm not sure what additional protection it offers against manipulation.

@cslarson I'm undecided on whether a fork will be beneficial or not at this moment, but wouldn't manipulation likely come from ASIC miners who oppose a fork? That reddit post, this EIP, Vlad's tweet, etc. all seem to point mostly in the direction of support for maintaining ASIC resistance.

This stance has been taken by Ethereum since inception, I dare say it's part of the undefined "Ethereum Philosophy" we talk about so much these days. If a hard fork is needed to preserve this, then I support it.

Thank you for adding this to the agenda next week. I would also like to see a discussion on methods that could be used to detect ASIC mining. This does not have to be on the blockchain but a way to be able to detect them if possible. I have a lot of faith in this team in figuring out how ASICs can be detected.

S1nus commented

PoS

i think this is the most recent news about it:

@Arachnid
We can't make it ASIC proof, but we should be capable of at least rendering anything currently in production either obsolete, or at least requiring more R&D.

Assuming there's was an alternate ASIC resistant algorithm we were happy with, do you think that the act of forking will adequately demonstrate our willingness to fork the protocol, which should deter bitmain and other manufacturers from sinking costs into producing ASIC miners for Ethereum.

I would say the Monero approach has been successful based on the press coverage / sentiment I observe, so yes - forking would demonstrate our willingness to prevent ASIC domination (same attitude as the "poison the well" statement in the whitepaper).

Even if it proves to only be a minor setback (forces 2-4 months more R&D), the process itself is valuable to other blockchains. It may be wise to just have scheduled changes to the algo and not be so reactionary.

I think merely showing that we will not support ASICs will make these producers think twice about trying to build an ASIC for ETH, they may then move all the ASICs over to ETC (not sure if that's relevant).

@pipermerriam We only need to show that the protocol and community stand to the opinion of ASICs being a no-go, even if this fixes things for less than a month, it 1) reduces the problem for that month and 2) may open users upto the idea of hardforks being a good thing when used for this case.

Off topic: As discussed in the reddit link, this may allow for a "mini-HF" that means we can add some of the EIPs ready to be forked in along with this

@Arachnid who could / will find some form of stats on GPU usages? It seems like we could see at which total difficulty point many GPUs would leave, and then have better stats on how quickly x H/s will make GPUs drop out, and then how big an effect ASICs could have.

I will echo @MicahZoltu and ask why assign manpower/resources on such research if PoS is going to render this obsolete anyhow?

@LefterisJP as much as I agree, the issue is one of both protocol and community

Is PoS going to be here soon enough for this to be wasteful? How much damage could ASICs do in the meantime? Is this not dropping the "ASIC resistance" from the original roadmap?

While it may be fine in protocol to wait, it reduces the communities opinion on the deliverance of the ideals they were promised.

The real question to be asked is will PoS be here fast enough to avoid needing this EIP?

If there is to be a PoW change before PoS is released, why not also consider making GPU mining rigs obsolete in the same patch (E.G. CryptoNight)? Let's see if this is truly about decentralisation or whether it's just GPU miners acting against the interests of the network to protect their hardware investment.

@Cakez0r I think while making the hash GPU resistant as well as AISC resistant would be the utopian dream, practically speaking, it would leave the network with a woefully small number of miners in the short term, which could lead to a number of unintended consequences.

PoS solves the electricity problem, but it doesn't solve the centralization of hashpower that the anti-ASIC movement, in Monero, afaik, aims for. I think this was the main push behind the Monero discussion eg. https://www.reddit.com/r/Monero/comments/86zb03/the_end_of_all_asic_miners_moneros_new/dw9ieji/

It just makes sense to keep it ASIC resistant. That was the goal from day one. If they are on the network it creates a possible threat before PoS happens. We don't want to rush PoS so we need to fix the mining.

@quantumpotato With full PoS there is no more need for "hashpower", thus no need for ASICs. If someone does build some kind of ASIC, they won't have a distinct advantage over someone running a validator on their laptop.

naure commented

This issue is independent of POS.
It lives on completely different scales of time, complexity, and uncertainty. POS may be delayed, not work well enough, or simply not be adopted. Meanwhile ASICs can spread like wildfire (and it's suspected to have started), after which you can never get rid of it. In fact, that would hinder the smooth transition to any other consensus protocol. It should be fixed before that.

  1. Ethash as ASIC resistance algorithm.
  • I believe ethereum team should keep it's promised to us as public on it's ASIC resistance algorithm until the end of PoW era. This is image that ethereum should lead other relative smaller crypto to go to. Few more month to go does not mean we should not take care on this ASIC resistance branding. We as no 2 crypto in the world, should keep it's promise to public until the end of contract.
  1. Current pace of network hashrate/difficulties
  • there is no way the entire world production can meet current calculation of network increase by these few months ( see chart December to march )
    We already let bitmain mine at least few months. Are we going to wait bitmain earn the most and give those used machine to public ?
    We should challenge bitmain centralization mindset by "soft threaten" we will fork if they come out with those products.
    Remember..bitmain never loss.. they already ROI with those machine.. the one suffer is public(ethereum supporter who want buy those machine)
    Ethereum foundation should step up on this.

If we want end PoW era.. give a perfect ending for it.

naure commented

soft threaten

It should be systematic even, to discourage the investment, and because they keep it secret.

[the spread of ASICs] would hinder the smooth transition to any other consensus protocol

Commenting on this just to prevent the spread of incorrect/misleading information, but this comment really has nothing to do with ASICs:

Miners are not part of the governance system. They are a service provider that can be fired as soon as they are not needed anymore (e.g., PoS). If every miner decides they don't like full PoS (which presumably they will) then they can simply all be fired (which they will). There is no need to get buy-in from miners for anything, you need buy-in from economic participants such as people selling goods/services in exchange ETH. For partial PoS (Casper v1) any miner that doesn't get on board will simply be fired (ignored by Casper enabled clients).

Casper is still Pow/PoS hybrid. Considering the bitmain's previous behavior. I reckon it is necessary to hard-fork.

@pipermerriam We can't make it ASIC proof, but we should be capable of at least rendering anything currently in production either obsolete, or at least requiring more R&D.

The problem is, unless we know how the ASIC works, we're basically taking stabs in the dark at an alternate algorithm. We can't know for certain what type of change would be necessary to obsolete any existing design.

Assuming there's was an alternate ASIC resistant algorithm we were happy with, do you think that the act of forking will adequately demonstrate our willingness to fork the protocol, which should deter bitmain and other manufacturers from sinking costs into producing ASIC miners for Ethereum.

Personally, yes - but then, I wouldn't have expected anyone to release an ASIC in the first place.

naure commented

@MicahZoltu This is true in the long term. "smooth transition" is the keyword. It is easier to upgrade the existing infrastructure to an hybrid system, with GPUs quietly reconverting to other activities VS two groups with opposite incentives trying to promote their chain and discourage the other.

It's very difficult to design a completely ASIC proof hash algo .... Current Ethash is memory bound design , but only memory bound does not mean the memory controller part can not be ASIC-like .... The only way to create a ASIC proof POW block chain is try to make ASIC die size as large as possible to make each of the ASIC as more expensive as possible ... So take one simple idea for example : Let's say each hash function can be highly optimized by circuit design and shrink to a small die size area , but if we create like 1024 hash function in the hash function table but only use like 16 and randomize them in chain for each hash ... That means only 16/1024 of the die size area is utilized for hash function .... That will decrease the ASIC efficiency and when the cost of such ASIC is higher than GPU , there is no incentive to design ASIC to compete with GPU ....

Alright, I'm going to try and capture the sentiment that I've seen thus far.

  1. We probably already have ASICs mining on the mainnet based on recent network hash power increases.
  2. We're not assuming we can make the network ASIC proof, but rather trying to require any ASIC currently in production to require non-trivial additional R&D to adapt to whatever new algorithm we switch to.
  3. We're not assuming we can prevent future ASIC production, but rather to deter anyone from investing resources into technology that we've demonstrated willingness to break with hard forks.
  4. While full POS would fix this problem, full deployment of POS has no firm date on which it will be implemented, nor should we rush that implementation because of this problem.
  5. We don't know how any current ASICs operate, so if we make an algorithm change we will be doing our best-effort to break current ASICs.

This leads me back to my original question... What algorithms should we explore.

pipermerriam :

I don't think it's necessary to create or choose which algo to go next ... Just put all the existing proven hash algo into the code and random select some of them and chained them together ... This will make ASIC design need to implement more die size area and increase a lot of cost to do ASIC ... Ex : Ethash + X16R + ... , you name it ...

@Arachnid Bitmain develops these asics and mines with them for before the public even knows they exist. While I agree that trying to patch PoW algorithm without knowing exactly what defeats these asics is shooting in the dark, the consequence of just waiting until these are available for public analysis is that the next generation may never be made public. The promise of ethereum was asic resistance, not asic reaction. This whole thing is only an issue because the ball has been dropped on asic resistance. We know how long it takes to produce asics. Why does ethereum not have a release scheduled every 3 to 6 months to combat this? It’s too hard or it costs too much is a really poor answer for a multibillion dollar crytpcurrency.

What I'm trying to say is that trying to design a new, ASIC-proof algorithm without any idea of how current ASICs might be achieving a speed boost is stumbling in the dark. We're as likely to waste resources on something that existing ASICs can be adapted to do as we are to achieve anything useful.

@oskarwu This is the approach used by X11 etc, and I think it's fundamentally flawed. Doing this imposes a constant-factor overhead on ASIC area, but it also degrades CPU/GPU implementations, and ASIC manufacturers can simply throw more silicon at it. Since only operating gates cost electricity, they will still be significantly more energy efficient, which is the main goal with ASIC manufacturing.

@crazydart Inventing a new PoW algorithm every 3-6 months doesn't seem like a practical goal to me.

@Arachnid If this was a tiny shit coin with 3 developers, I would totally agree. Because it is the number 2 crypto currency in the world with a market cap of $36 billion dollars, you are dead wrong. If they had to put out a fork every week I would say it is justified at this level. The dev group has many millions of dollars in ethereum to spend on this... while I do expect R&D like work on PoS, I also expect ktlo development like upholding their claim that is is asic resistant. If they can’t scale the development, isn’t that a clue that this whole thing is just a hobby??

It's not just about money. Each PoW algorithm has to be unique - you can't just change a key, like you would in crypto - and well vetted for issues and vulnerabilities. Then, multiple implementations are needed, and mining pools etc need to be given time to update their implementations for the new algorithm in time for the fork. Then, for each fork the community needs to be informed, and the fork needs scheduling with enough time for everyone to upgrade in a timely fashion.

@Arachnid Yes, back in the 1990s these were all problems when we didn’t know how to scale systems quickly. Today in 2018, if you don’t know how to solve these problems you are just inexperienced. If you run a $36 billion dollar crypto and don’t have another PoW algorithm in your back pocket, I call it negligent. What if someone found a vulnerability tomorrow? You just going to shut down while you work on a fix?

If it's as trivial as you assert, you're welcome to send in a pull request.

Careful on this one...or you could have Ethereum Gold / Lite / Platinum from every idiot under the sun, like after bcash showed them they could do it with Bitcoin. Might be more harm than good if not done with proper governance.

@Arachnid

I think the concerns you are raising are very valid. Here is my attempt to create a framework to think about this topic and the risks involved depending on what choices we make.

  1. risk of switching algorithms only to find it that it didn't cripple the ASIC miners curretly in production.
  2. technical/security risks of the algorithm change.
  3. centralization risk of allowing ASIC mining to continue until we can know how to cripple them (assumes that ASIC mining is currently happening).

The way I'm looking at this is:

  • If you don't believe the assumption item 3 is based on, then there's no reason to do anything now.
  • item 2 comes into play whether we switch algorithms now or later.
  • item 1's risk is that we have to expose ourselves to the risk of item 2 more than once assuming we change algorithms again after finding the first one didn't work.

This feels like a choice between "wait until we know" or "shot in the dark" if we work with the assumption that we will change algorithms to deal with ASIC mining.

  • "wait till we know" exposes us to both the risk of changing algorithms + the risk of whatever mining centralization happens between now and then.
  • "shot in the dark" exposes us to the risk of changing algorithms + the risk of maybe having to change algorithms again later.

So is the risk of changing algorithms greater than the centralization risks. It's not clear to me how to evaluate these two risks, however, I don't want us to fall into the trap of "status quo" is easier, and thus safer since we have to take on the inherent security risks related to switching algorithms no matter what we choose.

All of this works under the assumption that we do not choose to just let ASIC miners continue un-interrupted until POS pushes them out.

I personally think we should fork sooner rather than later to prevent ASIC's the cancer of crypto before it gets out of hand. Bitmain and the other Asic producers are actively trying to centralise all crypto. Yes POS is on the horizon but unless you fork now this will make POS harder to implement on a later day.

Since the launch of ZCash the developers have stated that they would alter the Equihash algorithm if there was a threat of an ASIC. I would suggest asking Zooko & co if they have any input on the best way to alter Ethash so that Ethereum can make any ASICs obsolete.

A good place to start may be at the ZCash forums forum.z.cash

Or asking zooko directly on twitter as he is very active and friendly on twitter.

@Arachnid :
The reason X11 is failed to be ASIC proof is because it does not increase the die size area significantly ... Let's say each simple hash function require 1mm x 1mm die size area to implement each individual function ... X11 means like 3mmx3mm or 4mm x 4mm to implement all these hash functions ... As long as the die size area is still in a reasonable range , there is still incentive for ASIC company to " produce " such ASIC ... But when the number is X100 , you could need 10mm x 10mm to implement all these hash functions , things start to be different now ... A die size area 1cm x 1cm is relatively large in modern silicon chip and the production cost and chip bounding/packaging cost start to increase significantly and the yield rate start to decrease significantly ... When the number is X1000 , you need 30mm x 30mm die size area to implement all these 1000 hash functions .... 3cm x 3cm chip die size area for each chip is extremely expensive to do ... If only 3% of the 3cm x 3cm silicon area will be used for each hash , even the efficiency is far superior for ASIC to compete with GPU , the initial cost is still way too high for the miner/mining farm to buy such ASIC machine because it's way too space wasting ... If there is x1000 hash and some of them are memory bound like Ethash , you will need an expensive ASIC and a lot of memory chips to do the ASIC mining machine and that will make ASIC very difficult to implement or no financial incentive to do it ...

@Arachnid I would be happy to solve this problem and submit a pull. I am just going to need to be paid. Last I checked I was a pissed off consumer, not a paid developer. If this was some small open source project I might even entertain doing it for free... but again, this is a $36 billion dollar crypto with many millions to pay developers. I don’t think they need my help really... they just need to make up their minds what is more important: the promise to be asic resistant or their time to dedicate to PoS. Trust is near impossible to earn back. Choose wisely.

@cryptomined A discussion started a few weeks ago about Zcash and ASICs here: https://forum.z.cash/t/let-s-talk-about-asic-mining/27353

@crazydart Are you expecting the community to pay the devs? Just because the market cap is $36M means nothing for the funding available to the EF/Core devs.

This is not a place to act like that. This is a discussion of what, if anything, can be done to fix this issue (if there is one).

I vote we move this conversation to a gitter or similar (this is giving me more and more desire for #956 to have a set location for discussion.) in order to talk in more depth about the viable solution methods and the worth they will provide if we even attempt them.

please make it ASIC resistant i have several rigs mining eth and i will get bankrupt if an ASIC is developed :(

Not a software guy, plz don't roast me!
Is there anyway the algorithm itself can change?.. Maybe the block number causes a slight change in the algorithm itself.. That seems like something asics wouldn't be able to cope with yet all gpus/cpus would still be in sync with how they hash each block.

@DanielRX The community doesn’t have to pay for anything... the Ethereum Foundation had a massive amount of money in reserve... I am sure the number exceeds a billion dollars by now. That was raised to pay for exactly this. The EF/core devs should absolutely be paid out of that. But you are right, this isn’t the place to discuss it. My comment was to someone else that I wouldn’t be submitting a pull request to a profitable project for free.

@boerminer your idea is the same as @oskarwu which may be valid however could effect gpus just as badly and may not actually hinder ASICs

@bitcartel Thanks I did not see that, have not been on those forums for Months now... i posted another topic in regards to this EIP after posting my comment here... (and tweeted to Zooko on twitter)

@MicahZoltu Please don't discriminate against miners... I mine... I accept ETH for goods/payment... I Hodl ETH... I use ETH... we are all in this together. Miners are not against POS... most of us WANT POS because we know that POS can take ETH to the next level... yes some miners only mine for profit... however some of us mine because we believe in ETH... and a lot of miners start mining for profit and then slowly become believers... its not black and white. Those who currently verify should be respected as a part of the community... without miners today, there would be no ETH. Hopefully we can change that in the future.

Hi all.
I also belive in the idea of decentralized where people can be part of and also get reward for, that's why cryptos should be asic resistance in order to get the community growing.

Regards

We have known this is going to come for a while now... I think so long as PoW is still a thing we should commit to making changes to the algo every 4-6 months that will force people working on ASICS to go back to the drawing board... this will force the issue...

I would love to think that PoS will solve this - but If there are more unforeseen delays I don't think that we should be rushing into PoS to solve this, and I don't think we should do nothing encouraging more and more and better asic development.

poison the well, written in the whitepaper of Ethereum.

Ethereum has been one of the most profitable coins to mine using GPUs. IceAge laimed this inherently and was removed in the last network update.

Even tho we had ASIC rumors out of china last year, the recent hashrate runup during the last 4 months while the price is constantly declining, makes Ethereum Mining unprofitable. Small home miners , with regular electricity costs of 0.20$ or more, are forced to turnoff their GPUs and mining rigs, as they can't even make a tiny profit.

Screenshots of Gigahash Miners hit the the surface. While many supsect that these are just MXM GPUs on a PCB (which is just a big GPU Rig, not an ASIC) the rumors of Bitmain produced tons of memory for their upcoming F3 Ethereum ASIC are getting stronger and stronger.

ASICs would affect market drastically and could even render GPUs obsolete, due to their comparative ineffectiveness.

We recently saw what happens when Bitmain is attacking a coin/network with ASICs. They can (as beeing a monopoly producer) predict hashrates and control the income of their own pockets with individual pricing., depending on market. They do nothing else then first mine into their own wallets, then simply advertise small (very small) batches which gives first-batch-owners a high yield, but then released 15 fold the amount of miners under the table. The Antminer D3+ became, even with cheap electricity, a doorstopper - or for colder regions of this earth, a room heater. It won't yield any profits anymore and with 0.12$ electricity, you still make a dail loss of a dollar (of course related to the crypto price).

Ethereum contributes too much good value to humanity as we can carelessly watch how ASICs are taking over. Crypto belongs to the people, not into the hands of some (chinese or not) businessman.

Expected behaviour

Hardfork (network upgrade) to make current ASICs obsolete, slightlyt changing the DaggerHashimoto Algorythm

Actual behaviour

ASIC enter the network

Backlog

Ethereum will switch to PoS, however, this is still in the future, meanwhile the ASIC take over.

ETH asics have been running for the past 4 months and bitmain and co will not release it for the public cause they don't want eth asics to be official and eth devs are ignoring that fact which is bad. The problem is how eth devs can implement a fix as they don't have information on how those asics work. And if eth devs create a code to block those asics to work then after a week or so bitmain and co will probably come up with a simple firmware update.

@pipermerriam @Arachnid I'm not sure if this is a pool or not (there are no transactions), but I saw this in r/ethereum and figured I'd point to it.
https://etherscan.io/address/0x52e44f279f4203dcf680395379e5f9990a69f13c#mine

Naturally, there's no way to really know. And attempting to do anything would be taking shots a something in the dark. But, if the majority of the hashing power is in the hands of ASIC miners in the coming months, it will not be good for any of us trying to push this tech forward...

@eolszewski shocking to see that. literally every pool with just a decent hashrate is visible and everybody knows about it.
some anonymous player crushing blocks like this is shocking.
i spotted genesis mining recently on nanopool, so i doubt that they run own pools

That is a Chinese mining pool. While it still could be asics, they do look to allow anyone to mine on the pool.

https://eth.bw.com/pool/i

Forgive me for being mostly uneducated to the intricacies of mining (only started my rig roughly a month ago) but this move by Bitmain to create the ASIC miners for Ethereum comes off to me as an active attempt to corner the market. A centralized cryptocurrency (like what will happen if Bitmain succeeds) seems to me like the polar opposite of the reason cryptocurriencies like Bitcoin and Ethereum came into existence for in the first place. If a hard fork can prevent them from doing so, at least until POS becomes reality, then my vote is in favor of the hard fork. Brick'em.

@thetimedrifter Yes and no. This thread is more about keeping asics out on the premise that ethereum was always asic resistant. IMHO, asics are unfair and centralized because it is exclusive and once they are developed it will be impossible for normal people to complete. Ironically, I think PoS has the exact same problem... who ever has the most money could literally buy a controlling share of the PoS, cutting out or under pricing everyone else. Billionaires do this all the time when they want to kill a competitor... undercut them until they give up.

We should consider hardforking Eth if anyone is caught using ASIC to mine Eth. The day ASIC mines eth, it will destroy eth through centralisation of the processing power. In turn that opens up possibility for whoever dominates the processing power to alter the public ledger. At this moment, i feel that some people have been mining with ASICs secretly. Now it is up to the Ethereum developer community to find ways to detect any ASICs in the Ethereum network. In the case of Monero, the developer did not know if Bitmain had been mining monero secretly with their ASICs until Bitmain decided to sell the Monero ASIC miners to their customers.

I'm going to start deleting content-free comments like "protect ETH from asic because great good", in order to try and keep this discussion coherent. If all you want to do is lend support to a position, there are reactions for that.

nav1d commented

network should force miners to spend a defined minimum amount of time. (proof of work + proof of time).

We all know that GPU is good at processing uniform data right? To prevent ASIC from mining eth, perhaps we can add a synchronised side chain that must be run on CPU from either Intel or AMD to confirm that the miners are using GPUs attached to a normal pc. The additional side chain can also address the scalability issues too.

naure commented

@pipermerriam: What algorithms should we explore.

The following is a simple solution to disrupt the current (suspected) generation of ASIC, and anyhow start to close the performance gap between GPUs and specialized hardware.

There is an algorithm that provides cryptographic strengths, is unrelated to Keccak, uses operations available on GPUs, and is easy to implement in Ethereum clients: it's elliptic curve exponentiation.

It is a kind of hash function, in fact it is used as such for the next generation of ZCash. Every Ethereum client already has an implementation of it (for signatures), so the upgrade effort is minimal. Meanwhile, it takes quite a bit of silicon to design and manufacture on ASIC.

Building on the idea from X16R mentionned above, the two available algorithms (Keccak and EC exponentiation), are chained multiple times in a pseudo-random order - again easy in software, more silicon in hardware.

It should be added in parallel to the existing memory-hard algorithm. The memory-hard part should remain the bottleneck, because it is proven to be rather effective still.

That should do the trick for now. From there, it’d be best to collaborate with the ZCash and Monero efforts to design the next generation of ASIC-resistant PoW.

The most compelling ASIC-resistant algorithm I've heard of is the "adaptive proof of work" that @vbuterin describes in A Prehistory of the Ethereum Protocol:

here, the proof of work would involve executing randomly selected Ethereum contracts, and there is a clever reason why this is expected to be ASIC-resistant: if an ASIC was developed, competing miners would have the incentive to create and publish many contracts that that ASIC was not good at executing. There is no such thing as an ASIC for general computation, the story goes, as that is just a CPU, so we could instead use this kind of adversarial incentive mechanism to make a proof of work that essentially was executing general computation.

The decision was made at the time not to go this route since it opens up the possibility of long-range attacks: a malicious miner could simply "start a chain from block 1, fill it up with only simple contracts that they can create specialized hardware for, and rapidly overtake the main chain."

But that was then and this is now. I wonder if it's worth revisiting this idea now that the Ethereum network is much more mature and the chain is much longer. One naive solution is to combine this with a single checkpoint, hardcoded into the clients, of a recent block hash at the time of a fork, and require execution of a random set of Ethereum contracts throughout the entire chain from genesis up to the present. This might require ongoing checkpointing at each hard fork to remain secure, but it's intended as a stopgap until PoS anyway.

Edit: upon further contemplation I realize this is still susceptible to the long range attack since a malicious miner can still construct a chain of arbitrary length. Still, it's an interesting idea worth some consideration!

Last year cointelegraph released an article in which they forwarded you to the chinese website once you clicked "Chinese version of its site" on the article. However, that link is not available anymore .

I tried to find some articles which were talking about the specs, found an russian article from back then (use google translator) .
Another source

Since I am not a miner ... are these specs providing this much of an advantage?
Also it might help you figure out an algo to avoid them!

Sorry for my English, but:

What benefits do ASIC miners bring to the community (in fact, there is only one now - Bitmain) ? - No any!

What losses they bring ? - Bitmain currently controls a significant part of the network hash, this is already obvious. With a drop in eth price (perhaps a targeted dump), GPU miners around the world are forced to stop working, because it's simply not profitable, and Bitmain will get greater and probably critical control over the network hash. Which means the end. And this will happen much earlier then switch to POS.

As an investor, I don't want that the network has been under the full control of one company from a non-democratic China. Apparently many think so, and this is reflected in the fall of asset prices.

Initially, the developers announced that the algorithm would be ASIC resistant, because everyone understood how important it is. And now Bitmain, in fact, committed an attack on the network and community. The community with developers must immediately protect themselves.

And Plan B on this case should have been ready for a long time before.

Please keep comments on this thread on how we can actually make Ethereum more ASIC resistant. Comments outside this scope can be moved to Reddit here or Twitter here.

Thanks for your cooperation!

While I read through most of the comments, I didn't read every comment. The best proposal that I have seen so far is this one by @naure. If you have seen another proposal that looks better, feel free to summarise for others. Also, communicating with ZCash and Monero is certainly worthwhile.

AIUI I don't think Casper will be implemented until phase 5 of the latest sharding roadmap, which is probably at least 3 years away, if not longer, unless lots more developers and researchers join in to help out.

@naure @jamesray1 This will not work. There is no magic algorithm that is faster to compute on a GPU than on an ASIC; for any compute-bounded algorithm, you can make a dedicated chip that will execute it faster than a general-purpose one.

The only options for ASIC-resistance rely on computations that are bounded by something ASICs can't do faster than general purpose processors, such as memory bandwidth to large outboard RAM.

@Arachnid I don't think it's productive to shoot things down because they can be made fast using ASICs. I'm fine accepting that anything we do can likely be done with an ASIC. What I think we're doing here is trying to brick bitmain ASIC miners and deter future development.

Setting aside your concerns about trying to do this without knowing how they work, is this a strategy you could get onboard with?

@pipermerriam You're suggesting we pick algorithms we know aren't difficult for ASICs, and instead rely on switching them regularly to deter ASICs being deployed?

I don't think that's a viable process, because algorithm design can't be automated, and doing it manually consumes a lot of resources and introduces risk every time you introduce a new algorithm.

I was critiquing @naure's proposal, too, which explicitly claimed to be ASIC-resistant.

@Arachnid how did XMR just do it?

what about doing what the equihash community is thinking? increase the memory requirement?

pilsy commented

It would appear that we can consider this proof that the F3 exists and is coming.

http://bit.ly/2pULqgf ~ 1500MH/s or roughly 50x RX580 GPU's.

yes and 1500 mh/s is going to quickly take over the network, we need to stop this, it is not a joke

Sorry for my English...
Somehow I believe that in reality there should be a way with memory bandwith and speed, to try and exclude the ASICs from mining, because they are already mining, the amount of network processing gain in the last two months is not at all coherent with more GPUs mining farms poping up. It is proof of a ASIC runover....

In someway the fork should be tightly based on current GPUs ability's , use what actually make them GPUs and don t use a system that is easilly reproduced on the ASIC, from the ASIC's the only details are the memory to be used, can t we use the difference between them.

For my understanding of technology, I besides having some hopes that this can be avoided, I believe that ASICs are mining, and that history shows that when a company invest enought money on tech, they can make a processor much more efficient than a GPU, however I believe that those ASICs are not perfect, and that should be a quest for the dev to try and figure out a way to use more of the unique caracteristics of the current pararell procesing power of the GPUs , something that to my belief is not possible currently with ASICs they haven t figured out how to make cheaper GPU clones.

So I do understand the dificulty of changing evolving the current POW, and I recall that POS will exist along side POW for a while, so I it is a need, ultimately many small time and medium size farms and a lot of personal mining rig will quit...

I myself will be shutting down for two weeks, to actually figure out what to do. Were I live it's 0,20€ per kw so this has been fun, but now it is no lounger a funny matter, I have been hoping for an anoncement for a fork.

@Arachnid is it viable to combine both mining as we have it with the original idea from Vitalik to have arbirary contract execution mixed in? It would (?) avoid the long range attack but would allow for the ASIC resistance that is claimed in @lrettig's post above

@pilsy Where is the source for those images? Until we can be sure, it's not proof

Antminer F3 confirmed. First video of existence: https://i.imgur.com/fh5Z5gW.gifv

Based on the date it's 31st March which is today. So then, everybody RIP

either ETH Devs do something very very quick or crypto(mining) ompletely gets recked by china.

If 1500 MH/s are real let me give you some current numbers:

  • 50x RX 470/480/570/580 which equals roughly 6,3 kw/h
  • 30x P102 Nvidia, which equals roughly 4,2 kw/h
  • 47x 1070 which equals roughly 5.4 kw/h
  • 65x 1060 (23mhs) which equals roughly 4.5kw/h

since Bitmain uses it's classy PSU, we can expect less then 1,3kw/h

If devs won't emergency fork, quickly, ethereum will be dramatically damaged

// edit

seems each miner does 500 mhs. (total was 3x 500 = 1500mhs)

500mhs, is a big rig with 13x GPUs which will cost in current situation at least 5.5k$ and consumes 1500Watt+

Full video for context: https://www.youtube.com/watch?v=9L-1iG6mdJ8
I wonder if it's true or not though.

pilsy commented

equihash appears to be protected (for now) by a increasing RAM requirement but Bitmain could just create PCI based hashing boards that could be plugged into PC motherboards.

The ASIC solution really needs to be independent of hardware and more fundamentally protective of decentralization. So far the ASIC discussion has been really about hardware mitigation but we all know the exponential growth of computing power can't be stopped.

Instead of focusing on hardware mitigation is there a way to throttle hash rates or hashing power of miners within the Algorithm? The simple concept would react to an ASIC attack on the network by throttling the hashing rate of the attackers.

Obviously, the new algorithm should focus on the specific capabilities of existing common GPUs. That is, benefits of L1/L2 cache memory should be maximized, maximum of available instructions should be involved, etc. Thus, processors with a less functionality exponentially lost in performance or became irrelevant.

To do this, it's necessary to hire/invite several professional engineers familiar with the GPU architecture. Because only mathematicians and programmers can't do this. Or/and announce a $5M grant for development.

The video is suspicious, the label seem different from Bitmain usual one (square corner, different color of the border), the performance is incredible. I call it a fake.
So said, ASICs resistance is to be enforced, we must have a plan, an efficient one, and be ready to adopt any measure to avoid the threat. But more important, we must continue to act in a manner that did not divide de community, an ASICs fiasco would be a major step-back.

@motopila This is not enough. The most common workloads that benefit the most from L1/L2 cache are Matrix Multiplication and convolution, which can achieve 90~95% of theoretical throughput. This is because it only needs n^2 data for n^3 operations.

And ASICs/FPGAs are being developed for this as they are key for deep learning. It is still an interesting approach

More info:

@zangheri ASIC performance is always incredible.. dont be surprised if it does 500-600 mh/s... for an asic, thats not that big of a jump

@cryptomined 500MH/s is incredible of a jump

they easy put 50,000 units out as they did with X11, so expect 25 THs on top. maybe only ten % on top, however, they will then start makin more and more. and nobody know how many already runnin. dont foret, they most likely release them, if they have a newer, better version for themself.

@krtschmr for GPU to ASIC, its not that incredible of a jump for the ASICs... some ASICs are much more powerful/watt compared to their GPU equals...

and Right, the next model will crush it... and if we let this one pass, they will go ahead and make a more powerful one. These will end decentralization for ethereum, which is devastating...

what upsets me most is the stain this will leave on the ethereum whitepaper.. it does not look good on the developers if they can not stop the ASICs...

some developers might not care... but they should... it is their reputation on the line here.... and with POS taking so long... if they can't fix the POW... more questions will float around on if they can successfully implement POS.

With competition from Cardano, EOS, Stellar, NEO and the likes... the ETH development really needs to step up their game and show that they are really #1. Otherwise big corporations are going to jump ship... and that is really going to hurt ETH.

some developers might not care... but they should... it is their reputation on the line here.

we had an issue in the past with IceAge. Ethereum(mining) was about to die, so they emerencie'd and removed it. I really really hope that this exact same thing will happens with an emerency anti asic fork. If not, we can surrender. Due the declining price, you can see that hashrate was already removed. People are forced to turnoff gpus.

china not just produce and have those asics, they also have cheaper electricity then most modern-world citizen

Is it absolutely necessary to find a solution trough fork and new algo, can be done trough hash output with pools to limit hash per worker, dont hit me.

ETH on Cryptonite7

Let's do it. Just use the algo. CPUs can also participate. World is getting better!

Grix commented

I'm against it. One reason is that hard forks / breaking changes increase the maintenance upkeep for nodes and increases the risk of critical failures, so they should be kept to an absolute minimum. Some potential for mining centralization is not a good enough reason to do it.

Another reason is that it's not a real solution, it just treats the symptom. Decentralized blockchains work by assuming that every player acts in his interest to achieve nash equilibrium. And that's exactly what ASIC manufacturers are doing. Someone will always try to create more efficient mining hardware to gain an edge. Changing the algorithm when everyone followed the rules undermines that system. Instead we should work towards a real solution where the consensus mechanism does not allow for economies of scale to cause unfair advantages so that the nash equilibrium is a state of decentralization, such as PoS. Anything else is a distraction.

@Grix you would be right if ethereum didn’t promise to be asic resistant... but they did. I would NEVER have started with ethereum if they didn’t have this commitment. Many miners doubled down knowing they had ethereums support if asics were ever developed. Now is the time for them to uphold that.

Modifying the fnv aggregation in Ethash may do the trick in stopping the asic miner. The asic is likely implementing the aggregation and a wide memory bus for bandwidth from what we read on the internet. The DAG will be in conventional DRAM (e.g. DDR 3). So change the core aggregation to something else and the asic needs to be redone. Which means new verilog/vhdl, place and route, fab, etc (many months and lots of capital). On the other hand GPU miners are easily adapted. Change it twice a year and it will not be possible for asic manufacturers to keep up.

@cronie, bitmain and co have got their development money already and now are just getting net profit, they have been mining eth with these asics since december 2017. The double huge added hashrate from december 2017 to january 2018 were 95% asics.

@7runks yeah that's what I read also. However, it's still valid to get them off now right? And preferably with a rather 'minimal' algorithm change. If you change the core aggregation in ethash, they need to make a new asic but it buys at least another 6 months.

Since there is no clear evidence that Bitmain actually runs these ASICS... this is my assumption:

I just went through some popular GPUs for mining and checked their price drop. Due to high demand the prices obviously shot up in december but they dropped recently, assuming that Nvidia/AMD sold a bunch which increased the hashrate.
I used the chrome extension "The Camelizer" and grabbed the prices from Amazon.

https://i.imgur.com/UmqRnM9.png
https://i.imgur.com/BWFYCBh.png
https://i.imgur.com/pSNoUDb.png
https://i.imgur.com/sG0tnzl.png

@ButtaTRiBot the price shot up because crypto became super popular and miners bought up all the gpus. The price is mostly back to normal now because the difficulty is so high it would take you many years to break even on a new gpu alone for mining... so you would be an idiot to build a new rig today. The only thing this has to do with asics is that bitmain made them for Monero and ethereum around that same time and mined the crap out of everything. Causing the difficulty to skyrocket. Right up until recently everyone with Monero also blamed it on popularity and new gpu sales.... however much like ethereum the number just didn’t add up. Then all of the sudden several companies announced presales of asic miners for Monero. This was because Monero scheduled a fork just in case it was asics and the asics days were numbered... so why not dump them as fast as you can?

Eth and most coins have a position against Asics on their whitepapers, it's time to keep the promises. Asics are totally against decentralization, if we allow Asics, soon only huge farms will mining and will have the power on cryptos. With GPUs every person can buy and be part of the cryptos.