Whether you’re just entering the cryptocurrency world, or you’ve been in it for years, I’m sure you’ve heard of Ethereum.
This decentralized open-source technology is responsible for the creation of Ether (ETH), the second most popular crypto coin in the world. The Ethereum protocol powers thousands of blockchain applications.
If you’re interested in the more technical side of Ethereum you may wonder, what is the Ethereum algorithm and how does it work?
Well, Ethereum is a memory-hard algorithm. This means that it needs to read from local memory. Its reading latency will differ depending on the kind of memory used to store a Directed Acyclic Graph (a.k.a. DAG).
A DAG is simply a data structuring tool to record transactions. If a blockchain is made from blocks, DAGs are made from vertices and edges, making the system look more like a graph instead of a chain.
So, here’s how it works:
- The algorithm requires to generate a DAG on each Epoch
- With each Epoch, a block number will be generated
- The block number will provide info to define the size of the DAG
As of today, the size of the DAG is around 5 gigabytes (5GB). It will continue to grow as the Epoch number increases.
Main Algorithm Steps
Here are the main steps of the Ethereum Algorithm:
Keccak sha3 512
//Main rounds iterate over 64 times
for( access_count = 0; access_count < 64; access_count++){
Read from memory 128 bytes
fnv_hash function
}
Compression mix function
Sha3 256 hash function
I hope this blog post has been helpful for you and that you now have gained some insight into the functioning of the Ethereum Algorithm. If you need help with your FPGA project, feel free to review the FPGA design and development services that we offer.