{
  "slug": "ecne",
  "name": "Ecne",
  "tagline": "Early R1CS uniqueness checker in Julia",
  "maintainer": "Franklyn Wang (0xPARC)",
  "url": "https://github.com/franklynwang/EcneProject",
  "repo": "https://github.com/franklynwang/EcneProject",
  "category": "zk-circuits",
  "targets": [
    "R1CS"
  ],
  "approach": "Rule-based propagation to prove output uniqueness of R1CS constraint sets",
  "license": "Open source (GPL-3.0)",
  "status": "Low activity research tool",
  "summary": "Ecne was the first widely used tool for proving that an R1CS constraint set uniquely determines its outputs, the property later automated with SMT by Picus. It remains useful as a lightweight second opinion on small R1CS systems.",
  "details": [
    "Ecne propagates uniqueness through constraints with a set of rules rather than a solver, so it is fast but incomplete: a failure to prove uniqueness is not a bug report."
  ],
  "strengths": [
    "Simple, fast, historically significant.",
    "Works directly on R1CS output of any compiler."
  ],
  "limits": [
    "Incomplete rule set; many false negatives.",
    "Julia dependency; little maintenance.",
    "No functional properties."
  ],
  "fit": [
    "Only as a cross-check; prefer Picus or CIVER."
  ],
  "references": [
    [
      "EcneProject repository",
      "https://github.com/franklynwang/EcneProject"
    ]
  ],
  "category_name": "ZK circuit verification",
  "page": "https://sorryfree.com/frameworks/ecne/",
  "updated": "2026-09-13"
}