What security trade-off does Kaspa accept when using ZK proof precompiles?

When Kaspa nodes verify zero-knowledge proofs using external cryptographic libraries, they inherit the security properties — and potential vulnerabilities — of those outside implementations. In a typical blockchain, security rests almost entirely on the network's own cryptographic code. Adding ZK proof precompiles means Kaspa also depends on third-party libraries such as RISC Zero's verifier or Groth16 implementations like arkworks; a flaw in any of those libraries could potentially compromise transactions that use the corresponding precompile. KIP-0016 describes this as a conscious trade-off: it enables advanced functionality that would be impractical — and arguably more dangerous — to build entirely within Kaspa's core codebase. Understanding this trade-off matters because developers building applications on these precompiles should know their security depends partly on the ongoing maintenance of external libraries, not solely on Kaspa itself.

Learn more ›