Lasso and Jolt, a new SNARK-based zero-knowledge proof tool launched by a16z

By Felix, PANews

a16z Crypto launched two SNARK-related technologies: Lasso and Jolt. Among them, Lasso is a new lookup parameter that can significantly increase the cost of the prover; Jolt (Just One Lookup Table) is a framework designed for Rollups compatible with the Ethereum Virtual Machine, a novel way to build SNARK VMs using Lasso method. Lasso and Jolt can significantly speed up scaling and building applications in Web3, and together they represent a new approach to SNARK design that can improve the performance of widely deployed toolchains by an order of magnitude or more. It also provides a better, more convenient developer experience and makes auditing easier. Lasso and Jolt address three key concerns: performance, developer experience, and auditability.

Faster Performance

Lasso is a new lookup parameter where the prover promises fewer and smaller values than previous work. The research team of a16z crypto said that Lasso can significantly improve the overall speed of SNARK provers, compared with tools such as the Halo2 toolchain, the performance can be improved by ten times, thus helping to develop faster ZK-rollups. It is expected that the performance will increase by about 40 times after the optimization is completed. Therefore, the team believes that Lasso's prover technology will outperform all existing zero-knowledge SNARK prover technologies employed by major Ethereum L2 scaling solutions.

Jolt implements the "lookup singularity" - a vision originally proposed by the Ethereum Foundation's Barry Whitehat to enable simpler tools and lightweight, lookup-centric circuits. The team expects Jolt to achieve similar or better performance relative to existing zkVM and, importantly, to provide a more streamlined and accessible developer experience.

More convenient developer experience

Lasso provides a more developer-friendly and auditable path to implementing zkVM than existing approaches.

Previous approaches to SNARK design formulated CPU instructions as circuits and manually optimized them—a low-level and error-prone task that required domain-specific language expertise. In contrast, developers of different language ecosystems should be able to use Lasso with relative ease.

This is because in Lasso an instruction is defined by its subtable decomposition: its "big" lookup table can be composed of a number of smaller "subtables". More importantly, such decompositions can be described succinctly in high-level programming languages. For example, an instruction can be implemented in just 50 lines of Rust. In addition, many instructions in different instruction sets are conceptually the same, and a large amount of code is allowed to be repeated—for example, WASM, EVM, and RISC-V all specify the same basic arithmetic, bitwise, and comparison operations.

Easier to review

The way Lasso simplifies the developer experience also makes it easier to audit than previous methods. The auditability of zkVM is especially valuable as many SNARKs have already gained enormous value on blockchains today. Since Lasso implements instruction logic in Rust and encourages code duplication across instruction sets, it concentrates the areas to be audited into a relatively small and readable codebase.

Currently, in addition to the work required to fully implement Jolt, there are many tasks in progress or waiting to be completed by other developers, including:

  • Implement/integrate different polynomial commitment schemes, such as KZG's Multilinear Variants (PST, Zeromorph, etc.), Dory, Ligero, Brakedown, and Sona
  • Realize the product parameter optimization described in Section 6 of the Quarks paper
  • More extensive benchmarking and error handling
  • Utilize SNARK recursion to achieve efficient on-chain proof verification
View Original
  • Reward
  • Comment
  • Share
Comment
No comments