Please describe your proposed solution.
<u>Subbit.xyz</u>
> Featherweight channels for pay-as-you-go subscriptions and two party micro-payments
Subbit.xyz provides the incentive structure to culture an ecosystem of sustainably financed decentralized services.
Many services are cheap to provide per user, but not free. Via subbit.xyz, services can be delivered at a fair price to both the provider and subscriber while minimizing risk exposure. This is a missing piece in building an ecosystem of sustainably financed decentralized services.
<u>A subbit story</u>
Alice wants to be provided with a service, while Bob is a service provider.
The story starts with opening a subbit :
- Alice seeks out a service provider and finds Bob
- They agree on the terms of service
- Alice opens a subbit by sending a lump sum of ada to the subbit SC
- Bob makes his service available to Alice
- Each request Alice makes to Bob includes a code which, at a time of his choosing, Bob can use to redeem the correct amount from the subbit.
This last step continues until one or more of the following happens.
1) If the subbit funds cannot fund on-going service provision then either:
- Alice can send more ada to their subbit, an action which Bob can see on-chain, and the service agreement continues, OR
- Bob stops providing the service and uses the final code in redeeming his costs from the subbit
2) If Alice no longer wants the service then:
- Alice closes the subbit, an action which Bob can see on-chain
- Bob stops providing the service and has a fixed time interval in which to make a final claim
- After the deadline has elapsed, Alice can drain the remaining funds whether or not Bob has made a last claim
If Alice does not provide a valid code, then Bob does not provide his service. Conversely, if Bob does not provide the service then Alice closes the subbit.
The individual requests are small enough that if one party acts in a malicious way, the cost to the other party has a low upper bound.
The direct costs of using subbit are low:
- For Alice: the transaction fees for the subbit set-up, close, and drain
- For Bob: the transaction fees for each time he makes a redemption
Creating and validating the codes is no more than computing a cryptographic hash.
<u>Advantages over other methods</u>
On the L1:
A naive implementation on L1 faces two key issues:
- transaction fees too high
- dealing with the lag in transaction confirmation / handling rollbacks.
Possible mitigation include Alice paying in larger batches, or Bob providing service before he is confident he'll be paid. Here we have to compromise between risk and quality of service.
In addition both parties need to constantly check the state of the chain: far more resource intensive than using a channel subbit.xyz.
On hydra:
Using hydra for the use cases conceived here is analogous to using the infrastructure of high frequency trading to pay your phone bill. You could; it isn't a great use of resources.
Subbit.xyz by constrast is featherweight. For example, it is conceivable that Bob and Alice agree to a two week closing period. Provided that the value that Bob last saw on Alice's subbit covers the current requests, then he only needs to check the chain once per week. Bob could have the same service agreement with 10,000 Alices, and still only need to check the chain once per week. Compare this to running 10,000 instances of hydra.
Rely on Bob's reputation:
Leads to centralization and stifles innovation.
<u>Use cases</u>
Subbit.xyz isn't magically better for everything: it's a solution to a particular context.
What kind of service is subbit.xyz a good fit for?
- Two party: service subscriber, service provider
- On-going: service provision takes place over a period of time, rather than as a one off
- Not system critical: interruption of service is tolerable
- Atomically cheap: single request costs are small enough that the loss to either party is no more than an irritation
- No lock-in
Examples:
- Cardano services, such as chain queries and transaction-submission
- Serverless type APIs
- Data processing:
- ML services such as LLM responses
- Data streams
- Weekly average weather data from a remote location
- Hosting VMs
<u>Potential issues and mitigations</u>
The setup is premised on the fact that Alice does not wish to trust Bob very much.
But how can Alice verify Bob is providing a good service. He might just be making responses up. Mitigations to this will be context specific.
For example, in the case of liaising with a blockchain, Alice can cycle requests between different Bobs. If one Bob is inconsistent with the others, then she can investigate and end her arrangement with the unreliable Bob.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
A blockchain only makes sense if it's decentralized. Cardano takes pride in its decentralization, and SPOs are the fundamental enablers of this. It works because there are incentive structures in place to ensure SPOs are remunerated for the service they provide.
Cardano is also a lean blockchain: much of the logic and data crunching is, by design, off-chain. In an early vision of Plutus, every user would be running their own fully synced node and chain db. For the vast majority of users and use-cases this idea is untenable. This has led to the effective centralization of many services and dapps.
We need decentralization to permeate beyond the base layer. SPOs have both the technical capability and resources to provide these at little if any extra cost, if the right tools were in place. Subbit.xyz are these tools. Subbit.xyz provides the right incentive structures for SPOs to offer additional services alongside their Cardano nodes.
How do you intend to measure the success of your project?
Immediate term:
- Having an accepted proposal, reflecting a community consensus that we are identifying a genuine and critical problem, while also proposing a credible solution.
Short term:
- The components outlined, open sourced, and presented in an engageable way
- Statements of intent to use the components as described in external projects
Medium term:
- The usage of our components in projects
- Third parties wrapping their services (or otherwise) up in subbit.xyz
- Declarations that new business models are available because of the innovations of subbit.xyz
- The emergence of new decentralized services made possible because of subbit.xyz
Long term
- A financially sustainable, decentralized, and thriving ecosystem of service providers and consumers
Please describe your plans to share the outputs and results of your project?
Gimbalabs's raison d'etre is education and community. Everything produced in this project will be done with external parties in mind.
Subbit.xyz will be successful only if its outputs are utilizable by others. Utilized both directly, and also taken and extended as users need. We know that the key to making this happen is lowering the barrier to entry as much as possible.