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



Summary:

Zac Greenwood proposed a new scripting capability for Bitcoin in an email to the Bitcoin developers' mailing list. The proposal aims to allow the limiting of output amounts based on the total value of inputs, with two primary use cases in mind. The first is enabling users to rate-limit the amount they can send during a specified period, while the second is allowing exchanges to rate-limit addresses with large amounts of bitcoin.The proposed design involves implementing a maximum spend limit within each epoch, which prevents theft of a large amount with a single transaction and allows for small spends over time from a large amount. The rate-limiting parameters are specific to each transaction, and transactions can have a single rate-limited output that must be validated to ensure overspending is not allowed.To work effectively, any change output created by a transaction from a rate-limited address must also be rate-limited. Further constraining spending is possible with a decreasing limit and setting the remaining amount to zero. While the proposed design aims to simplify validation logic and enable more straightforward transactions, implementation complexity may increase. Zac intends to gauge interest in this idea before continuing work on other aspects of the proposal. It is suggested that a BIP spec could be written to improve the proposed design.


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