Advertisement
Guest User

How Much Network Skew is Needed?

a guest
Oct 29th, 2014
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. The attack works from having ~20% of the mining happening on a chain that's not likely to succeed, while 80% of the mining happens on a chain that is likely to succeed. (and you are on that chain).
  2.  
  3. When you announce a block with a in-future timestamp, some portion of the miners will start to mine on it, and the number of miners mining on your block will increase with time as the present time approaches your timestamp. The mining power going towards your chain will follow some graph G, example below:
  4.  
  5. x = % mining power on your block
  6. T = number of seconds
  7. T = 300 - 3x (an example network skew)
  8.  
  9. ie:
  10.  
  11. T = 0s: 100% mining on child block
  12. T = 30s: 90% mine on block
  13. T = 60s: 80% mine on block
  14. T = 90s: 70% mine on block...
  15. and so on, 300s = 0% mining on child block.
  16.  
  17. Following this graph, the total volume of mining that happens on the child chain is:
  18. integral(300 - 3x) from x=100 to x = 0
  19. = 15,000% * seconds = 150 seconds of network mining at full capacity, which is about 1/4 of the expected number of hashes to find a block. In the other model we had the child getting about 1/5 of the expected number of hashes needed to find a block.
  20.  
  21. So instead of dropping with timestamp where immediately 0% are mining, you'd drop a time stamp where immediately ~10% are mining, which puts the expected amount of work at 12000%, or 120 seconds, which is 20% of the hashing power needed to find a block.
  22.  
  23. THUS: when you launch a block into a network with linear skew of 5 minutes, and immediately ~10% are mining on the block, with 10% more jumping on every 30 seconds, you get an expected 20% of the required hashes mining on a child block, which means the expected amount of wasted hashes is still 20% of what is needed to find a block. The expected amount of wasted hashing is equivalent to what was stated in the other model.
  24.  
  25. If the network is following a different graph, perhaps an S curve instead of a line, the calculations change. You just need enough skew on the network that the total amount of hashing put towards the child block is 20% of what is needed to find a block. Under other distributions, a total skew of 5 minutes may or may not be enough. An S curve is probably less friendly to this attack than a line. If the total skew is only 60 seconds and follows a line, there's not enough skew to get the child block all the way up to 20% wasted mining, but nonetheless a more trivial amount of wasted mining could be introduced into the network.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement