serai/processor/scheduler/utxo/transaction-chaining
Luke Parker bd277e7032 Add processor/scheduler/utxo/primitives
Includes the necessary signing functions and the fee amortization logic.

Moves transaction-chaining to utxo/transaction-chaining.
2024-09-19 23:36:32 -07:00
..
src Add processor/scheduler/utxo/primitives 2024-09-19 23:36:32 -07:00
Cargo.toml Add processor/scheduler/utxo/primitives 2024-09-19 23:36:32 -07:00
LICENSE Add processor/scheduler/utxo/primitives 2024-09-19 23:36:32 -07:00
README.md Add processor/scheduler/utxo/primitives 2024-09-19 23:36:32 -07:00

Transaction Chaining Scheduler

A scheduler of transactions for networks premised on the UTXO model which support transaction chaining. Transaction chaining refers to the ability to obtain an identifier for an output within a transaction not yet signed usable to build and sign a transaction spending it.

Design

The scheduler is designed to achieve fulfillment of all expected payments with an O(1) delay (regardless of prior scheduler state), O(log n) time, and O(n) computational complexity.

Due to the ability to chain transactions, we can immediately plan/sign dependent transactions. For the time/computational complexity, we use a tree to fulfill payments. This quickly gives us the ability to make as many outputs as necessary (regardless of per-transaction output limits) and only has the latency of including a chain of O(log n) transactions on-chain. The only computational overhead is in creating the transactions which are branches in the tree.