Guest User

Untitled

a guest
Nov 4th, 2013
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.84 KB | None | 0 0
  1. #!/usr/bin/python
  2. from random import random
  3.  
  4. # btc_el33t.py
  5. # Dan Kaminsky, [email protected]
  6.  
  7. # simple numerical sim of @el33th4xor Bitcoin attack
  8. # No conclusions should be drawn, except that it's
  9. # _really_ sensitive to whether you can always win
  10. # the race with the public pool.
  11.  
  12.  
  13. pubpool = 0.66666
  14. privpool = 0.33333
  15. chance_of_losing_race = 0
  16. prev  = 0
  17. r =0
  18. pubbtc = 0
  19. privbtc = 0
  20.  
  21. # honest
  22. if 0:
  23.   while r<10000:
  24.     print r, pubbtc, privbtc
  25.     if random() < privpool:
  26.         privbtc += 1
  27.     else:
  28.         if random() < pubpool:
  29.             pubbtc  += 1
  30.     r+=1
  31.  
  32. # dishonest
  33. if 1:
  34.   while r<10000:
  35.     print r, pubbtc, privbtc, prev
  36.     if random() < privpool:
  37.         prev += 1
  38.     if random() < pubpool:
  39.         if prev==0:
  40.             pubbtc  += 1
  41.         if prev>0:
  42.             if random() > chance_of_losing_race:
  43.                 privbtc += 1
  44.             else:
  45.                 pubbtc  += 1
  46.             prev-=1
  47.     r+=1
Advertisement
Add Comment
Please, Sign In to add comment