Proposal for Deployment of Nois-randdrop Contract on Osmosis

Proposal for Deployment of Nois-randdrop Contract on Osmosis

Dear Osmosis community,

We are thrilled to present a proposal for the deployment of a nois-randdrop contract on the Osmosis chain, enabling the random distribution of NOIS tokens to the Osmosis stakers from an Osmosis snapshot.

Background

Randomness has always been a challenging problem in the blockchain ecosystem. Many applications, including gaming, governance/election sortition, and various decentralized finance (DeFi) platforms, heavily rely on trustworthy and unbiased sources of randomness. However, achieving true randomness in a transparent and secure manner within a distributed network has proven to be a complex endeavour.

Introducing Nois

Nois, a Cosmos SDK based appchain, brings a novel solution to this problem. It offers a robust infrastructure to bring randomness generated by Drand on chain then distributes it across the Cosmos ecosystem through IBC. Nois acts as a reliable oracle for randomness. Nois can offer the randomness beacon to any IBC+CosmWasm enabled blockchain, and it serves as a valuable resource for Dapp developers requiring randomness.

Randdrop

After launching an randdrop for 4 chains where randomness is already being used, Nois would like to make the next round of randdrops and distribute 4% of its total supply to the 4 next blockchains including Osmosis. In order to do this we would like to store and instantiate the nois-randdrop and nois-proxy contracts. The randdrop contract will hold the NOIS tokens to be claimed by the Osmosis community and it will fetch the unpredictable, unbiased and publicly verifiable randomness from Nois (through the proxy/outpost) to conduct the randdrop.

More about the previous Randdrops here Randdrop of NOIS to Juno, Stargaze, Injective and Aura stakers

The randdrop contract source code is here: nois-dapp-examples/contracts/randdrop at v0.6.0 · noislabs/nois-dapp-examples · GitHub

You can check the project here https://nois.network

TL;DR

Nois is a L1 blockchain that brings randomness accross IBC and would like to airdrop $NOIS tokens to the osmosis stakers.

Thank you.

Katarina | Cofounder at Nois Network

3 Likes

Very nice!

Maybe I’ll actually get some this time… :smiling_face_with_tear:

Will other contracts need deploying if dapps on Osmosis are to use the randomness capability or is everything just queryable through any contract deployed that wants it?
Sounds like the latter, but just checking!

I am all fan of airdrops (free money anyone?), I am a bit curious why this needs an own chain though?

I seem to miss the added value of a complete chain which needs to be maintained over a set of cross-chain contracts.

Yes, once the nois-proxy (outpost) is deployed to osmosis, Any other dapp can just use the proxy to query randomness not just the randdrop contract.

1 Like

An alternative approach to verifying the beacon on one chain and then distributing it across chains would be to verify the beacon once per app chain, i.e. have a Terrand-like instance on Terra, Juno, Tgrade, osmosis,… The bot network would then need to submit the beacon to each chain. This would remove the need for a Nois chain and IBC relayers. It could also remove the time between publication and callback.

This has been done before on Terra by the Nois team, however, drand verification consumes a lot of gas and doing that once per chain is potentially inefficient and expensive. When blockspace is limited, the beacon submission transaction might not get committed for a long time because of blockspace competition.

There are pros and cons on both sides. When thinking about hundreds of connected app chains, the deduplication of the verification feels right. With IBC becoming more used, our state becomes your state and thus it makes sense to have one “randomness” chain accessible from all chain very easily.

1 Like

Thanks for the very elaborate answer!

1 Like

This is great! :smile: Is there a requirement to stake to a specific validator? Or would any validator qualify?