Exploring: limiting transaction output amount as a function of total input value



Summary:

The email from ZmnSCPxj explains how to have two sets of keys, one for long-term storage and another for short-term spending. The first step is to put all funds in a single UTXO with cold keys. Then, create a new address that is a tweaked k-of-n of the cold keys and spend most of it there, leaving a smaller output controlled by the warm keys. Keep this transaction off-chain in warm storage and put the cold keys back offline. If you need an estimated amount of usable funds for every future unit of time, create a chain of transactions with future `nLockTime`. Pre-sign the above transactions, store them in warm storage together with your warm keys, and put the cold keys offline. To access the funds, spend only the first warm TXO for each day. The method doesn't use any special opcodes or features, which improves privacy. It uses just `nLockTime`, which is much easier to hide since modern wallets will set `nLockTime` to recent block heights. If someone steals the warm keys, bring the cold keys online to claim the second cold TXO and limit fund loss to only the first two warm TXOs.


Updated on: 2023-06-15T00:32:30.800659+00:00