Skip to content

Latest commit

 

History

History
37 lines (31 loc) · 1.15 KB

File metadata and controls

37 lines (31 loc) · 1.15 KB

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

Tooling