A trustless onchain entropy source utilizing verifiable randomness
Prize Pool
The Entropy Protocol is an onchain decentralized randomness solution designed to replace oracle-based randomness generation. It combines contributions of randomness from 'entropy providers' that is supplied to 'entropy consumers' that use the random data. Consumers can mix randomness from multiple providers using their choice of method to add extra security to the protocol. Providers have to make 'commits' to randomness ahead of time, when they don't know what the other data in the pool is, so they can't manipulate the end result. These features ensure that randomness is entirely unpredictable to all parties involved.
For the smart contracts, we used Sign Protocol to handle attestations entropy providers make to provide randomness at some later date. We leveraged the Schema Hooks feature to automatically trigger logic when new commits are made. Sign Protocol was an incredible addition to our tech stack, as it allowed for standardized interfaces that could enable interoperability with the protocol. For the protocol's token, ENTP, we utilized OpenZeppelin Contracts for ERC20 implementations and interfaces. And to test, deploy, and interact with the contracts via scripts, we used the Hardhat Javascript library.
For the frontend, we took advantage of the Web3Auth ecosystem to provide an integrated user experience. It streamlined our frontend and allowed a familiar Web2-like interface for our blockchain-based application. We connected Web3Auth with the ethers Javascript/Typescript library to integrate the interface with the underlying protocol. To design the interface, we used React, which provided an optimal component-based structure for our use-case.