Skip to content

Add specs/: import proof-of-personhood and age-verification specs from zkspecs#87

Merged
vplasencia merged 3 commits into
privacy-ethereum:mainfrom
cc03668:specs/initial-import
May 14, 2026
Merged

Add specs/: import proof-of-personhood and age-verification specs from zkspecs#87
vplasencia merged 3 commits into
privacy-ethereum:mainfrom
cc03668:specs/initial-import

Conversation

@cc03668
Copy link
Copy Markdown
Contributor

@cc03668 cc03668 commented May 14, 2026

Summary

  • Adds a specs/ directory hosting protocol specs alongside the zkID reference implementation.
  • Imports 2/ZK-PROOF-OF-PERSONHOOD and 3/ZK-AGE-VERIFICATION from privacy-ethereum/zkspecs, renumbered in dependency order.
  • Slot 1/OPENAC is reserved and will arrive in a separate PR (still in editorial flux).
  • No implementation changes — documentation only.

What's included

# Spec Status Origin in zkspecs
1 OPENAC separate PR reserved — see follow-up PR
2 2/ZK-PROOF-OF-PERSONHOOD raw merged specs/5/README.md (originally 5/ZK-HUMAN-VERIFICATION) with updates from zkspecs#20 folded in; renamed during migration
3 3/ZK-AGE-VERIFICATION raw zkspecs#19 (originally 6/ZK-AGE-ELIGIBILITY); renamed during migration

Why move them here

The specs are tightly coupled to the implementation that lives in this repository (wallet-unit-poc/, paper/). Co-locating spec text with the reference implementation makes reviews, conformance work, and editorial updates a single PR cycle rather than two.

Why OpenAC is split out

1/OPENAC is still in editorial flux, with verifier-profile boundary questions tracked separately in #89. Keeping it on its own PR allows the proof-of-personhood and age-verification migration to land without being held up by that review.

A follow-up PR will add specs/1-openac/.

Renumbering

Slugs are renumbered in dependency order. Original zkspecs numbers (5, 6, 7) reflected the cross-project zkspecs registry, which doesn't carry meaning in this repository.

The temporary gap at slot 1 in this PR's index is intentional — it signals that OpenAC is in flight rather than missing.

Cross-references

  • 3/ZK-AGE-VERIFICATION references 1/OPENAC (it defines an OpenAC profile) and 2/ZK-PROOF-OF-PERSONHOOD via relative paths. The 1/OPENAC link will resolve once the follow-up PR merges.
  • 2/ZK-PROOF-OF-PERSONHOOD's in-body cross-reference to the age-verification spec is updated to 3/ZK-AGE-VERIFICATION.
  • The 1/COSS change-process link continues to point to privacy-ethereum/zkspecs/specs/1, so these specs remain governed by the same COSS process as the rest of PSE specs.
  • 2/ZK-PROOF-OF-PERSONHOOD's Verifier Implementations section references several repos under zkmopro/zkID (a fork of this repo). A short note in the section explains the split; the canonical spec home remains privacy-ethereum/zkID.

Follow-ups (separate PRs / actions)

Companion OpenAC PR (filed): #88. OpenAC tracking issue (relocated from zkspecs#22): #89. The corresponding zkspecs items (#19, #20, #21, #23, #22) have been closed with cross-links.

Open follow-up:

  • Decide what to do with the merged specs/5/README.md still live on zkspecs:main — leave as historical, or open a separate deprecation PR there with maintainer signoff.

cc @oskarth @vplasencia

🤖 Generated with Claude Code

Nicole Yeh and others added 3 commits May 14, 2026 18:06
Imports three protocol specs from privacy-ethereum/zkspecs so they live
alongside the zkID reference implementation:

- 1/OPENAC-CORE             (was zkspecs#23, slug 7)
- 2/ZK-HUMAN-VERIFICATION   (was zkspecs:specs/5 + zkspecs#20 updates folded in)
- 3/ZK-AGE-ELIGIBILITY      (was zkspecs#19, slug 6)

Slugs are renumbered 1-3 in import order. Cross-references between the
three specs use relative paths. The 1/COSS change-process link still
points to zkspecs and can be updated in review if needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Several verifier implementations referenced by the Verifier Implementations
section currently live in `zkmopro/zkID` (a fork of this repo) rather than
`privacy-ethereum/zkID`. Adds a one-line note so readers aren't surprised
by the cross-org URLs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The OpenAC core spec (1/OPENAC) is still in editorial flux; splitting it out
of this migration so the human-verification and age-eligibility specs can
land without being held up by OpenAC review.

- Removes specs/1-openac-core/ entirely.
- Updates specs/README.md: marks slot 1 as "in review" and explains the OpenAC
  spec will arrive in a separate PR.
- Updates 3/ZK-AGE-ELIGIBILITY References: link target renamed to
  ../1-openac/README.md (broken until the OpenAC PR merges, by design).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cc03668 cc03668 changed the title Add specs/: import OpenAC core, human verification, age eligibility from zkspecs Add specs/: import human verification and age eligibility from zkspecs May 14, 2026
Copy link
Copy Markdown
Member

@vplasencia vplasencia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look great! Thank you very much @cc03668 🚀

@vplasencia vplasencia merged commit 3d325e3 into privacy-ethereum:main May 14, 2026
1 check passed
@cc03668 cc03668 changed the title Add specs/: import human verification and age eligibility from zkspecs Add specs/: import proof-of-personhood and age-verification specs from zkspecs May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants