Randomness
Randomness is an important part of many games and having a good source of randomness prevents users from abusing statistical trends to their own benefit.
In our case, we are building Paima Engine to produce games as globally accessible state machines. This means they are inherently deterministic (as everyone has to replay all submitted game input to arrive at the same global state). There is no central server which we rely on who could be the trusted randomness producing source (aka. randomness oracle).
Thus as we move forward having a good source of randomness becomes more and more important.
Of note, whenever a new block is generated there are a few pieces of information provided to Paima Engine which have a degree of uncertainty/randomness to them which make them harder to predict:
- The block hash
- The list of submitted data (user game input) which was posted by users to the on-chain smart contract
- Information about the block producer (randomness coming from the public key they committed to when they became a block producer)
As such, these are the pieces of data which we can start to build randomness from.