diff --git a/pow.md b/pow.md index 473a0f4..44ad13e 100644 --- a/pow.md +++ b/pow.md @@ -0,0 +1,18 @@ +# The three pillars of PoW +## Asymmetry +Easy to verify, hard to compute +## Puzzle/Challenge +Have to solve a very challenging(computationally) problem +## Nonce +A value used to vary inputs until the puzzle solution meets a requirement. + +# Common Puzzles/Challenges for PoW ++ Bitcoin's SHA256: +Find a nonce such that ```hash(block + nonce)``` starts with a specific number of zeros. +This is usually only used for blockchains, hence there is the block. However, this could be used for other applications as well. + ++ ProgPoW: +Heavily GPU and CPU intensive, as it creates a psuedo-random program that does several seemingly random operations using the nonce to generate a number that one can "mine" in order to get. + ++ RandomX (Used by Monero) +Is heavily CPU-dependent, as it doesn't translate onto the GPU that well, and it works by using Just-In-Time(JIT) to create another psuedo-random program that can be mined as well. However, this uses all kinds of operations, like floating point, AES, and memory loads.