# 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.