notes

Personal notes
git clone git://git.laack.co/notes.git
Log | Files | Refs

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