Tree++
Tree++ is a language for smarter Bitcoin contracts. The following summarizes the vision.
Advanced Scripting
At the core of Tree++ there is a templating language which can express complex Bitcoin Scripts.
- Evaluate constant expressions
- Parametrized templates
- Unroll loops
- Compose opcodes
- Library of composed opcodes
- E.g., multiplication, bitwise XOR, bitwise shifts, Blake3, …
- Hints
- E.g. reduce: division to a multiplication, square root to a multiplication, modulo to a multiplication., …
- Lookup tables
- Statefulness
- Lamport signatures (message sizes: u8, u32, u160, …)
- Also Winternitz signatures
- In the future maybe OP_CHECKSIGFROMSTACK
Graphs of Transactions
- Compose Tree++ scripts into potentially large Taptrees
- Model contract logic in form of sequences and graphs of transactions
- Statefulness
- Presigned transactions (also sighashes!)
- Connector outputs
- Trigger transactions
- Timeouts
- Library of parametrizable sub-graphs
- E.g. BitVM, zkp verifier, bridge
- Documentation and Tutorials
- Online editor with examples (like https://ide.scriptwiz.app)
- Package manager (Cargo)