[EXPLORATORY, do not merge] proposal anchor groundwork (canonical + commitment) - #30
Draft
danielgorgonha wants to merge 3 commits into
Draft
[EXPLORATORY, do not merge] proposal anchor groundwork (canonical + commitment)#30danielgorgonha wants to merge 3 commits into
danielgorgonha wants to merge 3 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…ion + placeholder commit) EXPLORATORY (branch explore/proposal-anchor, do NOT merge): first cut of the Zcash-anchored proposal timestamp direction. anchor::canonical is a deterministic, unambiguous (length-prefixed, versioned) serialization of a proposal's immutable content -- the hash-independent foundation, fully tested (determinism, per-field sensitivity, no boundary/None-vs-empty collisions). anchor::commit is a PLACEHOLDER SHA-256; the real commitment is Poseidon-BN254 with the Noir circuit's params (aligned with the collaborator). Not wired into the app. Design + open decisions in temp/ANCHOR-DESIGN.md (gitignored). 5 tests.
… + anchor_memo_for)
EXPLORATORY (branch explore/proposal-anchor, do NOT merge). The commitment -> memo step:
encode_anchor_memo/decode_anchor_memo write and recover the commitment as a tagged, versioned
hex ('zkanchor:v1:<hex>', fits the 512-byte Orchard memo, greppable on explorers), and
anchor_memo_for(content) = encode(commit(content)). Hash-independent (works with any 32-byte
commitment; the Poseidon-BN254 swap and the field set stay the open decisions to align on).
Not wired into the send path yet. 8 anchor tests (round-trip + rejects non-anchor memos).
danielgorgonha
force-pushed
the
explore/proposal-anchor
branch
from
July 29, 2026 18:28
f9d89d7 to
58de0ce
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Exploratory branch — do NOT merge. First groundwork for the Zcash-anchored proposal timestamp + zkTimestamp direction, to align with the collaborator before committing the design.
anchor::canonical— deterministic, unambiguous (versioned + length-prefixed) serialization of a proposal's immutable content. The hash-independent foundation; fully tested (determinism, per-field sensitivity, no boundary / None-vs-empty collisions).anchor::commit— PLACEHOLDER SHA-256. The real commitment is Poseidon-BN254 with the Noir circuit's params (that swap is the open decision to align on).Not wired into the app. The full flow (canonical → commit → Orchard-memo anchor → Noir zkTimestamp → verify) and the open decisions live in
temp/ANCHOR-DESIGN.md(gitignored). 5 tests, fmt + clippy clean. Kept offmainon purpose.