Summary of discussion
Along with @kaichao @Darshan, we presented and discussed the future of RLN adoption at the Waku Virtual Offsite at the end of Q2 2025.
Slides are available here: https://docs.google.com/presentation/d/18qViUwOtlVywn3Pfl2ezySND_iO4FNrE1N834hPUr60/edit?usp=sharing
The presentation reintroduced the concept of RLN, defining the most important properties as:
- a permissioned membership set
- rate-limited signal generation per member
- zero-knowledge: generated signals are completely anonymous and cannot be linked to a specific RLN membership
I think it’s important for every Waku contributor to understand at least these three points about RLN, even if you’re not familiar with the technical details. This will help us understand how to communicate about RLN and reason about its adoption in our own and other products.
Within Waku we attach the generated signals to published messages, which allows us to effectively rate-limit publishing-per-member to a Waku network.
We then looked at the current state of RLN, summarised as:
- memberships are kept in a contract on the Linea Sepolia Testnet
- a single membership allows publishing to the entire Waku Network (all 8 shards)
- registering a membership requires a deposit, which can be withdrawn after a period
- memberships expire
- RLN membership management web app in progress
This was followed by an action plan on getting RLN to mainnet (see Recommendations below).
We introduced the problem of RLN adoption by stating that the “real cost” of RLN membership registrations are cheap - the gas cost of a single transaction, which could be zero on gasless chains. Since this would allow any bad actor to get unlimited number of memberships, we need to introduce artificial friction to ensure our DoS protection doesn’t get DoSed itself. Our current solution is to require a deposit per registration, which obviously creates unacceptable friction for many use cases.
The problem of RLN adoption is therefore:
How can we make it as frictionless as possible for legitimate users to receive sufficient memberships?
Actionable recommendations
Tasks to improve adoption models
From the presentation and discussion afterwards we came to the following actionable conclusions re alternative ways to get memberships (rather than having to pay a deposit):
- Maintain but deprioritise RLNaaS (using lightpush to publish without an RLN membership):
- This model is already implemented and used, but goes against the model we’re pushing for in Waku. It should not be encouraged or set as the default, but remains a good avenue to allow casual users or hackers (even our own web apps) to try the Waku Network without requiring memberships or thinking about RLN at all.
- Develop a contract that allows RLN registration for Karma holders:
- Karma is a governance token minted as reward for positive contributions to the Status Network. See: Karmic Tokenomics | Status Network Documentation
- Membership is granted by checking the Karma balance of the registering address.
- Membership registration success and allocated rate-limit depends on the Karma balance.
- For now, we will not have a feedback mechanism that allocates or slashes Karma for behaviour on the Waku network. However, this will be useful for the Logos ecosystem to add in future.
- Karma can get slashed in the Status Network domain. Rather than having a monitoring process remove the corresponding membership, we will simply have memberships expire after a time period (as they do now). If at that point the member has lost their Karma, they will not be able to extend.
- From the discussion we also agreed that Karma and the deposit model should work together: it should be possible to boost your Karma-allocated rate-limit by adding a deposit.
- Developing this model for Karma, paves the way for similar approaches where simply owning a given balance of on-chain assets will allow free RLN membership registration.
- Develop a library that allows third parties to perform stealth commitments
- RLN Stealth commitments allow a third party to register on behalf of and distribute a membership to a potential user of the Waku network. It is specified here: RLN-STEALTH-COMMITMENTS | Vac Research
- Developing a library that can perform such stealth commitments will allow app builders, such as those using the ChatSDK, to register and distribute memberships to their app users. This third party would then pay the associated membership and transaction costs. This could be of interest for example to Status app once RLN is integrated into the stack.
- A stealth commitment library can also be integrated into e.g. friend referral schemes, where a friend can register and distribute a membership to a contact that they introduce to the Waku network or Waku-based product.
Tasks to get RLN to mainnet
These are already roadmapped, but we confirmed again that everyone is on the same page:
- Run an extensive testnet on Linea Sepolia (currently very close to getting off the ground)
- Add membership extension and deposit withdrawal functions to the RLN contract
- Create a multisig to own the contract on mainnet
- Get a proper review of the contract from Vac Smart Contract team and consider if an audit is necessary, as the contract will be holding real funds.
Tasks to future-proof RLN
- Make validation in Waku pluggable. Already roadmapped
- Make RLN itself a separate, generally useful library (it’s already being used outside Waku for e.g. Karma-holder transaction limiting). Already roadmapped.
- Reintroduce slashing of RLN stakes: this is a longer term task, but will be necessary to allow proper validation across all shards on TWN. Currently each validator needs to monitor all network shards to drop spam. With slashing, we only need a single honest validator to detect spammers in the network, which is a much stronger security model.