Hi ZmnSCPxj,
> I suggest looking into the covenant opcodes and supporting those instead of your own proposal, as your application is very close to one of the motivating examples for covenants in the first place.
I believe it is not the right approach to take a proposal, chop off key aspects of its functionality, and rely to some future change in Bitcoin that may perhaps enable implementing some watered down version of the intended functionality. In my opinion the right order would be to first discuss the unmodified proposal on a functional level and gauge community interest, then move forward to discuss technical challenges for the *unmodified* proposal instead of first knee-capping the proposal in order to (presumably) reduce cost of implementation.
I believe that we both recognize that the proposed functionality would be beneficial. I believe that your position is that functionality close to what I have in mind can be implemented using covenants, albeit with some gaps. For me personally however these gaps would not be acceptable because they severely hurt the predictability and intuitiveness of the behavior of the functionality for the end-user. But as noted, I believe at this point it is premature to have this discussion.
Perhaps you could help me understand what would be required to implement the *unmodified* proposal. That way, the community will be able to better assess the cost (in terms of effort and risk) and weigh it against the perceived benefits. Perhaps *then* we find that the cost could be significantly reduced without any significant reduction of the benefits, for instance by slightly compromising on the functionality such that no changes to consensus would be required for its implementation. (I am skeptical that this would be possible though). The cost reduction must be carefully weighed against the functional gaps it creates.
I am aware that my proposal must be well-defined functionally before being able to reason about its benefits and implementational aspects. I believe that the proposed functionality is pretty straightforward, but I am happy to come up with a more precise functional spec. However, such effort would be wasted if there is no community interest for this functionality. So far only few people have engaged with this thread, and I am not sure that this is because there is no interest in the proposal or because most people just lurk here and do not feel like giving their opinion on random proposals. It would be great however to learn about more people's opinions.
As a reminder, the proposed functionality is to enable a user to limit the amount that they able to spent from an address within a certain time-frame or window (defined in number of blocks) while retaining the ability to spend arbitrary amounts using a secondary private key (or set of private keys). The general use case is to prevent theft of large amounts while still allowing a user to spend small amounts over time. Hodlers as well as exchanges dealing with cold, warm and hot wallets come to mind as users who could materially benefit from this functionality.
Zac