Provably-Fair Results
We use the highly respected third party service at random.org to generate all our random numbers. Unlike other services who generate pseudo-random numbers that are deterministic if you know the correct seed phrase, at random.org they generate true random numbers by measuring changes in atmospheric pressure caused by thunderstorms.
And they have developed a verification system that attaches a serial number and a hashed API key to every random number generated so that you can confirm on their website in real time that we're not continually asking for a new random number until we get one that we like. If the random numbers generated have the correct hashed API key and the associated serial numbers are sequential you can be certain that we are receiving and using random numbers as we get them that are completely out of our control to influence.
In the Rogue Trader game, we start the index at 50,000 and then we ask random.org for a random number within a maximum range of 500 above or below that number. We receive a random number between 49,500 and 50,500 and this number and its associated serial number are immediately posted on-chain in a transaction that updates the price of the Rogue Trader index to this new value. That same transaction settles all winning bets that settle at that serial number.
We then request another random number within a range of 500 above or below this latest number and then immediately post that number and its associated serial number on-chain to update the Rogue Trader index price. We then request another number within a range of 500 above or below this latest number and this process carries on ad infinitum.
As a binary options game, each bet placed must have an expiry time, and your bet is deemed to have won or lost based on the index price at that expiry time. But smart contracts have no concept of time so using an actual expiry time doesn't work. So instead we use the serial number associated with each random number as the expiry date. For example, you place a bet that the index will be higher in a time period measured not in seconds or minutes but in serial numbers. Every bet placed has a serial number at which it expires and is settled according to what the index price is at that serial number.
This works very well because you can verify in real time on the random.org website what random number (index price) should be associated with a certain serial number. This makes it impossible for us to manipulate the index price at or around the expiry time of your bet because we have no control over the index price at a certain serial number. Also, the index price and serial number are verifiable both on random.org's website and also on the Rogue Chain block explorer where they are posted in an immutable on-chain transaction that can never be altered or edited, allowing you to verify that they match.
You can verify all results easily and in real-time by going to the Verify Results tab on the Rogue Trader game interface. In every row of that table you can confirm that the serial numbers are indeed sequential. In each row you will see a link on the far right called Verify Result which will take you to the random.org verification page that verifies the index price and serial number of the row you clicked in. Then in the same row in the table, click on the transaction hash link which will take you to the Rogue chain block explorer where you can see that the same index price and serial number provided by random.org were indeed posted on-chain where they were used to update the index price and settle bets that expired at that serial number.
All bets are settled and paid out in the same transaction that updates the index price and serial number. Therefore if there were bets to settle and pay out at that serial number you will see those transactions first when you click on the transaction hash link in the Verify Results table. Scroll all the way to the bottom and there you will see the PriceUpdated transaction with the correct price and serial number.
Last updated