After reflecting more on the difficulties of a random number generator on a consensus system, we decided to use round robin method to choose the next leader from the validators.
2 examples of multiparty games of choosing random numbers:
1)
You and I each write either "1" or "0" onto a piece of paper, and simultaneously reveal to each other.
If the sum is even, I win. If the sum is odd, you win.
This simple 2-person game randomly generates 1 bit. It can be extended to arbitrary numbers of people by replacing addition with XOR.
2)
N people each vote either "0" or "1". They reveal votes simultaneous. The minority participants are rewarded. The median of the votes is the next random bit.
I agree with you that the random number generator in tendermint isn't good enough. I am going to add one I have put in a different cryptocurrency before. Each validator gives the hash of a secret, and later gives their secret. All the secrets are XORed to find the random seed.
The list of nodes will be hard-coded at the genesis with known meatspace identities. It can only be updated by a transaction signed by >2/3 of the existing nodes.
I am writing the "validators contract" for tendermint right now. It will have this functionality.
I estimate less than 1/10th of money spent on NASA goes towards space research.
Even worse, they hire all the best engineers from the market.
I hope that we will close NASA someday, so that we can start doing space research again.
Thank you for the important issues you raised.