I have heard and read several times that PVSS would be a good improvement for the way randomness is generated to attribute the baking rights in the protocol. See for example here and here.

I am not very familiar with PVSS and the above refrences go pretty quickly so could somebody please provide some additional resources/explanation as to

  • what is PVSS?
  • how does it differ from the current randomness generator in proto 003?
  • why is it better?

1 Answer 1


PVSS stands for publicly verifiable secret sharing. Any PVSS scheme has two phases, 1st Phase for secret-share distribution to participants, where a secret is broken into shares and each participants receives a share. We don't want participants to know about shares of other participants (defeats the purpose of protocol). So shares needs to be distributed privately. This could be done by encrypting share with participant's public key. Also we want to make sure secret is correctly encrypted, a corresponding proof should be generated which verifies encryption of secret shared via publicly available information. second phase is secret recovery, where participants decrypt their share and broadcast it to other participants. original secret can be recovered from the shares. Again to make sure participants provide correct share, they need to provide a proof along with share that the share is correctly generated by decryption of encrypted share they received in 1st phase.

Currently in tezos, randomness is generated by commit and reveal method, where seed for cycle n is generated by share revelations in cycle n-1 which were committed in cycle n-2. Randomness can be affected by coalition of bakers in a cycle. Also, source of entropy is bakers choosing a random number. If bakers don't have a good source of randomness, it could be problematic. I am not sure how a PVSS scheme could be integrated with a blockchain.

Not the answer you're looking for? Browse other questions tagged or ask your own question.