💬 This week I’m highlighting the discussion around CAP-0031: Sponsored Reserve’s evolution into what is now CAP-0033: Sponsored Reserve with EphemeralSponsorshipEntry. I discussed the original proposal, CAP-0031, in Issue #41 — make sure to check that out first if you aren’t caught up.
The purpose of both CAP’s is straightforward: make it possible to pay reserves for a person’s account without giving them control of the reserve funds. The main difference between the two is that CAP-0031 introduces a new LedgerEntry, while CAP-0033 does not.
After some discussion around CAP-0031, it was decided that determining what can be sponsored then storing it on the ledger is complicated to implement and reason about. This method also introduces a variety of limitations in terms of what logic is supported. CAP-0033, instead, introduces ephemeral ledger entries as a new conceptual category of ledger entry, with the defining property that ephemeral ledger entries never persist in the bucket list. To save both of us the headache, I won’t delve into what the bucket list is. All that’s important to know is that an ephemeral ledger entry is any ledger entry that must be removed in order for a transaction to succeed.
Because of its implementation, ephemeral sponsorship guarantees that both the sponsoring and sponsored accounts must sign any transaction that establishes a sponsorship relation. Because every sponsorship requires agreement from the sponsoring and sponsored accounts, it is safe to allow sponsorship revocation when the sponsored account can afford the reserve itself. That is part of the contract of the sponsorship relation, and if you didn’t want revocation to occur then you shouldn’t have accepted the sponsorship in the first place. Yes, I know, it’s a little tricky to describe.
Anyways… while this likely won’t change your every day life as a Stellar power user, it will make life easier for services building non-custod...