How "Proof of Work" works
Proof of Work is how cryptocurrencies maintain the integrity of the chain. Without proof of work you can rewrite the entire chain based on a certain point. However, building your own Proof of Work algorithm is surprisingly simple for a baseline algorithm.
Difficulty of the Algorithm
Typically the difficulty of the algorithm notates how many times a certain character has to appear in the hash. For example in Bitcoin's mining algorithm if it has a difficulty of 10. That means it needs to have 10 consecutive zeroes in the hash. The Proof of Work algorithm were going to implement is very similar to Bitcoin's PoW.
Hashing of a block
Before we can move forward we need to be able to hash the block. Here's some code to hash a block in Rust.
Proof of Work
Now here's a sample proof of work function that generates a hash that adheres to the difficulty level given with a nonce! Notice how we use a while loop to show if proof of the hash was found or not. Then once proof is found we break the loop.
The concept of proof of work is simple given the implementation I provided. However, making more elegant implementations like Ethereum's PoW algorithm is difficult to do and requires serious work in algorithmic implementation to achieve.