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



Summary:

The email thread discusses the implementation of rate-limiting algorithm in a privacy-preserving manner. The proposed algorithm involves creating an output at block height [h0] which serves as input and limits the maximum amount to [limit] sats. This rule is permanent and always copied over to a change output. At block height [h1], a transaction occurs, spending [h1_spent]. The payment output created at [h1] is not encumbered and of value [h1_spent]. The change output created at block height [h1] must be encumbered in a similar way with a second transaction occurring at block height [h2], spending [h2_spent]. The payment output created at [h2] is not encumbered and of value [h2_spent]. However, implementing this algorithm in a privacy-preserving way could be challenging as it requires introducing a new type of transaction that reduces the anonymity set for everyone. Additionally, the payment and change output will be identifiable because the change output must be marked encumbered on-chain, and the specifics of how the output is encumbered must be visible on-chain, reducing privacy even further. The author suggests using clever MAST-fu in covenant schemes to accommodate the desired feature in a privacy-preserving manner. There are several proposals for such covenant schemes, but none seem likely to have a lot of traction.


Updated on: 2023-06-15T00:30:54.163184+00:00