simpyparveen/PRNG-Beacon-using-Blockchain
Public randomness is a critical component in many (distributed) protocols. Generating public randomness is hard when there is no trusted party, and active adversaries may behave dishonestly to bias the randomness toward their advantage. Our goal is to provide continuous public randomness using Blockchain as a source of entropy and also leveraging the randomness provided by multiple volunteer users (delegates) to mitigate the biasing attacks. The main challenges of using multiple delegates are (i) the efficiency; in terms of financial and communication cost and (ii) the fairness; delegates may abort to reveal their randomness in order to bias the result. We consider two threat model in this project, where (i) delegates are independent of the miners and (ii) cheating delegates can collude with miners. We modify one of the existing schemes (Yajam et al.) which is based on Pedersen threshold cryptosystem to reduce the number of honest parties needed and the communication cost to guarantee unbiased beacon service in both threat models. We require at least two honest parties in the system. Using Ethereum smart contracts, we will implement our proposed schemes and also Yajam et al scheme and compare them in terms of the communication and computation complexity, gas consumption and transaction cost. We will also argue about the security and the trade-offs of reducing the number of honest parties in our schemes.
Solidity