Hey all,
Since we want to use RLN for Status Gasless L2 through a prover module, we will also have external slashers that verify and guarantee there is no spam. If the spam is occured, we expect that at least one slasher generates the secret from the spammed metadata and submit it to a contract to get a reward, see the details from the its RFC.
Seconldy, we need to consider this, instead of a single entity, the prover module consists of multiple provers that operate on a single DB, thanks to @hixa here. Then, we consider using an aggregator node that listens to the provers and then streams to the external slashers.This unlocks the transfering metadata from the prover module to the slashers efficiently.
The idea, as you may know, is that the RLN outputs consist of three main outputs: RLN proof (3 field elements, each 32 bytes), nullifier (32 bytes), and y value (again 32 bytes). In total, we have 160 bytes for each transaction that the aggregator nodes need to listen to and stream again.
The problem is that, can we exclude the RLN proof and just send the y value and nullifier, we can have 64 bytes, 60% less payload, which multiplies the aggregator efficiency by 2x?
RLN usage in Logos Messaging, the proof is important so that peers forward the message, but here external slashers are only focused on validating that no one exceeds the RLN limit.
Wait to see your questions and feedbacks!