Skip to content

feat(zk): prove that a redacted derivative originates from registered evidence #121

Description

@enliven17

Summary

Enable publication of a privacy-preserving proof that a redacted derivative was produced from registered source evidence under an allowed transformation policy.

Motivation

Harpocrates needs this capability to become a production-grade, interoperable evidence protocol while preserving privacy, deterministic verification, and safe failure behavior. The implementation must reuse existing metadata, manifest, ZK, backend, frontend, and Soroban boundaries instead of creating parallel truth sources.

Scope

  • Specify the private witness, public inputs, transformation commitment, parent proof binding, and allowed redaction operations.
  • Implement a Noir prototype with versioned domain separation and bounded media/chunk commitments.
  • Ensure removed regions, original frames, secrets, and transformation parameters marked private never enter public inputs or logs.
  • Integrate browser proving, local verification, artifact versioning, and Soroban verification planning.
  • Publish benchmark and feasibility limits before enabling the feature by default.

Acceptance criteria

  • Positive and adversarial vectors cover crop substitution, reordered chunks, altered visible regions, wrong parent, replay, and malformed proofs.
  • Witness zeroization and cancellation paths are tested.
  • Cross-layer vectors agree across Noir, JS, backend tooling, and verifier encoding.
  • Security documentation states cryptographic assumptions and unsupported transformations.
  • Existing lint, type checks, tests, builds, contract checks, and privacy guarantees remain green.

Engineering expectations

Use versioned canonical encodings, explicit error/status types, bounded resource consumption, idempotent operations, and privacy-safe observability. Schema, contract, circuit, or artifact changes require migration and compatibility analysis. Cryptographic changes require stable vectors and a written threat model.

Out of scope

Live production deployment, real credentials or sensitive media, unrelated visual redesigns, and broad dependency upgrades not required by this objective.

Definition of done

A maintainer can reproduce success and adversarial failure paths locally, understand the trust and privacy boundaries, operate the feature safely, and roll it back without undocumented state repair.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stellar WaveIssues in the Stellar Wave programarea/zkNoir circuits and proof toolingcomplexity/trivial100 points - small, bounded changehelp wantedExtra attention is neededtype/featureNew feature or enhancement

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions