Why are Groth16 proofs compact enough for Kaspa on-chain verification?
Groth16 proofs are compact because each proof consists of only three group elements, no matter how complex the program being verified. On a blockchain, proof size directly affects transaction size — larger proofs mean larger transactions, which raises fees and strains network bandwidth. Kaspa's Groth16 precompile (tag 0x20) uses this small proof to cryptographically confirm that a program ran correctly, checking both an image ID that identifies the program and a journal digest that commits to its public outputs. For anyone building or using Kaspa applications that rely on proof verification, the compact format helps keep those transactions lean and affordable.