Chainlink and Truly Random NFTs 🔗 - TokenSmart NFT Humpday Report #34
Welcome to the 34th issue of the NFT Humpday Report, a weekly column covering and providing embedded analysis on the NFT economy’s biggest topics du jour. Brought to you by WIP meetup collaborators and nft42 community hub TokenSmart.
If something that’s meant to be random isn’t truly random, then it’s gameable. The NFT ecosystem saw an example of such manipulation earlier this month when an attacker launched a so-called reroll exploit on the Meebits smart contract. Simply put, the culprit “rerolled” through canceled transactions until they got a rare Meebit to their liking.
That sucks for everyone else, as that rare Meebit could’ve been life-changing to a good faith participant otherwise. The attack itself was possible because the way the Meebits smart contract handles randomness was flawed.
So what if Larva Labs and other NFT projects could enjoy true randomness, facilitated on-chain (so it’s easy to plug into) and all totally verifiable? They can, courtesy of Chainlink VRF.
The background: You’ve likely heard of Chainlink by now, the popular DeFi project whose decentralized oracle networks help decentralized apps, or dapps, interact with off-chain data. What fewer people have heard about yet is Chainlink VRF.
The “VRF” stands for verifiable randomness function. Chainlink VRF, first released to the public last May, is notably purpose-built for providing provable random number generation (RNG) for smart contracts.
The solution marks a breakthrough for the Ethereum and smart contracts ecosystem, as hitherto dapps and NFT projects had to rely on pseudorandomness, which can be readily gameable as we’ve just seen in the case of Meebits.
With Chainlink VRF, then, projects can gain access to provably true RNG. This utility is remarkably useful in many NFT gaming contexts, i.e. when projects want to ensure that their users are experiencing truly random item or battle results, and so forth.
This is why Chainlink often leads with calling Chainlink VRF a blockchain gaming solution, though the system is ultimately useful for any dapp or NFT project that needs access to verifiable randomness on-chain.
The Meebits hypothetical: Chainlink VRF would have been an ideal mitigation system to prevent the kind of reroll exploit that Meebits just faced. That’s because of how the system works. A user requests randomness, and a Chainlink oracle creates the requested randomness off-chain and then sends it on-chain through the VRF to be verified, after which provable randomness is provided. This flow entails two transactions, and randomness is secured in the second transaction, thus blocking a reroller’s ability to get an ID and cancel for a reroll in a single transaction.
Early NFT Integrators: Chainlink VRF may only have been live for one year now, but it’s already attracted more than a few NFT projects to integrate its tech. In 2021 alone, these integrations have included:
Luchadores.io - using Chainlink VRF to select its Lucha libra NFT wrestlers’ traits.
PlayDapp Town - using Chainlink VRF for randomness in its NFT combination system.
Bancor- using Chainlink VRF to fairly distribute limited-edition NFTs.
Upshot- using Chainlink VRF to randomly generate NFT appraisal committees.
Technoking of Beats- using Chainlink VRF to fairly distribute music NFTs.
CryptOrchids- using Chainlink VRF to generate provably rare species of digital flowers.
Polkamon - using Chainlink VRF to generate rare traits in monster NFTs.
EtherCards - using Chainlink VRF for rare trait generation and fair NFT distributions.
EtherCats - using Chainlink VRF to create random ratings for cat NFTs.
Zooming out: Expect to see many more NFT projects embrace Chainlink VRF from here as the solution continues to become an increasingly important building block within the ecosystem. Many on-chain projects need randomness, and the optimal way to do that is through a verifiable on-chain system like Chainlink VRF!
Thanks for reading the 34th NFT Humpday Report! Check back this time next week for more excellent NFT ecosystem coverage! Cheers 🌠