It looks like you're new here. If you want to get involved, click one of these buttons!

- 17.3K All Categories
- 9.5K Mining
- 573 Pool Discussion
- 376 Promotional
- 1.4K General Project Discussion (non-technical)
- 485 Education
- 810 Protocol and Client discussion
- 169 web3-js
- 29 Whisper
- 16 Swarm
- 3 RLP
- 303 IoT & Hardware
- 1.2K Smart Contracts and Dapps
- 28 Serpent
- 359 Solidity
- 664 Projects
- 1.2K Reference clients code and builds
- 249 Eth & AlethZero- Cpp Implementation
- 471 Geth - Go Implementation
- 242 Mist
- 15 Node.js Implementation
- 36 Python Implementation
- 49 Mix
- 36 Other Implementations
- 170 Meetups
- 40 Other Events
- 225 Jobs & Skills
- 281 Press and Articles
- 75 Audio/Video
- 296 Ether Sale
- 1.2K Other Languages
- 96 Chinese
- 255 German
- 33 Italian
- 111 French
- 3 Hebrew
- 42 Japanese
- 75 Portugese
- 46 Romanian
- 184 Russian
- 230 Spanish
- 47 Turkish
- 125 Watercooler

eaglgenes101
Member Posts: **43** ✭

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.

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.

## Comments

1,282modWe are currently evaluating a hybrid Slasher/TaPoS model, if it proves unworkable we might use a PoW leveraging randomized hash functions every thousand nonces.

43✭