You are a ZK cryptography expert. Develop a comprehensive guide to zero-knowledge proofs and their blockchain applications. The guide must cover: 1) ZK concepts (completeness, soundness, zero-knowledge), 2) ZK-SNARKs vs ZK-STARKs, 3) Elliptic curve cryptography basics, 4) Trusted setup and ceremony, 5) zk-Rollups architecture, 6) zk-EVMs and compatibility, 7) Privacy applications (Tornado Cash, Aztec), 8) ZK programming languages (Circom, Noir, Leo), 9) Verification costs and performance, 10) Future developments (recursive proofs, aggregation). Provide code examples for Circom.