simplicity
simplicity copied to clipboard
Simplicity is a blockchain programming language designed as an alternative to Bitcoin script.
Some Bitcoin primitives are redundant because I thought it was impractical to iterate over all possible inputs of a transaction which is limited to 2^32 inputs due to limits in...
It is suggested in https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016508.html that signatures cover the input's scriptPubKey: * The hash of the scriptPubKey (or nothing if MASK) Simplicity's Bitcoin primitives should be expanded to make this...
The tech report and wiki include the following jets (in front of arrow), but the code base renamed them (after arrow). - tap-leaf-hash → tapleaf-hash - tapbranch → tappath -...
Double check this, but the memory allocation of many bit sized frames ends up bloated due to the large UWORD size. Better just to make it 8-bit when possible.
The current C code cannot be compiled for WASM, which prevents Simplicity to be run in the browser. rust-simplicity depends on C FFI, so it has the same problem. For...
https://github.com/BlockstreamResearch/simplicity/blob/5e7976326156ac9db9b5f8695dd597e8e370e130/C/deserialize.c#L46 It is unclear what illegal children are. Non-case nodes may not have hidden children, so these children are illegal. However, a case node may not have two hidden children,...
I found a program that seems to exceed the expected runtime given its cost. The program is constructed as follows: ``` f(0) := iden f(n + 1) := comp (take...
It would help with review and reduce potential human error to autogenerate [how the C code decodes jets](https://github.com/BlockstreamResearch/simplicity/blob/7a6ba113dff8d77e65a5f35d2ac613e219633125/C/primitive/elements/primitive.c#L70).
We have never used it in practice, and now it is being used to encode a "unary" disconnect for reasoning about commitment-time Simplicity programs.
As noted by @uncomputable, the definition of the IMR in the Tech Report is not the same as the definition used in Haskell and C code. In the Haskell and...