The following are my notes on this general problem and how we can tackle in in the simulations and a place for us to have a discussion.
Takers select inputs to satisfy their payment obligations in priority order. For each available strategy, they construct candidate transactions: unilateral payments, batched payments, and combinations that exploit overlapping inputs i.e utxos the taker expects to spend regardless. This produces a weighting over UTXOs.
The taker then evaluates order book utxos, preferring those that produce denser sumsets. This second pass may raise the effective value of UTXOs that ranked lower in the initial weighting. If no order book UTXOs are worth coinjoining with, the taker falls back to a batch payment, decomposing change across a multi-output transaction. A cost function governs all of these paths.
Some order book UTXOs are preferred over others; that preference is reflected in a payoff.
Takers should generate plans and maintain state across timesteps. Currently this statefullness missing entirely. all computation is redone from scratch on each step. As new information arrives, existing plans should be updated incrementally rather than recomputed (statefull ness is probably not a blocker).
Accepting a proposal is relatively cheap. It carries a payoff, and the primary cost is opportunity cost subject to rate-limiting. Accepting an aggregate proposal is a commitment with real cost. Refusing to participate after accepting possible but has consequences.
Selecting specific coins over others leaks information about wallet state and cost function preferences. The intended behavior: announce coins in the order book first, then make proposals using those coins and subsets of coins already posted. From an observer's perspective, it should be impossible to distinguish takers from makers, and wallet state or cost function details should not be inferrable.
Upon receiving an aggregate proposal, the taker has two options: back out or accept. If backing out, the taker may modify the aggregate proposal and rebroadcast it. Acceptance is warranted when, given all available information, the aggregate proposal remains preferable to all other plans.
The following are my notes on this general problem and how we can tackle in in the simulations and a place for us to have a discussion.
Takers select inputs to satisfy their payment obligations in priority order. For each available strategy, they construct candidate transactions: unilateral payments, batched payments, and combinations that exploit overlapping inputs i.e utxos the taker expects to spend regardless. This produces a weighting over UTXOs.
The taker then evaluates order book utxos, preferring those that produce denser sumsets. This second pass may raise the effective value of UTXOs that ranked lower in the initial weighting. If no order book UTXOs are worth coinjoining with, the taker falls back to a batch payment, decomposing change across a multi-output transaction. A cost function governs all of these paths.
Some order book UTXOs are preferred over others; that preference is reflected in a payoff.
Takers should generate plans and maintain state across timesteps. Currently this statefullness missing entirely. all computation is redone from scratch on each step. As new information arrives, existing plans should be updated incrementally rather than recomputed (statefull ness is probably not a blocker).
Accepting a proposal is relatively cheap. It carries a payoff, and the primary cost is opportunity cost subject to rate-limiting. Accepting an aggregate proposal is a commitment with real cost. Refusing to participate after accepting possible but has consequences.
Selecting specific coins over others leaks information about wallet state and cost function preferences. The intended behavior: announce coins in the order book first, then make proposals using those coins and subsets of coins already posted. From an observer's perspective, it should be impossible to distinguish takers from makers, and wallet state or cost function details should not be inferrable.
Upon receiving an aggregate proposal, the taker has two options: back out or accept. If backing out, the taker may modify the aggregate proposal and rebroadcast it. Acceptance is warranted when, given all available information, the aggregate proposal remains preferable to all other plans.