Argument

Argument is Open-Sourcing Sphinx

Argument Computer Corporation (Argument) is open-sourcing Sphinx, our fork of Succinct Labs’ SP1 zero-knowledge virtual machine (ZKVM).

Sphinx underpins critical elements of our zero-knowledge proof efforts, including light clients in collaboration with Wormhole and Kadena. It also drives the forthcoming STARK engine of Lurk, Argument’s next-generation zero-knowledge virtual machine

Sphinx retains the same architecture as SP1, which integrates the Plonky3 prover toolkit, as well as other prior work. We are immensely grateful to Succinct Labs for their work on SP1, which continues to accelerate advancements in the proof ecosystem in a fully open-source manner. The results we’ll announce in the coming days would not have been possible without their contributions.

The Sphinx VM can generate cryptographic proofs of RISC-V assembly (specifically RV32IM). It has provided us with a solid foundation from which we’ve designed the next generation of the Lurk ZKVM, to replace our previous backend based on Nova and SuperNova. We developed Sphinx privately until we were confident that its performance and characteristics met our technical goals and those of our customers. We are pleased to report that this approach was highly successful, as our upcoming blog posts will detail. Sphinx is named after the Sphinx observatory, marking the next iteration of our star-gazing adventure!

Building on this success, we now plan to contribute our enhancements back to SP1, just as we previously did with Nova.

What’s in Sphinx Today?

We are particularly excited by SP1’s precompile-centric architecture, which allows developers to add custom circuits for certain application-specific operations in the VM with minimal overhead. We had adopted a similar principle in the prior version of Lurk and are convinced this approach bridges the gap between ZKVMs and custom ZK, leveraging the best of both worlds. The lookup-based communication bus used by precompiles also enables us to implement new features, and we certainly intend to make those lookups shine in the next version of Lurk.

Sphinx offers several features for light client developers, including:

  • Chips for field operations defined on quadratic field extensions,
  • Precompiles for the G1 and G2 groups of the BLS12-381 curve, leveraging the above,
  • A sign-agnostic square root chip,
  • Decompression precompiles for Secp256k1 and BLS12-381 that respect their curve-specific notions of sign.

We have integrated these precompiles into our fork of bls12_381, demonstrating significant speed improvements.

There are additional changes1 in development, aimed at making the prover more adaptable to various input instructions, given that the design of Lurk directly interprets programs without emulating a hardware-oriented instruction-set-architecture like RISC-V.

Sphinx is currently undergoing rapid development and has not yet completed an audit (unlike SP1).

Why Are We Open Sourcing?

We believe that zero-knowledge doesn’t have to be zero-sum. Open-source software moves the whole field forward, and drives standards that will enable the next generation of builders. The fully open and permissive licensing approach taken by projects like Succinct’s SP1 and Polygon’s Plonky3 is not only developer-friendly, it’s also in our opinion the best way to build high-quality cryptographic software. As Linus’ Law says: “many eyes make all bugs shallow”.

We’re excited to contribute to the fast-growing SP1 ecosystem with our release of Sphinx, and we look forward to continuing to share and upstream our work as we build upon this foundation for future projects.

Stay Tuned!

In the coming days, we will provide more details about our work with Sphinx, including exciting updates on our light client projects and the next version of Lurk!

Footnotes

  1. For example, a static approach to generic column management using hybrid-array, and a slightly more flexible MachineAir trait under development.