Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2016
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.30 KB | None | 0 0
  1. This whole m0e and CS:GO Diamonds thing got my panties in a knot .. For the record, I despise all forms of skin gambling, even more so when the sites are shady af.. I'll try and do an ELI5 explanation of how it works and why it's not fair.
  2.  
  3. The problem with CS:GO Diamonds is that their system is NOT fair, even though they claim it is (applies to CS:GO Double as well, might touch on that at the end). In my opinion, there should be a huge backlash from the community because the system is essentially rigged, yet the complexity for most people deters them from analyzing the situation. The reason why it's not fair, is because they can generate all future rolls but still using a provably fair system to do so.
  4.  
  5. So... What??..
  6.  
  7. Various techniques/methods/formulas/algorithms are used to generate "random" values and they require a *seed* - something to fuel the formulas behind random number generation.
  8.  
  9. You can think of this like an equation you had to solve in school, like `1 + x = y`. We'll use this equation as a simplistic "random number generator". In and of itself, the equation is useless and cannot be used to figure out a valid outcome (generate a random number). You have to feed something for the unknown `x` in order to get the result `y`. In random number generation, the `x` is referred to as a *seed*, and `y` is the output - a generated random number. Once you replace the `x` with a valid value, the equation is solved and you get an answer. So if our seed `x` was `3`, the equation would be `1 + 3 = y`, resulting in `y = 4`.
  10.  
  11. So that's basically how number generators work in a nutshell. The 2 things to take away are:
  12.  
  13. 1. You have to specify a *seed* every time you want to generate an output,
  14. 2. If you specify the same *seed* (in our case `x`), you'll always get the same result.
  15.  
  16. So..
  17.  
  18. If you and I were playing a game, let's say flipping a coin, and we're using the simple equation as a random number generator. We define our rules, that if the randomly generated number is even (2, 4, 6..) the result is heads, and if the number is odd (1, 3, 5 ..) the result is tails. What we have to do is create a seed every time we're playing our game.
  19.  
  20. Now, if one of us is in charge of generating the seed, you can probably see that there can be some foul play involved. If I pick heads, I can try plugging in numbers into our equation and see if the randomly generated number is even. So I keep guessing quietly until I get my desired outcome:
  21.  
  22. x = 2
  23. 1 + 2 = 3 <- odd, no good for me
  24.  
  25. x = 6
  26. 1 + 6 = 7 <- odd, no good for me
  27.  
  28. x = 9
  29. 1 + 9 = 10 <- even, ding ding ding I win!
  30.  
  31. Afterwards, I can just claim that the *seed* was randomly chosen. And if I have a list of all the future seeds we'll be using, I have full knowledge of all of the future outcomes. Doesn't sound fair right? So how do we solve this so we both don't know what the outcome is?
  32.  
  33. What we can do, is combine random numbers from all parties. You and I secretly pick a random number each, I pick `4` and you pick `7`. Once both of us have picked a random number we reveal our numbers to each other. We then join those numbers together (let's say add them, `4 + 7 = 11`) and pass that result into our number generator as a *seed* (`1 + 11 = 12`). That means that we *both* contributed to creating the *seed* without knowing what the other person chose, resulting in a fair system and a fair result.
  34.  
  35. Still with me?
  36.  
  37. This method is used on CS:GO Diamonds, however the system is only fair if neither of us knows what number the other one chose.
  38.  
  39. CS:GO Diamonds pick their own seed (their own random number) that will be used future games. You get assigned a seed as well (although you have the option of changing it whenever you want) that will also be used for future games. Now, since CS:GO Diamonds are in charge of generating a random outcome, you must send your seed to them in order for them to join their seed with yours. So, that means they know your seed, but you don't know theirs. Remember when I said the system is only fair if neither party knows each others random numbers?
  40.  
  41. To combat this issue, another random number is used called *nonce*. By definition it's a one time use random number that's combined with the other 2 seeds (yours and theirs) to insure that neither party can manipulate the outcome. Sounds fair? It is.
  42.  
  43. However, CS:GO Diamonds use predetermined *nonce* values when they should be actually generated by **you** randomly each roll. The *nonce* they use, is the number of rolls you've made with your current seed. That means, that they know **every** required seed or number that will be used in current AND future games:
  44.  
  45. 1. They know their seed (duh)
  46. 2. They know your seed
  47. 3. They know all future *nonce* values
  48.  
  49. The results of this - to create the `x` value for our equation, your number, their number and the nonce have to be combined. Let's use the same numbers as we did before, so their seed is `4`, your seed is `7`. So our equation is `1 + (4 + 7) = y` They know both of these numbers - not fair. The *nonce* value is then introduced that should keep everything fair, but since it's just a number of rolls you've made, all they have to do is plug that number in and get all of the future rolls:
  50.  
  51. 1 + (4 + 7 + 1) = 13
  52. ^
  53. |____ the nonce value
  54.  
  55. 1 + (4 + 7 + 2) = 14
  56. 1 + (4 + 7 + 3) = 15
  57. ...
  58. 1 + (4 + 7 + nonce) = y
  59.  
  60. That means, that they know **all** future outcomes for everyone at anytime.
  61.  
  62. By definition, this **cannot be considered fair**. Client and server seeds must be random each time and the nonce value has to be provided by the client each time as well. Both parties should exchange their seeds every roll, both calculate the outcome and compare if the outcome is the same on both ends. If so - congrats, we have a fair roll. If not - try again. And every roll should require a different random seed from both sides, not a fixed one. That would be 100% fair.
  63.  
  64. So why aren't they doing this? Good question. Only they know why they decided to create a system that's essentially rigged, but this system gives them the possibility of generating all future outcomes and providing them to shady streamers like m0e. They in turn gamble away and trick you into believing that you can win big just like them.
  65.  
  66. Just so you guys understand... **Their system is RIGGED.**
  67.  
  68. And for CS:GO Double - they have a similar problem. There is no client seed, as there are multiple people playing - ok, fair enough. However there is no *nonce* value in play and all numbers used to generate an outcome always known to them.
  69.  
  70. To add a "random" element as "proof" that they're not rigging the outcomes, they use numbers drawn in the New York Lottery's Take 5 draw. It's a daily draw, so every 24 hours there are new lottery numbers that are used in their formula. They use those numbers, along with a server generated random number, as well as the current roll number in place of a *nonce* value (<-- remember this problem with CS:GO Diamonds?).
  71.  
  72. That means, that they know all of the outcomes for 24 hours until there is a new lottery draw, so they can generate a list of future games, and possibly provide those to shady streamers to show just how big they can win. There is no proof that it ever happened, but who would you trust?
  73.  
  74. CS:GO Double should use a nonce value every draw that is collectively generated by all parties in an ongoing draw. After the timer reaches 0, all parties should send a random value to the server, join all of them up and plug that in to the seed. Only then would CS:GO Double be considered fair, as it stand right now - I consider their system as rigged, as they should **not** have the ability to generate future draws in any way.
  75.  
  76. Even though CS:GO Diamonds and CS:GO Double cannot change future outcomes, just knowing what those outcomes will be is enough for them to be considered unfair and rigged. The ability to know future outcomes of rolls cannot be part of a gambling system. Those outcomes can be given to individuals for promoting purposes and in general cannot be tolerated.
  77.  
  78. I honestly hope that some institution will jump in at some point and lock these people away for what they're doing. It's shady and borderline illegal.
  79.  
  80. tl;dr - certain CS:GO gambling sites are in fact rigged by having predictable outcomes by misusing a provably fair system to their advantage.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement