ProofOfWork.md (1747B)
1 # Proof of Work 2 3 **Source:** MIT MAS.S62 Cryptocurrency Engineering and Design L2 4 5 **Definition:** Proof of work is an approach to achieving distributed consensus using work as a form of identity to defend against [Sybil attacks](SybilAttack.md). 6 7 ## Characteristics 8 9 - Time consuming 10 - Deterministic verification 11 - Scalable 12 - Constant time verification 13 - Memoryless 14 - Proof of work must not be progress-based because the fastest person will always win then 15 - We want a node to win at a rate proportional to its work relative to the entire network. 16 17 ## Examples 18 19 ### Hash Cash (1997) 20 21 One posited solution for email spam was to require email senders to add a special X-Hashcash header that followed a specific format including date, resource, bits, and some additional information. The final portion of the heder is the 'counter' field which is a random base-64 formatted number which is used to satisfy the expectation that the hash of the entire header must have some number of 0's as its prefix. 22 23 ### Bitcoin 24 25 Bitcoin uses proof-of-work to minimize the likelihood of sybil attacks and to achieve consensus about the order transactions occurred in. This allows PoW to solve the double spend problem. 26 27 ## Pros 28 29 - Anonymous 30 - No signatures involved 31 - Memoryless 32 - Every attempt is equally likely 33 - No progress! 34 - Poisson process 35 - Scalable 36 - Very easy to verify a certificate 37 - Non-interactive 38 - Never have to report failed attempts 39 - Uses real world resources 40 - It is costly to go back and rewrite history 41 - Easy to vary difficulty 42 43 ## Cons 44 45 - Computationally costly 46 - Negatively impacts hardware markets 47 - Irregular block minting 48 - Impacts guarantees about when transactions will clear 49 - 51% attacks