Beyond Jets: Microcode: Consensus-Critical Jets Without Softforks



Summary:

ZmnSCPxj discusses the issue of namespace management in Bitcoin Script and suggests that Simplicity would make a better platform due to its narrow interface. However, he acknowledges that there is an issue with microcode introduction outpoints and race conditions between people submitting transactions. ZmnSCPxj clarifies that the use of specific microcodes is opt-in and requires a specific `0xce` Tapscript version along with a hash of the microcode. The only race condition is reorging out a newly-defined microcode which can be avoided by waiting for deep confirmation before using it. Once the microcode introduction outpoint has been confirmed, its meaning does not change. Fullnodes may need to maintain multiple microcodes, which is why creating new microcodes is expensive. The advantage of the microcode scheme is that it allows the size of the SCRIPT to be used as a proxy for CPU load, and CPU load is bounded as long as there are no looping constructs and the number of `UOP_` micro-opcodes is bounded. This means microcode does not require a softfork to modify weight calculations in the future.


Updated on: 2023-06-15T18:18:59.572656+00:00