Not just a replica, in 2017 when we have started to engaging in the blockchain market, BC.Game accidentally discovered Bustabit, similar to our originally-created H5 game in 2015 —train crash, followed by a purchase authorization from Bustabit to hash.game with our strong determination on developing games in crypto world.
I'm pointing out the provably-fair scheme was taken from bustabit. I would know, because I am the person who created it
(Originally bustabit used to just be "provably predetermined" but I wrote the code to make it provably fair).
So, does this help us reach a conclusion? While some strategies are good, some are not. We don’t believe that there is any best seed choice to affect the result.
The seed choice *absolutely* makes a difference, and it can be quite large. Let's say you randomly generate a seed, and generate a hash chain. We can reason pretty easily that the house edge should be 1%. However, it might be a lot lower (lets say there are lots of low multipliers, it's good for the site) and it might be a lot higher (if there's lots of high multipliers, it's good for players). But the house edge only looks at "average", so it doesn't matter and we can say the house edge is 1%.
However that analysis is based around the idea of a random seed. To make it easy to demonstrate, I'm going to generate 3 hash chains, of length 5:
Chain A: seed=680597CDC84B239A1C0475C89E0CC5380B1DDF367772C8F3055742C6ACB2C3FF
Result: 4.63, 2.36, 1.22, 2.225, 2.56
Chain B: seed=6AA9D8D8BD428C4277F613E74AC1AAE2A81EAF7DAF24C4D459FA030AA63C03D5
Result: 1.04, 1.00, 1.07, 1.28, 1.02
Chain C: seed=60CC3C97D3C80396437AF43F3AAC84A460EF2EBA88E79C2D4AC1218DD1923002
Result: 1.76, 2.43, 15.27, 3.55, 1.09
Now from this, we can *clearly* see that B would be the best for the house. Of course the longer the game runs, the less the statistical differences are -- but for the few *years* of games, the house edge can easily have been manipulated to 2x what they should be. The cheating can easily be done with an algorithm:
bestSeed = randomSeed();
bestResult = rank(bestSeed)
while (true) {
const seed = randomSeed();
const r = rank(seed);
if (r < bestResult) {
console.log("Found new best seed: ", seed, " with rank: ", r);
bestSeed = seed;
bestResult = r;
}
}
Where the rank function can be as simple as computing the median of the first few million hashes.
Maybe you want to say that increasing the probability of the result lower than 2x on purpose by the website is to earn more. But this is not guaranteed in some strategies. Even with huge amount of data analysis, you will find that the result lower that 2x is not in high percentage, even less than 0.5%. Greater data provides a result closer to the theoretical. In addition, 10-million data need 10 years to run out. There is no assurance at all when the data distributed each day, week, month and year.
To sum up, no matter which hash seed you are using, it’s a fair game on the grounds that we never know what strategy the player will choose.
It doesn't matter how players are betting, you don't need to know before hand. Even if someone knew for a fact you purposely picked a hash-chain with an abnormal amount of low-crashes, it's impossible for anyone to cheat. It purely increases the house edge.
We also welcome more specific analysis with data and algorithm worth 100ETH. You can run any test on GitHub. But opinion in one sentence is not enough.
I hope I've made my point clear:
*) The choice of seed (exclusively) determines the game-crashes in your system
*) The differences between a good-chain and bad-chain are very significant (on my laptop, in a few minutes I am able to double-the house edge for 1 year worth of hashes).
*) We have no way of knowing if you fairly picked a seed or not
The only advantage of seed choice is easier understanding for beginners; there is no effect on the fairness of the game. We are trying to use EOS+BTC seeds choices recently for players to make the seeds of this game more decentralized.
The best solution is to do what bustabit has done, use a *future* bitcoin-block hash as an additional seed (after committing to a single chain). This makes it impossible for you to run the "brute force" attack to pick a seed that is favorable to the house.
If you're interested in more information:
https://medium.com/@nekoz/generating-a-provably-fair-crash-point-8d502058e8bcBut because we don't know if you picked the seed fairly, your provably fair system isn't actually provably fair.