A cryptographic hash function is a special class of hash functions that has various properties making it ideal for cryptography. There are certain properties that a cryptographic hash function needs to have in order to be considered secure. Let’s run through them one by one.
Property 1: Deterministic
This means that no matter how many times you parse through a particular input through a hash function you will always get the same result. This is critical because if you get different hashes every single time it will be impossible to keep track of the input.
Property 2: Quick Computation
The hash function should be capable of returning the hash of input quickly. If the process isn’t fast enough then the system simply won’t be efficient.
Ethereum was proposed in 2013 by programmer Vitalik Buterin. Development was crowdfunded in 2014, and the network went live on 30 July 2015, with 72 million coins premined.
The Ethereum Virtual Machine (EVM) is Turing-complete, can execute scripts and run decentralized applications.
Ethereum is used for decentralized finance, and has been utilized for many initial coin offerings.
In 2016, a hacker exploited a flaw in a third-party project called The DAO and stole $50 million of Ether.As a result, the Ethereum community voted to hard fork the blockchain to reverse the theft and Ethereum Classic (ETC) continued as the original chain.
Ethereum has started implementing a series of upgrades called Ethereum 2.0, which includes a transition to proof of stake and an increase in transaction throughput using sharding.
To make it clearer that Ethereum uses KECCAK-256 instead of the NIST standardized SHA-3 hash function, Solidity 0.4.3 has introduced keccak256. (It is an alias to sha3, meaning that keccak256 produces identical results to sha3, but with the intent to avoid confusion, especially for developers new to Ethereum.) It's recommended that new code use keccak256 instead of sha3.