2024-08-30 23:51:53 +00: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
|
2024-09-04 07:54:12 +00:00
|
|
|
`O(log(n) + n)` computational complexity.
|
2024-08-30 23:51:53 +00:00
|
|
|
|
|
|
|
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.
|