Improving PoolTogether with Chainlink VRF

Leighton Cusack
PoolTogether
3 min readMay 12, 2020

--

We’re excited to announce that we will be using Chainlink’s new Verifiable Random Function (VRF) capability to improve the decentralization and trustworthiness of winner selection by the PoolTogether Protocol.

The PoolTogether Protocol requires random numbers to select the winner of each prize. In our initial design, this randomness generation process was a manual and centralized process (read more about how it previously worked here), this makes it difficult for some users to fully trust PoolTogether Protocol’s ability to generate a provably fair winner. Generating randomness securely on blockchains is a notoriously difficult problem. While we have always planned to move towards a more decentralized random number generation (RNG) process, previously there were no viable solutions available given the difficulty of generating randomness on blockchains such as Ethereum.

When we learned of Chainlink’s new VRF (Verifiable Random Function), we were happy to see a decentralized infrastructure provide us with a reliable source of randomness directly on-chain, with associated cryptographic proofs that allow users to verify the randomness’s authenticity. Incorporating this functionality enables us to switch from our manual centralized generation model to a decentralized one using Chainlink, providing a greater degree of trust by our users in PoolTogether’s overall reliability.

The Importance of Generating Unpredictable Randomness
Randomness generation on blockchains is complex and largely unsolved problem. One of the critical features that make blockchains valuable is their ability to cryptographically prove that computation happened in a deterministic manner. Counter to the goals of providing unpredictable randomness, deterministic results allow attackers to predict entropy and exploit systems relying on that entropy. Even seemingly random values, such as a blockhash, can be manipulated by malicious miners attempting to extract value from applications like PoolTogether. This is why we’re excited about a verifiable form of randomness that can be verified using a blockchain’s highly trustworthy signature verification capabilities.

Why Chainlink

Chainlink’s VRF alleviates this problem by using a unique approach to VRF, combined with their already widely used oracles, to provide verifiable randomness on-chain. Chainlink has a strong reputation for providing high-quality oracle solutions that already send critical off-chain data into some of the top projects in the DeFi ecosystem, which means it already successfully secures large amounts of value using the same oracles providing their unique form of VRF randomness. Incorporating Chainlink’s VRF benefits PoolTogether by providing a more reliable and provably secure form of randomness in the selection prize winners, which our users can trust.

Integrating Chainlink’s VRF service is a large step forward in the progressive decentralization of the PoolTogether Protocol. We’re working with Chainlink on testnet integration this month (May 2020) and expect to be live using Chainlink’s VRF capability soon.

Website: https://www.pooltogether.com/
Twitter: @PoolTogether_
Github: pooltogether
Discord: https://discord.gg/hxPhPDW

About PoolTogether

PoolTogether is a protocol for no loss savings games on Ethereum. No loss savings games allow users to have a chance to win prizes without risking their deposits. To date, the protocol has awarded over $21,000 in savings prizes.

About Chainlink

If you are a smart contract developer in the process of developing a decentralized application or currently have a working product and want to take advantage of our VRF feature, visit the developer documentation and join the technical discussion on Discord. Learn more by visiting the Chainlink website or following them on Twitter or Reddit.

--

--