New standard transaction types: time to schedule a blockchain split?



Summary:

In a discussion on Github, Mike Hearn proposed a general scheme to convert arbitrary expressions over signature-checks (given in RPL notation) to Bitcoin scripts. He suggested defining an address type that encodes an expression in RPL form which should be more compact and easily parseable. However, Pieter Wuille questioned the use cases for this idea, especially from a mobile app perspective. It doesn't make sense to have arbitrary scripts in a user-facing address. The software has to present a reasonable user interface given an address, explain what is going to happen to the users' money, etc. Doing pattern matching against some encoded script template is annoying and inefficient. Instead, it would be better to define another type of URI for each kind of transaction one wishes to support. Often, to do the more interesting contracts, you need out of band protocols, so the "address" would probably specify some information not in the final output script, like a rendezvous point.Pieter Wuille agreed, noting that currently, addresses encode a particular output script, and the client pattern matches to know how to deal with the incoming funds. However, this may not remain the case in the future. A generic way for encoding complex transaction scripts in a compact form may be useful for "manual" playing with them, but they should wait for a use case for this. Nevertheless, Pieter Wuille thinks it is useful and possible to allow a class of scripts that represent boolean expressions over signature checks to pass the IsStandard() test. This makes sure that whenever they want to support creating such an expression in the future, there will at least be a way to encode it in a way that the network will accept it. The only question is what possible problems there are with accepting them.


Updated on: 2023-05-18T22:13:46.693862+00:00