Assuming I understand it right, it seems something that is definitely worth researching further. So the key idea is that you make a transaction and only later make the outputs unlinkable. This comes at the cost of paying more fees, but also at a great benefit of not needing to wait for the confirmation times to secure your funds. I think the wallet could do two things simultaneously (assuming the user doesn’t need to spend
- create your output
O1that will be used in the full transaction
- create the partial transaction
O1 -> O2, fee, excessthat is sent to the aggregator
The aggregator accepts the partial transaction
O1 -> O2, fee, excess and waits for at most a couple of minutes for the transaction that creates
O1 to land in the mempool - otherwise it drops this partial transaction. In theory, the party that gets these partial transactions could steal some of the fees by creating outputs, but since this is a trusted service in the case of the daily aggregator, that’s probably not really an issue.
So the output that the full transaction creates, acts as a temporary intermediary output.
Edit: What’s also good is that this comes at the cost of 1 kernel per aggregator broadcast, which in the case of the daily aggregator is 1 additional kernel per day.