🧵
After years of R&D, I'd like to tell you the story of a now-discontinued project called Sablier Mainnet.
In this thread, I’ll cover what it was and the lessons we learned along the way.
Let’s dive in! 👇
The story begins in 2020, when we were working on the next version of Sablier.
What we wanted to do is get rid of the deposit requirement, and enable payment streams that can run indefinitely in an open-ended way.
Here's a Q&A from StackExchange:
ethereum.stackexchange.com/q/84226/24693
That led us to notice that all VMs are reactive, i.e., they don't proactively do stuff for users.
So what if the VM itself allowed recurring payments?
What if Alice's EOA could start a subscription to Bob's EOA via an Ethereum tx, without an intermediary contract?
Sablier Mainnet was our answer to those "what ifs".
Inspired by the rise of Celestia and Fuel, we envisioned Sablier Mainnet, an EVM fork meant to be deployed as an execution rollup with two new features:
1. Multiple native tokens
2. Built-in recurring payments
Multiple Native Tokens was a prerequisite for recurring payments, so this is the feature we worked the most on before halting the project.
This was a token design inspired by @fuel_network's FuelVM, in which the EVM is extended to support native fungible tokens.
Sablier Mainnet was supposed to have many other cool features, such as:
- Solvency Monitoring
- Graph of Streams in VM state
- Programmable Cashflows
- A Solidity fork with streaming functionality
I don't have space here to expand, but these slides should help:
All this sounds awesome, right? What went wrong?
1. Insurmountable technical challenges
2. Lack of demand for onchain recurring payments
I'll expand on each category in the following tweets.
Technical challenge #1: Non-constant time complexity
The built-in recurring payments required embedding a directed graph in the VM state.
The graph was also interconnected, meaning updating an edge between user A1 and A2 may have triggered an update for user A100.
@IaroslavMazur, @razgraf, and I have explored various techniques to achieve near-constant time complexity:
→ Lazy evaluation
→ Graph optimization
→ Discretizing payment cadences and amounts
→ Batch tx updates with a bootloader
→ Tx prioritization
But unfortunately, we didn't produce a workable model.
Sablier Mainnet would have been a completely centralized network with no clear roadmap toward decentralization.
That would have been against our ethos at @Sablier.
Technical challenge #2: DoS risk when closing streams
The VM was designed to monitor account solvency, which involved cron jobs for terminating streams when the sender's balance went to zero.
But too many overlapping cron jobs can lead to DoS risk.
We eventually found a solution for the DoS risk (challenge no. 2) using a cold<>hot state duality, but the solution created a vicious cycle where the non-constant time complexity was amplified (challenge no. 1).
Lack of demand #1
As per the answers received below, subscriptions haven't taken off in web3.
→ UX is not better than credit cards
→ They lead to customers overpaying for a service
→ Subscriptions are about renting, web3 is about owning
x.com/PaulRBerg/status/1795758836491428004
Lack of demand #2
We talked to potential early adopters, such as @EleniThinks from Loop Crypto.
Her feedback was amazingly helpful.
The limiting factor isn't the backend architecture. It's the frontend and how the merchant<>customer relationship is managed.
We are also working on an EIP for Multiple Native Tokens, with the purpose of promoting it as a design that other EVM rollups could adopt.
Big thanks to @IaroslavMazur for his relentless dedication to this effort.
Will share an update soon!
In the meantime, our Lockup and Airstreams products on app.sablier.com have gained significant traction via token vesting and airdrops.
It would be unwise to ignore this growth, and so we have shifted toward a product-first approach.
x.com/Sablier/status/1840845642241073656
We learned so much from building Sablier Mainnet.
It's now clear to us that Sablier would be in a stronger position by expanding across established blockchain ecosystems.
Stay tuned for Sablier Flow — our upcoming open-ended streaming product 👀