This EIP modifies ethash in order to break ASIC miners specialized for the current ethash mining algorithm.
This EIP pursue "obsolete current ASIC miners" by modifying PoW algorithm in a very low risk manner and update to latest hash algorithm from deprecated FNV Hash algorithms.
Following TEthashV1 algorithm suggests safe transition of PoW algorithms and secure the FNV Algorithm in MIX Parts.
Provide original Ethash proof of work verification with minimal set of changes by updating FNV0 algorithm
In ETHASH, FNV Hash is used on
It is a simple way of hashing algorithm
When analysed FNV-0 , there's very weak avalanche effect, when hash input changes on 1~2bits. refer FNV-Analysis reference section
We need to research and apply newer FNV hash or short message hash algorithm.
Previous proposed algorithm based on FNV1 EIP-1355
There's an implementation that looks like "Missing Offset Bias" at FNV1A.
Quotation of original algorithm FNV1A
FNV_offset_basis and computation order change of xor and multiplication Makes one more xor and multiply computation, but more secure hash effects than FNV0. and make dispersion boundary condition (0, even number, ..) by using of Prime Number.
Consider real computation resources, in TEthashV1 uses hash byte_of_data to 4bytes aligned data.
In TETHashV1, Adapts fully follow the FNV1A implementation.
Following are reference implementation of FNV1A adapted in TETHashV1.
Another Byte aligned implementation of FNV1A , call to FNV1c
FNV Mix Algorithm Analysis for TEthashV1
You can compile it with simple in terminal. No additional library needs,
And You can execute it
F(00,01) : is input x,y
VEC(0, 1, ffffffff, 0) : is fnv_reduce input vector (a,b,c,d)
FNV :00000001, DF=00000001(01) DS(00000001) :
FNV(00,01) result is 00000001 ,DF : is changed bitcounts, compared with previous outputs, in this case prev[00,00] current[00,01] input is 1bit changed, and output result 1bit changed.DS : is distances of previous result and current result , ABS(prev_fnvresult,current_fnvresult).** Basically, DF is higher is best on hash algorithm.
F___RC=fefffe6d, DF:111e47a9(14) : fnv_reduce = fnv(fnv(fnv(a,b),c),d) result is fefffe6d , and Different Bits counts are 14 bits.
In case of ethash algorithm, it can't prevent ASIC forever.
And, current ethash algorithm's FNV function is deprecated.
So, It needs to be upgraded and it will make current ethash based ASICs obsolete.
And current TETHASHV1 FNV1A implementation is based on most of ethash , which is verified for a long time.
Another propose of big differencing the Ethash algorithm need to crypto analysis for a long times and need to GPU code optimization times.
Verification and Optimization timeline Examples
original ethminer (2015) -> claymore optimized miner (2016) [1year]
genoil ethminer (2015) -> ethereum-mining/ethminer (2017) [2year]
Tethash miner has 2~3% of hashrate degrade on GPU, due to more core computation time.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.