This is the principal Status Network repository. On top of the Linea stack, it adds the smart contracts and infrastructure for Status Network's gasless transaction system powered by RLN (Rate Limiting Nullifier) technology of Vac. The additional Status Network features are optional, configurable using the CLI options (details provided under Configuration Options). Open-sourced under the Apache 2.0 and the MIT licenses.
Status Network is the first natively gasless Ethereum L2, optimized for social apps and games, featuring sustainable public funding for developers through native yield and DEX fees. Built on the Linea zkEVM stack, it provides high-performance, gas-free transactions while ensuring economic sustainability through a novel funding model and spam prevention technology.
Status Network introduces gasless transactions through a RLN technology and Karma reputation system. This allows users to submit transactions without paying gas fees while maintaining network security and preventing spam.
Rate Limiting Nullifier: A cryptographic system that prevents spam by limiting transaction rates through nullifier-based proofs. Implementation can be found here.
火 Karma System: A reputation-based mechanism where users earn Karma soulbound tokens through positive network participation. Users will have different levels of daily gasless transaction quota depending on their Karma amount. Contract code implementation can be found here.
Premium Gas Bypass: When users exceed their daily gasless transaction quota, they can still submit transactions by paying premium gas fees. The premium gas threshold is configurable and allows users to bypass rate limiting restrictions when needed.
- TxForwarder Transaction Pool Validator: Forwards incoming transaction data to the RLN prover service to generate RLN proofs based on the user Karma
- Modified LineaEstimateGas RPC: Dynamically provides zero gas or premium gas estimates based on real-time user karma and usage quotas
- RLNVerifier Transaction Pool Validator: Verifies incoming transactions from RPC nodes using RLN proofs received from the prover service
- RLN Bridge: JNI interface for RLN proof verification, providing high-performance cryptographic verification of rate limiting nullifiers
- Nullifier Tracking: High-performance tracking to prevent double-spending and nullifier reuse
- Deny List Management: Shared deny list manager providing single source of truth for deny list state
The Status Network RLN validator system can be configured using various CLI options defined in LineaRlnValidatorCliOptions.java.
--plugin-linea-rln-enabled
: Enable/disable RLN validation for gasless transactions (default:false
)--plugin-linea-rln-verifying-key
: Path to the RLN verifying key file (required when RLN is enabled)--plugin-linea-rln-proof-service
: RLN Proof service endpoint inhost:port
format (default:localhost:50051
)--plugin-linea-rln-karma-service
: Karma service endpoint inhost:port
format (default:localhost:50052
)--plugin-linea-rln-deny-list-path
: Path to the gasless deny list file (default:/var/lib/besu/gasless-deny-list.txt
)
Contributions are welcome!
Please keep in mind that we do not accept non-code contributions like fixing comments, typos or some other trivial fixes. Although we appreciate the extra help, managing lots of these small contributions is unfeasible, and puts extra pressure in our continuous delivery systems (running all tests, etc). Feel free to open an issue pointing to any of those errors, and we will batch them into a single change.
If the proposed update is non-trivial, also tag us for discussion.
- Submit the update as a pull request from your fork of this repo, and tag us for review.
Include the issue number in the pull request description and (optionally) in the branch name.
Consider starting with a "good first issue".
Before contributing, ensure you're familiar with:
- Our contribution guide
- Our code of conduct
- Our Security policy