Author: Hampus Sjöberg 2017-11-03 12:59:46
Published on: 2017-11-03T12:59:46+00:00
In a discussion on the bitcoin-dev mailing list, a user named Hampus asked about the need for Simplicity code to be publicly available in the blockchain when a code path takes advantage of a jet. He pointed out that big algorithms such as EDCA verification/SHA256 hashing would take up a lot of space in the blockchain. Russell O'Connor responded by referring to section 3.4 of the Simplicity proposal and explaining that jets are a way to recognize popular Simplicity expressions and directly evaluate the function using specialized C or assembly code instead of interpreted Simplicity. For instance, when Simplicity expression for ECDSA verification is encountered, the interpreter might directly call into libsecp instead of continuing with interpreted Simplicity. The Simplicity code for a jet could be defined as "consensus" in a softfork, thus mitigating the need for it to be provided within every script output. When the Simplicity interpretor encounters an expression that has a jet, it would run the C/Assembly code instead of interpreting the Simplicity code. By formal verification, they could ensure that the two types of code match.
Updated on: 2023-06-12T21:58:00.831030+00:00