Unified balance #352
Replies: 6 comments 2 replies
-
Isn't that how Llamapay works - and why it's susceptible to the attack involving some of the recipients having a (concurrent) claim on the Pool funds inside withdrawing their full share before the others, leaving the others waiting for their common Sender to (maybe?) top up the Pool in the future? |
Beta Was this translation helpful? Give feedback.
-
Yes, that's how LlamaPay works, but Micah's feedback makes me wonder if the UX benefits of allowing users to top up a single stream perhaps outweigh the downsides of the first-come, first-serve model. I wouldn’t describe this model as an 'attack'; it’s simply a peculiar UX design. It only becomes an issue when the sender fails to top up funds for all recipients—a scenario that shouldn’t occur frequently. cc @sablier-labs/engineers for feedback — should we switch to first-come, first-serve? |
Beta Was this translation helpful? Give feedback.
-
Related: New "Top Up" button for topping up multiple streams |
Beta Was this translation helpful? Give feedback.
-
My take is that the UX benefit that Micah mentioned can be addressed through the UI. If that's not possible or overly complex, then we can explore in this direction. Implementing this model would necessitate breaking changes to the protocol.
IMO both models have their pros and cons, and I firmly believe our architecture is better than Llamapay’s. We designed this to address real-world use cases (that is why we have features like void, pause and restart) tailored to fit user requirements with payments. On the other hand, Llamapay offers a minimalistic product aimed at creating simple payment streams, how most things are in crypto. People build them and hope for people to use them without pushing for it or making changes to their needs. Having said, if we receive multiple requests for this, then we will have no choice but to prioritise this unified pool approach over ours. |
Beta Was this translation helpful? Give feedback.
-
I agree with Shub here. IMO, this is primarily about how it is addressed in the UI, as this functionality can simply be achieved by batch calling graph TB
subgraph Stream_Orientated[Stream Orientated]
FCFS[First-Come, First-Serve]
end
Idea for implementing it in the current design:
Also, making this architectural change would be significant and could lead to technical challenges in maintaining all the features that differentiate us from LlamaPay (which Shub has mentioned) |
Beta Was this translation helpful? Give feedback.
-
Micah's need seems to already be addressed in the app. Currently he can:
Long time ago I imagined a more advanced iteration of this flow where he can (similar to Zapper's bundles) save one of these group of streams in a bundles list, where we can also display some quick-action buttons like
End goal is the same, it would just remove from the number of clicks he'd have to perform. If we do it, I figured it would be part of the labels sprint. Regarding our current individual architecture vs. pool model, I think ours is superior since it simplifies accounting and reduces the risk for that front-running.
It might be easy to fall into this case esp. for those waiting to withdraw a large chunk of funds just to have "withdraw max" fail on them because the sender thinks "Ah hey 10.000 is enough in the pool, I'll just top-up later". We can work around this, of course, but why choose the bad UX for recipients when we can simply improve it in the app for senders. P.S. Maybe @maxdesalle can help us shoot a how-to video with this particular use-case in mind so we can share with interested users. A more lengthy version of this tweet. Related: sablier-labs/docs#227 |
Beta Was this translation helpful? Give feedback.
-
Feature request from power user Micah
Beta Was this translation helpful? Give feedback.
All reactions