TL;DR: Claimable Balances are generating a ton of spam, and the number of unclaimed Claimable Balances is increasing. That's bad for network health and decentralization. What should we do about it?
What are Claimable Balances?Theoretically, they reduce friction when an anchor onboards a new user since they allow the anchor to create an on-network balance for off-chain deposits without worrying about lumen reserve requirements or account and trustline creation. Used as intended, they could allow new users to deposit funds onto the network via an anchor without first interacting with an exchange to purchase lumens. Claimable Balances were first described in CAP-23, and went live when the public network upgraded to Protocol 15 on November 23, 2020
Why are Claimable Balances a problem?Over the past few months, the number has increased dramatically, and the rate of increase continues to accelerate. Two snapshots for comparison:
Aug 1, 2022:
157,084,978 created
152,908,626 closed
4,176,352 open
~2.7% open
Sep 20, 2022:
184,653,177 created
169,850,749 closed
14,802,749 open
~8% open
There are, in other words, 10 million more unclaimed Claimable Balances on the ledger than there were 7 weeks ago, and without action, it's likely that the number will continue to grow unbounded.
Moreover, Claimable Balances are not currently used by anchors to onboard new users. By and large, they are created by issuers to airdrop tokens to a wide swath of accounts, and generally, the owners of those accounts do their best to ignore them. In the first half of 2022, for instance, only 25% of Claimable Balances were claimed by a destination account other than the sponsor. Sending unwanted tokens to random users at scale…that's called spamming.
From a user perspective, spam is annoying, but it's not an intractable problem. We all rely on spam filters for email, and wallets can (and do) provide the same service to hide unwanted Claimable Balances. Out of sight, out of mind. However, there's no spam-filter equivalent for transaction submission. When spammers create unwanted Claimable balances and don't reclaim them, they remain on the ledger for eternity. When spammers do reclaim unwanted Claimable Balances, they tend to recycle the reserve to create a whole new batch, which means there's a constant, pointless, heavy load on the network.
If the amount of on-chain spam continues to grow, it will be harder for existing validators and Horizon operators to keep up, harder for new validators and Horizon operators to join the network, and harder to increase the decentralization and resilience of the network.
What should we do about the Claimable Balance problem?However, after some informal check-ins with people in the ecosystem, I realize there are several objections to that approach. First, many builders have already incorporated Claimable Balances into their products and services, and it would take a fair amount of time and effort to update code and amend interfaces to undo the work they've already done. Not only that, but app developers are loath to un-introduce features to their users, which I get.
Second, several people I talked to believe that anchors will eventually understand Claimable Balances can be used to onboard users with less friction, and so it's premature to roll back the feature. Instead, they suggest working to increase meaningful adoption.
Third, some issuers are doing unexpected and interesting things with Claimable Balances, such as using them for governance. Users can create a Claimable Balance that only they can claim, which allows them to cast and rescind on-chain votes.
In all these cases, the people I talked to (and I hope they will jump in on this thread) understood the bloat and load problems Claimable Balances create. However, they all suggested looking for alternatives to deprecation.
So here's a suggestion: what if we significantly increase the reserves required to create a Claimable Balance? Rather than requiring 1 base reserve (currently 0.5 XLM), require 100 base reserves (50 XLM) to create a Claimable Balance. At the very least, doing that would increase the incentive for Claimable Balance creators to list themselves as claimants, and to clean up unwanted balances rather than leaving them on the ledger forever. The extra up-front cost may also deter large-scale creation of Claimable Balances. Thoughts?
--
You received this message because you are subscribed to the Google Groups "Stellar Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stellar-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/2057188d-78b8-454c-8a50-f4ef1a0cb381n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/18361be2d88.27ee.742a9386e52e25c8603d0fc4caefe7b6%40gmail.com.
On Sep 21, 2022, at 6:06 PM, Enrique Rubio <enr...@brave-corporation.com> wrote:
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/CAP_Q95ojwyL7C82B%2Bq%3DbOLkJbqTKyfyjj3sQ-%2Bz5rgh_%3D8EFEg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/9fee892d-9591-4bba-936f-836c8d69acb7n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/2717b5b2-08bb-4200-beb1-0d49400b5fd5n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/2a0fe04d-d218-401a-8549-c155abf9309cn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/853b23ec-8ef3-493e-a532-dbd4b5d12e3dn%40googlegroups.com.