Pages

Thursday, 8 March 2012

1.5 Bitclockers.com summary


0. Introduction

There's been some confusion about exactly what is proven in regards to Bitclockers.com so I'm providing a summary on results so far with some results corrected.

My proofs  can be divided into three categories:

  1. Provable claim requiring no assumptions
  2. Provable claim requiring one assumption
  3. Claims that can't be proven but are likely on the balance of probabilities.

1. Provable claim requiring no assumptions
If Bitclockers.com are lying to their miners about when blocks are solved but not if blocks are solved then in this case, they are faithfully recording all shares submitted and changing block lengths to suit themselves. In this case it is simple to show empirically that strategic miners are being underpaid. Keep in mind that they claim to be a proportional pool. Strategic miners at a proportional pool can expect a certain return on their shares. If they don't receive the expected amount over time, then the pool is not paying out proportionally.

Their "About us" page doesn't mention anything about "hopping protection", just that the pool is a proportional pool. From their website:
"The miners complete their shares and return the work back to the BitClockers Pool Server. The Pool then checks to make sure that the work is valid and credits the miner for its work. Once the entire block is finished the Pool looks at everyone's share of the work and gives out 49 Bitcoins proportionally."
Neither did their threads here, or on their forum (as far as I can tell) mention this until I posted How to hop 10. If strategic miners have been underpaid, then they have been lying to make extra money. Whether or not they redistribute that extra money to other miners is a moot point - if we can prove that some miners are targeted for underpayment with no obvious warning, then we can show that they lied for extra money. 

We can investigate expected payout per round for Bitclockers.com compared to a real proportional pool to show that they are underpaying strategic miners without relying on a particular transform.

The graphs below show how the expected share values and expected earnings vary for bitclockers.com and an actual proportional pool. This data is based on the round lengths published for rounds 180 to 505. The top graph I've published before. The lower graph shows the expected amount a miner can earn by leaving a pool at a particular number of shares. As can be clearly seen, if a strategic miner leaves Bitclockers.com at 0.43xD (the point at which the expected share value drops to zero on a proportional pool) the strategic miner will earn about 0.6 less than expected. So for every 111 btc a strategic miner earns, he or she should have earned 170 btc (not including real world inefficiencies).

Bitclockers.com agreed to pay a certain amount to miners, and then did not pay them that amount.

2. Provable claim requiring one assumption
If Bitclockers.com are not lying to their miners about when blocks are solved or if blocks are solved, then we can prove that Bitclockers.com are underpaying all their miners by 21%, just using the available empirical data.

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 

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?

Firstly, we need to generate the geometrically distributed data. We can do this by using the empirical cumulative distribution function:
ecdf = n/max(n) where 'n' is the nth datapoint in a set of data ordered by size
and then using the quantile function for a geometric distribution.

The data I'm using is Bitclockers rounds 180 to round 505.

Data comparison:

The ecdf for the quantile generated rounds are very different from the ecdf of the Bitclockers .com rounds:

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:
miner reward = S/R*B/D
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:
mean % change in reward = mean((S/R2*B/D)/(S/R1*B/D))*100 = mean(R1/R2)*100
where   R1 = total number of shares in a geometrically distributed round
R2 = total number of shares in a Bitclockers.com reported round.
So average ratio of bitclocker.com share value to geometrically distributed share ration is:
mean(R1/R2)*100 = 79%
This means that if Bitclockers.com are reporting block solve times accurately, they are underpaying their miners by about 21%. 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 receiving only 79% of what they should be paid. Who's to know how long they have been doing this?

3. Claims that can't be proven but are likely.
If Bitclockers.com are lying to their miners about if and when blocks are solved, not only are they not paying strategic miners their expected reward, Bitclockers.com may be withholding btc from all miners, for example from the very short rounds that they don't report. The possibility can be assessed fairly simply by examining the distribution of means for Bitclockers.com using the Central Limit Theorum.

Firstly, what does this bitclockers.com data say? The Bitclockers.com mean round length for rounds 180 to 505 is 1.0281. It took 325*1.0281=334.1 rounds of shares to generate 325 bitcoin rewards. That means that they could have taken 455 btc and we'd be none the wiser.

The Central Limit Theorum (CLT) states the distribution of sample means will be approximately normal as long as the sample size is large enough. This means we can easily determine whether a) the mean roundlength/D for bitclockers.com is likely if the population mean is assumed to be 1xD, and conversely b) whether a sample mean of 1xD is likely if the population mean is assumed to be the current bitclockers.com sample mean. In actual fact, since we are considering two normal distributions with the same standard deviation but different means, these two cases are equivalent but we will consider them separately for clarity.
population mean=sample meanpopulation standard deviation (sd) = sample sd / sqrt(number of variables in sample, n)
So for Bitclockers.com:
population mean = Dsample mean = 1.0281sample sd = 0.45278n=325so population sd= 0.45278/sqrt(325) = 0.02512
Now we can use normal distribution tables or software functions to calculate the probability of both cases occurring. In each case, the expected probability should be 0.5, or the event occurring in every 2 sets of 325 rounds.

Case 3a:
What is the probability of a mean round length of at least 1.0281xD occurring if the expected or population mean is 1xD?
> pnorm(1.0281,1, 0.02512,lower.tail=F)[1] 0.1316489
This result mean that the likelihood of case a occurring is once in 7.6 sets of 325 rounds.

Case 3b:
What is the probability of a mean round length of at most 1xD occurring if the expected or population mean is 1.0281xD?
> pnorm(1,1.0281, 0.02512,lower.tail=T)[1] 0.1316489

This result mean that the likelihood of case a occurring is again once in 7.6 sets of 325 rounds. While this might not seem a large difference, consider that this is more than three times less likely than the expected difference for a sample size of 325.

So Bitclockers.com's very method of generating their fake data - whatever it is - is quite likely to make the round length mean to be greater than D. If the Bitclockers.com pool operators have been keeping short rounds for themselves, this could amount to:
325x(1.0281-1)x50 = 456.625 btc
Rounds 180 to 505 are Sept 22nd to Feb 17th. So that's an extra bonus to the pool ops of more than 90 btc/month. This is a 2.81% addition to the 2% tax (about 65 btc/month), bringing it to a 4.81% tax overall. Would miners still mine there if they though they were being taxed extra?

4. In conclusion
Case 1 is proven correct: By their own description of their payout method, Bitclockers.com is underpaying some miners and stealthily redistributing it to others.

Case 2 is only proven correct if the Bitclockers.com pool operators were being truthful when they stated that they reported blocks found as they occurred. Since they have recently been linking solved blocks to block explorer, this has become much more likely.

Case 3 is certainly possible, and on the balance of probabilities, even likely. If it is the case, all miners lose an additional 2.81% on top of the acknowledged 2% tax.
In conclusion, any time a pool does not disclose round statistics, it is too easy to 'fudge' the books and pay miners less than expected.





Donations help give me the time to investigate pools and write these posts. If you enjoy or find them helpful, please consider a small bitcoin donation:

12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r

No comments:

Post a Comment

Comments are switched off until the current spam storm ends.