This is an exploration project with a goal to implement a simple STARK verifier in Simfony language.
Simfony is a Rust-like language that compiles to Simplicity assembly. The stack is developed by Blockstream, and it is currently deployed in the Liquid sidechain testnet.
One of the key concepts of Simplicity is Jets:
- The core language is very concise (nine GADT operators)
- You can implement pretty complex programs using just the core, but it would take kilobytes of code and minutes of execution
- However you can replace common sub-programs with "Jets" — formally proven equivalent implementations in C
- This opens a clear path for introducing new exciting features without softforks, with a follow-up optimization route
STARKs are perfect candidate for this approach!
- Fibonacci square over toy field PoC
- Liquid testnet deployment
- QM31 extension field
- Circle polynomial
- Stwo verifier core
- Clone this repo
- Install
simfony
CLI tool withmake install
- Run tests with
make test
- Generate proof with
make proof
- Build STARK verifier program with
make build
- Run the program using the generated witness with
make run
This is a small CLI tool that helps with the development of Simfony programs.
Install simfony
binary:
cargo install --git https://github.com/keep-starknet-strange/stark-symphony simfony-cli
Build a Simfony program:
simfony build src/simple_fib.simf --witness src/simple_fib.wit --output-path src/simple_fib.bin
Run a Simfony program:
simfony run src/simple_fib.simf --witness src/simple_fib.wit --param src/simple_fib.param
VSCode extension providing syntax highlighting and autocompletion for the Simfony programming language.
Read the instructions.