Groth16 es un zk-SNARK basado en pairings, con las pruebas más cortas y la verificación más rápida en producción hoy en día: tres elementos de curva elíptica (~192 bytes) y una verificación que cuesta aproximadamente 1,5 millones de compute units en Solana. El circuito de retiro de SolMask se compila a Groth16 sobre BN254, la misma curva que usan los rollups de EVM, así que el verificador en cadena es código muy probado.
Cada retiro de SolMask lleva una prueba Groth16. La prueba certifica cuatro afirmaciones a la vez: el probador conoce un nullifier_secret cuyo hash Poseidon coincide con el nullifier revelado; el commitment correspondiente es una hoja del árbol de Merkle cuya raíz coincide con una raíz publicada recientemente; el slot actual de Solana es posterior al unlock_slot del commitment; y el destinatario, el importe y la comisión del relayer en la transacción son los que el probador autorizó.
Groth16 requiere un trusted setup por circuito. El setup de SolMask fue una ceremonia multipartita con una transcripción pública, de modo que ningún participante por sí solo pueda falsificar pruebas.