Evolutionary algorithm in mining function?

eaglgenes101eaglgenes101 Member Posts: 43
edited September 2014 in Mining
Here's a suggestion that might help Ethereum be even more resilient against FPGAs and ASIC's: evolutionary algorithms.

Basically, instead of one mining function, Ethereum should have 20 or so, and have a separate difficulty for each one. However, after adjusting the difficulties and function for each mining function, Ethereum evaluates each mining function with a model of a computer. This model estimates how efficient a computer with a CPU and/or a GPU would have to be to break even with the mining function, given the current difficulties, and the ones that would require the most efficient computers are booted out and replaced with random functions or mutated copies of the best known functions.

So what does this achieve? This stabilizes the difficulty: With the current planned mining function, if by coincidence the mining function reduces to SHA-3, then all the folks with SHA-3 FPGA's can rush in and create a difficulty spike. However, if a mining function is weak (not exactly SHA-3, but closer than usual to SHA-3) in such a evolutionary multi-function mining scheme, serendipitous miners will identify the weak function and exploit it for all it's worth before it completely blocks up mining for those with general-purpose hardware. And in general, having multiple functions stabilizes difficulty by allowing miners to move to a different function if one function is suddenly difficulty-spiked by some mining optimization.


  • StephanTualStephanTual London, EnglandMember, Moderator Posts: 1,282 mod
    edited September 2014
    We don't have 'a single mining' function.

    We are currently evaluating a hybrid Slasher/TaPoS model, if it proves unworkable we might use a PoW leveraging randomized hash functions every thousand nonces.
  • eaglgenes101eaglgenes101 Member Posts: 43
    Yes, I know. I know that both PoW and PoS are being considered, and that the mining function is planned to be randomized. The idea behind my suggestion is, rather than having one PoW function that is randomized every so often, we should have multiple PoW functions, each of which changes somewhat, and are culled periodically to ensure the PoW functions can be done with general purpose hardware.
Sign In or Register to comment.