organofcorti

NPW 1

Feb 24th, 2012
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. [B]
  2.  
  3. 0. Introduction. [/B]
  4.  
  5. In the last three 'How to hop" posts ([url=http://hoppersden.info/entries/28-How-to-hop-10-Bitclockers.com-amp-spurious-round-lengths-part-1]How to hop 10 [/url], [url=http://hoppersden.info/entries/29-How-to-hop-11-Bitclockers.com-amp-spurious-round-lengths-part-2] How to hop 11[/url], and [url=http://hoppersden.info/entries/30-How-to-hop-12-Bitclockers.com-amp-spurious-round-lengths-part-3] How to hop 12[/url]) I proved that Bitclockers.com are not providing real statistics to their miners and gave some insight as to how this could be done. Since starting this project I've received some feedback which has made me decide not to continue with the posts I had originally planned.
  6.  
  7. It was #####link to Meni's comments on my thread#### brought to my attention that although I found some data correlations, I could not prove that Bitclockers.com were actually tranforming round lengths in a particular fashion. There is no doubt that their round lengths do not belong to a geometric distribution, but are they actually tranforming the real round lengths to that of another distribution? We can't tell. If they are not observing block boundaries, for example, they could simply be making up random numbers from a particular distribution and publishing those.
  8.  
  9. For readers who would like to look into this further, I've found some more distributions that correlate well with the empirical cdf (using the Kolmogorov-Smirnov test) to a p-value > 0.05. Below is a list of all I found to date, with parameters optimised by [url=http://stat.ethz.ch/R-manual/R-patched/library/MASS/html/fitdistr.html]fitdistr[/url]. If this doesn't interest you, scroll down to [B]1. Bitclockers.com makes everybody cry, not just pool hoppers.[/B]
  10.  
  11. [B]Normal distribution [/B](yes, there are parameters that work for a normal distribution - originally, I didn't find any)
  12. [code]
  13. > fitdistr(bitclData,'log-Normal')
  14. meanlog sdlog
  15. -0.0627 0.4085
  16. ( 0.0242) ( 0.0171)
  17. > ks.test(bitclData,'plnorm',-0.0627,0.4085)
  18.  
  19. One-sample Kolmogorov-Smirnov test
  20.  
  21. data: bitclData
  22. D = 0.0303, p-value = 0.955
  23. alternative hypothesis: two-sided
  24. [/code]
  25.  
  26. [B]Loglogistic distribution:[/B]
  27. [code]
  28. > fitdistr(bitclData, dllogis, list(shape = 1, rate = 0.1), lower = 0.001)
  29. shape rate
  30. 4.3110 1.0653
  31. (0.2114) (0.0255)
  32.  
  33. > ks.test(bitclData,pllogis, 4.3110 ,scale=1/1.0653)
  34.  
  35. One-sample Kolmogorov-Smirnov test
  36.  
  37. data: aa
  38. D = 0.0389, p-value = 0.7785
  39. alternative hypothesis: two-sided
  40. [/code]
  41.  
  42. [B]Gamma distribution:[/B]
  43. [code]
  44. > fitdistr(bitclData, dgamma, list(shape = 1, rate = 0.1), lower = 0.001)
  45. shape rate
  46. 6.080 5.949
  47. (0.495) (0.505)
  48.  
  49. > ks.test(bitclData,pgamma,6.080,5.949 )
  50.  
  51. One-sample Kolmogorov-Smirnov test
  52.  
  53. data: aa
  54. D = 0.04, p-value = 0.7507
  55. alternative hypothesis: two-sided
  56.  
  57. [/code]
  58.  
  59. [B]Weibull distribution:[/B]
  60. [code]
  61. > fitdistr(bitclData, dweibull, list(shape = 1, scale = 0.1), lower = 0.001)
  62. shape scale
  63. 2.3804 1.1539
  64. (0.0982) (0.0304)
  65.  
  66. > ks.test(bitclData,pweibull,2.3804,scale=1.1539 )
  67.  
  68. One-sample Kolmogorov-Smirnov test
  69.  
  70. data: aa
  71. D = 0.0758, p-value = 0.07495
  72. alternative hypothesis: two-sided
  73. [/code]
  74.  
  75. [B]1. Bitclockers.com makes everybody cry, not just pool hoppers.[/B]
  76.  
  77. A second concern that made me decide not to continue posting my results on the 'How to hop' blog was that some people thought that the posts were for strategic miners only. So this post is devoted to explaining why no miners - fulltime or strategic - should mine at Bitclockers.com.
  78.  
  79. Rather than further investigate exactly how Bitclockers are transforming round lengths, I'm going to look at only the empirical data and what it tells us about how they are treating their miners.
  80.  
  81. The effect of their fake round lengths on miners earnings can be considered two ways:
  82. [LIST=1]
  83. [*] When block boundaries are observed, and solved blocks reported correctly, and
  84. [*] When block boundaries are ignored and block solve times are false.[/LIST]
  85.  
  86. Since Bitclockers.com pool op V2-V3 has stated recently #####link to bitclockers thread#### that they report found blocks reliably (just delayed to minimise pool hopping profits) we will only consider case 1.
  87.  
  88. [B]2. "All these boundaries .... are set by Bitclockers.com. But you don't have to look at boundaries when you are looking at .... the character of Bitclockers.com.[/B]
  89. (Apologies to [url=http://en.wikipedia.org/wiki/Hakeem_Olajuwon]Hakeem Olajuwon[/url] )
  90.  
  91. When block boundaries are observed we can prove that Bitclockers.com are underpaying their miners by 21%, just using the available empirical data.
  92.  
  93. The requirement that block solve times are reported accurately means there must be a transform function of some sort being used or Bitclockers.com would
  94.  
  95. [LIST]
  96. [*] Increase variance for themselves and hence pool operator risk, and
  97. [*] Make that hashrate per round impossible to fake.
  98. [/LIST]
  99.  
  100. How is share value affected by this? If the actual number of shares in a round was less than the reported amount, each share will be worth less. If the actual number of shares in a round is greater than the reported amount, then each share will be worth more. How can we work out what the average share value is?
  101.  
  102. Firstly, we need to generate the geometrically distributed data. We can do this by using the empirical cumulative distribution function:
  103. [code]
  104. ecdf = n/max(n) where 'n' is the nth datapoint in a set of data ordered by size
  105. [/code]
  106.  
  107. and then using the quantile function for a geometric distribution.
  108.  
  109. The data I'm using is Bitclockers rounds 179 to round 504 ([url=http://hoppersden.info/entries/28-How-to-hop-10-Bitclockers.com-amp-spurious-round-lengths-part-1]How to hop 10 [/url] explains why). The bitclockers.com roundlength/D and quantile transform are here if you want to try this for yourself.
  110.  
  111. #####link to pastebin#####
  112.  
  113. Data comparison:
  114. ####chart1: plot and boxplot of bitclockers.com, quantile#####
  115.  
  116. The ecdf for the quantile generated rounds are very different from the ecdf of the Bitclockers .com rounds:
  117. ####chart2: ecdf bitcl & qgeom#####
  118.  
  119. Now we can compare the expected share values for a fulltime miner for the geometric and Bitclockers.com round lengths. If the amount of shares a miner contributes to any round is S, the total round length is R, the bitcoin reward is B and current difficulty is D, then:
  120.  
  121. [code]
  122. miner reward = S/R*B/D
  123. [/code]
  124.  
  125. However, if R is varied, the reward will be changed - more shares mean a smaller reward for a miner, fewer shares means a smaller reward. If we compare round lengths of the geometric and and Bitclockers.com rounds by equating the ecdfs, then the mean percentage change in reward is:
  126. [code]
  127. mean % change in reward = mean((S/R2*B/D)/(S/R1*B/D))*100 = mean(R1/R2)*100
  128.  
  129. where R1 = total number of shares in a geometrically distributed round
  130. R2 = total number of shares in a Bitclockers.com reported round.[/code]
  131.  
  132. So average ratio of bitclocker.com share value to geometrically distributed share ration is:
  133. [code]
  134. mean(R1/R2)*100 = 79%
  135. [/code]
  136.  
  137. This means that if Bitclockers.com are reporting block solve times accurately, they are underpaying their miners by about 20%. Since they have claimed they actually are reporting round lengths correctly, the only conclusion we can draw is that fulltime miners at Bitclockers.com are being only 80% of what they should be paid..
  138.  
  139. [B]3. Who the hell knows what's going on anyway?[/B]
  140.  
  141. What other issues can arise if you can't trust a pools' published statistics? Any you can imagine, really. (Note that I'm not including pools that delay statistics here, just pools that provide false information).
  142.  
  143. If you don't know anything about the actual rounds you have submitted shares to, you cannot know if you are being adequately compensated (unless you're being paid PPS and you keep track of your own submitted shares).
  144.  
  145. The only way you can tell if you are getting close to what you should be paid is to keep track of all shares you submit, the difficulty they were submitted at, and your remuneration, and only over many rounds - by which point you may already have been underpaid for that many rounds.
  146.  
  147. So here's my first rule in choosing a mining pool:
  148.  
  149. [B]organofcorti's first rule of mining : Do not mine at a pool that publishes false statistics.[/B]
  150.  
  151. A corollary of this is:
  152.  
  153. [B]Do not mine at Bitclockers.com until they start publishing accurate round length statistics.[/B]
  154.  
  155. I hope to continue the Neighbourhood Pool Watch series. If you think a pool you use is up to some funny business, let me know at the Neighbourhood Pool Watch bitcointalk.org thread, or if you're a hoppersden.info member, comment here.
Advertisement
Add Comment
Please, Sign In to add comment