BattleZips
  • Awesome Circom
  • 🔬Theory
    • Prerequisite Knowledge
    • Resources
      • White Papers & PDF's
      • Blogs and Writeups
      • Videos
      • Important Entities
      • Communities
    • Proving Schemes
    • Primitives
      • Hash Functions
      • Public Key Cryptosystems
        • Note on L1 key registry → L2 hot key + callback to circuit-optimized hash functions
        • ECDSA & secp256k1
        • EdDSA
      • Merkle Trees
        • What is a Merkle Tree?
        • What is a merkle proof of inclusion?
        • zk-kit
        • Incremental Merkle Trees
        • Sparse Merkle Trees
        • Tree Arity (Binary, Quinary)
      • Semaphore
      • Arithmetic Circuits
  • 🏗️Development
    • Circom Language
      • Installation
      • IDE
      • Signals and Variables
      • Signal Assignment and Constraint Generation
      • Conditional Statements
      • Components and Templates
      • Circuit Compilation
      • Syntax
    • SnarkJS
      • Proving Schemes
      • Powers of Tau
      • ZK Keys
      • Zero Knowledge Proofs
      • On-Chain ZKP
      • Page 2
    • circomlib
      • Basic Math Constraints
      • Multiplexing
      • Hashing
      • EdDSA
      • circomlibjs
    • circom-tester
    • hardhat-circom
    • SHIELD
    • Circomspect
  • 🌆Ecosystem
    • Circom vs Other Solutions
      • Domain-Specific Languages
      • ZK Virtual Machines
      • ZK Ethereum Virtual Machines
    • Communities to Join
    • Recorded Content
    • Projects
  • 🛳️Examples
    • BattleZips V1
      • On the BattleZips Project
      • Docs holder
        • Join Game UML Sequence Diagram
        • Play Game UML Sequence Diagram
        • End Game UML Sequence Diagram
      • ZK Privacy Stack
      • Deploying Artifacts to Prod
      • Browser Client
    • RollupNC
      • Smart Contracts
      • Account/ State Tree
      • Transaction Tree
      • Layer 1 Deposits to Layer 2
      • Layer 2 Transacting
      • Layer 2 Withdrawals to Layer 1
Powered by GitBook
On this page
  • Why Circom?
  • Alternative DSL's
  • L2 zkVM's
  • L2 zkEVM's
  1. Ecosystem

Circom vs Other Solutions

Why is Circom a dependable solution?

PreviousCircomspectNextDomain-Specific Languages

Last updated 2 years ago

Why Circom?

Circom is a software development kit that, beyond SnarkJS's preference for EVM, is agnostic to underlying tech it runs on. Circom's creators have done a fantastic job of abstracting away vast amounts of mathematical complexity from the developer's perspective. There are many applications that may not need the EVM, however many Solidity developers are unwilling to abandon the security of the root Ethereum mainnet.

Further, the Ethereum ecosystemZ has clearly chosen Circom as the current preferred method for applying zero knowledge on-chain. MACI, Tornado Cash, Semaphore, and Rate-Limiting Nullifier all specify circuits in the Circom DSL. As a newcomer to this space, you will run into issues you simply cannot answer yourself in a timely manner. It is imperative that you find a community that can support your R&D via forums and chat rooms.

Alternative DSL's

ZoKrates

Aztec Noir

Halo 2

L2 zkVM's

Mina

Starkware

Aleo

L2 zkEVM's

Polygon Hermez

Scroll ZK EVM

🌆
FOSS