Hey everyone,
I’m Tony, a co-founder of Ideal Labs. Our team was formed out of the PBA2 cohort and we have spent the past year and a half collaborating to build and refine the Ideal Network, where we aim to bring secure, verifiable randomness to the Polkadot ecosystem. As we approach the end of the year, we want to share an update with the community on the results we’ve accomplished, our plans for the future, and how the community is involved in them.
Recently, we completed the final leg of our Decentralized Futures grant, where we deeply explored verifiable randomness beacons and secure mechanisms for implementing them in decentralized and trustless ways. We have discussed with researchers around the world, read authors from Chaitin to Lévy and beyond, and, with the outcome of our work, we have developed a deep understanding of these mechanisms along with timelock encryption. As we move into the next phase of development, we want to share our progress so far and we would love to hear comments, thoughts, and critiques from the community on our work, our plans for the future and how we will accomplish them. Ultimately, this project is something built for and used by you. We are considering requesting funding from the KSM or DOT treasuries to accelerate our development.
In our journey so far, we:
- developed a robust and flexible timelock encryption library that works against various types of randomness beacons (e.g. against Drand Quicknet or the Ideal Network PFG (see below)).
- built a post-finality gadget where workers produce threshold BLS signatures as part of a randomness beacon protocol.
- constructed several proof-of-concept applications, including shielded transactions with timelock encryption, sealed-bid second-price auctions, rock-paper-scissors, and other experiments with web3 gaming.
- devised formalization for (publicly verifiable) randomness beacons based on stochastic processes.
- developed a “V1” Drand-Bridge pallet which was granted retroactive funding through the Kusama treasury. There are several projects within and outside of the ecosystem who are currently investigating inclusion of the Drand pallet into their runtimes, and others who expressed a desire to acquire said randomness without requiring invasive surgery.
- implemented a keyless crypto wallet protocol called Murmur. It uses secure OTP code generation and timelock encryption to enable wallets that use short passwords as seeds. Murmur was awarded third place in the 2024 OneBlock+ Polkadot Hackathon in Bangkok.
- have a testnet running on Paseo with an MVP version of the Ideal Network deployed.
The ultimate goal of the Ideal Network is to function as a “Randomness-Beacon-as-a-Service” for the Polkadot ecosystem and beyond. While we have developed methods for bringing verifiable randomness from external sources (Drand) and generating it ourselves (the ETF-PFG), our next phase involves making it available to any parachain that needs it. More specifically, we are gearing up for an initial launch of the Ideal Network as a Drand-Bridge to the Polkadot ecosystem. For those unfamiliar, Drand is a distributed and battle-tested verifiable randomness beacon. For our initial deployment the IDN would behave as an oracle for ingestion of Drand pulses. By initially relying on Drand as our source of randomness, we can focus our efforts on the verification, delivery, and economics of the chain while we continue research and development on the Ideal Network beacon.
We have already been approached by developers on several parachains who have expressed interest in consuming verifiable randomness for various purposes, however, this would be available to any parachain that needs. These new capabilities have the potential to benefit the entire ecosystem. The randomness would be usable in runtimes, consensus engines, contracts, and beyond. It can be used to acquire verifiable randomness for many different kinds of protocols, such as verifiable lotteries, candle and Vickrey auctions, randomness in web3 gaming, NFT minting, airdrop distribution, and more. In addition to these, it admits a timelock encryption scheme and the many protocols it enables.
Roadmap
Below is a tentative roadmap for the IDN over the next year. While this is subject to change, it outlines our high-level intentions to position the IDN as a “randomness beacon as a service” for Polkadot.
- Q1 2025: V0 - Drand Bridge and Initial Rollout
- Integrate verifiable randomness from Drand into the Ideal Network.
- Enable randomness delivery to parachains.
- Set the foundation by creating a Drand-Bridge to Polkadot and/or Kusama.
- Allow developers to experiment with verifiable randomness across chains.
- Q3: 2025 V1 - Native Randomness Beacon and Timelock Encryption
- Deploy a native randomness beacon built directly on finalized blocks, seeded using a secure distributed key generation scheme
- The beacon is more efficiently verifiable (so, cheaper) than the Drand beacon (using DLEQ proofs instead of pairings).
- Enable timelock encryption to future blocks and the Murmur keyless wallet protocol
- V2 - Randomness-Beacon-as-a-Service (RaaS) and Enhanced Use Cases
- Transition the Ideal Network into a “Randomness-Beacon-as-a-Service” platform.
- Support protocol-specific beacons, offering unique randomness for each consumer.
- Introduce event-based randomness production and support for alternative randomness beacon protocols.
- Enable multi-beacon timelock encryption and beacon aggregation via Merkle Clock
V0 of the IDN injects verifiable randomness into the Polkadot ecosystem, however, it places reliance on an external system that functions without consensus or economic incentives to align the blockchain-based infrastructures. While Drand is free to consume, its clock ‘ticks’ at a rate independent of a blockchain. As a result, on-chain timelock decryption becomes tricky, as messages must be encrypted to future “rounds” of the Drand protocol, but it is not always possible to predict the round when the blockchain will fetch the pulse.
In the next iteration of the network (V1) we would aim to deploy a more efficient randomness beacon that runs natively on the Ideal Network. This beacon would be produced on top of finalized blocks in the Ideal Network through the ETF-PFG. By relying on DLEQ proofs instead of pairings for signature verification, we gain an excellent performance improvement with this version of the network, where we also expect lower costs. In addition, it makes timelock encryption much easier for blockchain, as it allows for encryption “to future blocks” as opposed to arbitrary future rounds of Drand.
The next iteration (V2) would then position the IDN as a “Randomness-Beacon-as-a-Service”, where it would allow protocol-specific beacons to be enabled through the IDN. This enables various new use cases, such as providing unique randomness to each consumer, event-based production of randomness, support for alternative randomness beacon protocols, multi-beacon timelock encryption, and more. In addition, we would introduce a beacon aggregation mechanism based on the idea of a Merkle Clock, adding abilities for temporal comparisons across beacons and a new ‘layer’ of trust between chains (e.g. A beacon outputs when an NFT on chain A is minted, another beacon outputs when an NFT on chain B is minted, and something on chain C is unlocked when pulses from both beacons are acquired without ever communicating with chains A or B).
Roadblocks
Our solution relies on the usage of Arkworks host functions to provide optimizations for cryptographic operations. Without these, the relay chain is unable to verify our blocks in time and we are unable to trustlessly verify randomness. There are various workarounds for this, such as trusting the OCW to verify the pulse offchain or relying on a 2/3rds approval from some committee who each verify the pulse, but this carries increased costs. Ideally, a relay chain should be upgraded to use the optimized Arkworks host functions before our solution can function properly. We have a slot on Paseo at the moment, but we can’t trustlessly verify Drand pulses yet.
There are some unanswered questions and other unknowns related to this, and we would love to get feedback from the community. More specifically, this is related to the delivery of randomness across parachains and cost models associated with it. There are several different ways to approach this.
Idea 1: XCM Request and Response
A parachain sends a randomness request to the Ideal Network and the network responds with the latest randomness, or desired round.
Idea 2: XCM Subscription and Dispatcher
This is effectively an ‘automated’ version of (1). A parachain subscribes to the IDN randomness and it is automatically dispatched to the subscriber whenever the network verifies a new pulse.
Idea 3: External Relayer and Light Client
An external relayer component can subscribe (for free) to the randomness and inject via a light client or similar. This would likely be more useful for non-parachain solutions than parachains, though it would allow a parachain to potentially consume randomness without requiring runtime upgrades (but requires the Arkworks host functions to be introduced).
Idea 4+: Suggest Something!
Beyond delivery mechanisms for randomness, there is the issue of the trust placed in the OCW in the initial version of the pallet. This can be eliminated by introducing an extra voting round where validators issue signatures to verify pulses of randomness. Similar to block finalization with Grandpa, if at least ⅔ of validators produce signatures on a pulse, it is considered valid.
Conclusion
If you’re interested in supporting our work, direct critiques, feedback, comments, or even just “hey that’s interesting”’s would be greatly appreciated! We are considering requesting funding from either the KSM or DOT treasuries to complete work on V0. This includes:
- Making the Drand bridge more efficient and production ready by undergoing code audits.
- Building out the randomness delivery layer and economics of the solution.
- Provisioning infrastructure to stand up the network.
- Deploying the network as a Drand-bridge to DOT or KSM, and beginning to provide randomness to consumers. Ideally, we would also ask for funding to perform further R&D on the next iteration of the network as well. To summarize, we would likely request funding from the community, specifically for completing development of V0, to cover hosting/infrastructure costs, and to allow us to secure a core on KSM or DOT (whichever seems most appropriate to get started).
Contact Information