- It implements STARKs, or hash-based SNARKs, which boasts a faster prover compared to elliptic curve-based SNARKs like Groth16 or PLONK. This improvement comes mainly from running the majority of the computation in a small prime field (32 bits); Elliptic curve-based SNARKs, on the other hand, need to use big prime fields (e.g. 254-bit prime fields), which incur a lot of overhead as most computation does not require that many bits.
- Even amongst multiple STARK backends, however, S-two provides state-of-the-art prover performance by running the Mersenne-31 prime field (modulo ), which is faster than another popular 32-bit prime field like BabyBear (modulo ). We suggest going through this post for a breakdown of why this is the case.
- Finally, S-two offers various CPU and GPU optimizations that improves prover performance as shown in Figure 1 below. It can also be compiled to WASM, allowing for fast proving in web environments.

On zero-knowledge:As of the time of this writing, S-two does not provide the “zero-knowledge” feature. “Zero-knowledge” here refers to the fact that the proof should not reveal any additional information other than the validity of the statement, which is not true for S-two as it reveals to the verifier commitments to its witness values without hiding them by e.g. adding randomness. This reveals some information about the witness values, which may be used in conjunction with other information to infer the witness values.