This is exactly correct. A balance accumulates at a constant rate, and at any time the user may withdraw up to the balance. I don’t think we should plan around gas costs, since ETH2 should drive them down to negligible, but if we wanted to mitigate them in the short term, there’s always the aforementioned gas tokens; they could potentially prove useful even after ETH2 goes live.
Of course.
Compounding streams use the Compound protocol to leverage a technical aspect of how the system actually works to accrue interest on the stream. The stream is deposited as a lump sum, and the portion that the user is permitted to withdraw is increased as a function of time elapsed out of the stream duration set during initialization. The deposit is put into Compound, and is drawn from as the user withdraws their balance.
Not exclusive to compounding streams: At the end of the stream, whatever balance remains is transferred to the recipient; if the sender cancels (which they may do unconditionally), the ‘streamed’ portion of the deposit is sent to the recipient and the ‘unstreamed’ portion is returned to the sender.
The interest accrued can be split between multiple parties, if I’m not mistaken, but it can at least be directed to an arbitrary address.
The obvious consequences of this are that it’s best not to withdraw from your stream and let it run its course untouched if you are getting a portion (if not all) the interest. Which, in the context of voting incentives, leaves us with exactly one choice; the staker must be given a portion of the interest in order to reward them for their patience, but to support the protocol a portion must go to the DAO.
It’s a mutually beneficial relationship: the patient, considerate, consistent voters will get the greatest rewards by default; Compound gets a supply of capital in the form of BNT (assuming they whitelist it); and we get revenue, and higher quality governance.