-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Description
We want to create a module (written in any lanugage, C++, Rust, Python) that takes a random hash/number as input from an external trusted source into the machine, and upon recieval of this random number, it injects randomness into the cartesi machine in such a way that encapsulates every possible case of entropy that can exist within a computer (For now, just every way that a chess engine can derive entropy).
Steps
-
First step is determining where chess engines derive their non-determinism from. There could be many answers to this one question.
Question on reddit -
Second step is creating a module/library that can take a random number as input and distribute entropy throughout the Cartesi machine in a way that encapsulates all the avenues that a chess engine can derive randomness from. For example, if chess engine a uses a C++ rand library that derives is randomness from "/dev/random" or "/dev/urandom" then this module must, at the very least, take the random number it recieves as input and manipulate the value of "dev/random" or "/dev/urandom". This module will recieve inputs through standard input so that simple subprocess calls can be made through our python scripts like so subprocess.run(["./gen_entropy", "-hash", "16264848662284"])
Randomness in Linux