To English ::
Amendment : FNV detail explanation and EIP-1485 PR info
TethashV1 has upgraded FNV Hash to FNV1a Hash in MIX Parts of Ethash , It is also used generate DAG.
Current ethash base algorithm is FNV0 hash, it is depricated.
You can refer ETHASH blockdiagram here :: https://steemit.com/kr/@dongsamb/ethereum-pow-ethash , <Korea Ethereum Research Community>
And , Some other Anti Asic EIP proposal saying that they use FNV1A , exactly they not using official Offset Value in FNV1A spec.
that’s wrong.
In Cryptography theory, FNV1V Offset Value is longer term verified prime number they use.
Primenumber is very important number set , which most important in cryptoanalysis and cryptography.
In ethash,
first Keccak hash and output value is random number, so, they claim that it is same as offset,
It has very critical error on their claim, in crypto graphy.
Because All random number is not all primenumber, and possibilities very low.
Thus, given PrimeNumber using is best way of enhancing hash algorithm security.
In case of TethashV1, adapt original FNV1A hash algorithm, apply to TethashV1 , implemented nested double multiplication,
It cause 3~5% lower hash value compared than ethash.
But, It more fair hash computation efficiency CPU, GPU, ASIC(FPGA).
Multiplication HW Logic is very conventional and very longer term optimized from the beginning of microprocessor.
If same hw design condition, it is depend of hw core clock.
It means, most of CPU has over 3Ghz clock , GPU core has around 1.5Ghz , ASIC (FPGA) is around 0.7Ghz ~ 0.3Ghz .
Efficiency of Multiplication Logic is CPU >> GPU >> ASIC Miner(FPGA)
“>>” means 10x greater than .
But, In case of Keccak algorithm, conventional cryptography algorithm (eg, SHA256, Blake, groestl,…) is
1core performance : 500Mhz ASIC(FPGA) > 1.5Ghz GPU >> 3.2 Ghz CPU
In case of CPU Minable MONERO (CryptoNote - Variants) hash uses basic cryptohash algorithm is AES , it is Global Standard algorithm and
It is applied most of Processor has included HW block.
If it used in Monero mining, CPU based machine also get more higher hash , compared than non standard hash algorithm.
FNV Details.
EIP-1485 PR url :
https://ethereum-magicians.org/t/anti-eth-asic-mining-eip-1485-pr/1807
EIP-1485 PR :
https://github.com/ethereum/EIPs/blob/7336cceac6c997252299a463ffe896a3414c479b/EIPS/eip-1485.md
FNV-0 : (depricated)
hash = 0
for each byte_of_data to be hashed
hash = hash × FNV_prime
hash = hash XOR octet_of_data
return hash
It is implemented in “C” programming language
fnv(x,y) ((x * fnvprime) ^ y)
FNV1A pseudo code is
hash = FNV_offset_basis
for each byte_of_data to be hashed
hash = hash XOR byte_of_data
hash = hash × FNV_prime
return hash
implemented in “C” fnv1a(x,y) , data alignment condition with 4Bytes.
fnv1a(x,y) ( ((offset ^ x ) * fnvprime) ^ y) * fnvprime )
And, more crypto analysis of Avalanche effect comparison is linked here ::
https://github.com/tao-foundation/FNV-Analysis