docs: remove legacy specs + rewrite docs for the ZK-friendly stack#47
Merged
Conversation
Phase 6 (final) of the ZK-friendly stack migration — the cleanup pass.
Deleted the six pre-pivot design specs that described the X25519/HKDF/
ChaCha20/Blake2b stack or pre-migration roadmaps, all superseded by the
babyjub-*.md / protocol-*.md / zk/ specs:
- wallet-signature-derived-keys.md (X25519 wallet derivation)
- wallet-bound-private-messaging.md (X25519 envelope design)
- secret-sharing-poc-build.md (Blake2b PoC build)
- provable-shared-secrets-extensions.md (pre-pivot ZK roadmap)
- poseidon-commitment-format.md (superseded by protocol-commitment.md)
- issues/protocol-versioning-backward-compatibility.md
Repointed the dangling cross-references the deletions left behind
(poseidon-hash-fixed/sponge, babyjub-keypair, text-utf8-v1,
crypto/poseidon.rs, crypto/Cargo.toml) at protocol-commitment.md.
Rewrote README.md and packages/sdk/README.md around the actual current
stack: BabyJubjub + Poseidon + vector Pedersen + Groth16, the real
workspace layout (apps/{protocol,curve,zk}, crates/*, packages/sdk), the
sui-devnet:9000 dev environment, the on-chain proof flow, and the
current workflow names. No X25519/Blake2b/legacy prose remains.
Fixed stale references to the deleted wallet-derived-keys package — the
BJJ key derivation now lives in the SDK's wallet-keys module
(crypto/keypair.rs, crypto-wasm/lib.rs, babyjub-keypair.md).
Dropped the dead wallet-derived-keys release rule from the SDK's
.releaserc.json; added explicit no-release rules for the migration-era
scopes (dapp, contracts, move-contracts, proofs, infra) for clarity
(the catch-all already covered them).
Deleted scripts/import-env-keys.ps1 (imported the old X25519/Ed25519
demo keys) and the matching ALICE/BOB/CHARLIE_ED25519_PRIVATE_KEY block
from .env.example.
Repo-wide grep is clean for the legacy crypto stack; the only remaining
matches (`ChaCha20` in babyjub-cipher.md's rationale table, `Blake2b` in
the domain-tag construction) are current-design references, not legacy.
Verification: cargo check (crypto, crypto-wasm), .releaserc valid JSON.
Closes #40
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
Owner
Author
|
Review pass: APPROVE — no critical, important, or nits. Verified: no kept file references any of the 6 deleted specs; the poseidon-commitment-format → protocol-commitment repoint resolves everywhere; every SDK + Move symbol in the rewritten READMEs exists; workflow names + scripts + workspace layout match reality; grep gate clean (remaining ChaCha20/Blake2b/HKDF hits are current-design rationale/domain-tag, not legacy); .releaserc valid with sdk rules intact; .env keeps the Sui-tx-signing dev keys, drops only the import-env-keys block. cargo check clean. Merging — this is the final phase of the migration. [agent comment] |
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.
Summary
Phase 6 (final) of the ZK-friendly stack migration: the cleanup pass. Removes the legacy specs, rewrites the docs around the actual current stack, and fixes the last stale references — so the repo reads as if the X25519/Blake2b stack never existed.
Linked Issue
Closes #40
Changes
Deleted 6 legacy specs (−2745 lines), all superseded:
wallet-signature-derived-keys.md,wallet-bound-private-messaging.md(X25519 design)secret-sharing-poc-build.md(Blake2b PoC)provable-shared-secrets-extensions.md(pre-pivot ZK roadmap)poseidon-commitment-format.md(→protocol-commitment.md)issues/protocol-versioning-backward-compatibility.mdFixed dangling cross-refs the deletions left in
poseidon-hash-fixed/sponge.md,babyjub-keypair.md,text-utf8-v1.md,crypto/poseidon.rs,crypto/Cargo.toml→ repointed atprotocol-commitment.md.Rewrote
README.md+packages/sdk/README.mdaround the real stack: BabyJubjub + Poseidon + vector Pedersen + Groth16, the actual workspace layout (apps/{protocol,curve,zk}, crates/*, packages/sdk), thesui-devnet:9000dev environment, the on-chain proof flow, current workflow names.Fixed stale
wallet-derived-keysreferences (deleted package, Phase 3) → the SDK's wallet-keys module, incrypto/keypair.rs,crypto-wasm/lib.rs,babyjub-keypair.md..releaserc.json: dropped the deadwallet-derived-keysrule; added explicit no-release rules for migration-era scopes (dapp, contracts, move-contracts, proofs, infra).Removed
scripts/import-env-keys.ps1+ theALICE/BOB/CHARLIE_ED25519_PRIVATE_KEYblock from.env.example.Acceptance (from #40)
ChaCha20inbabyjub-cipher.md— a rationale table explaining why the protocol uses Poseidon-stream instead of ChaCha20Blake2bin the domain-tag construction (crypto/poseidon.rs, specs) — the currentdomain_tagprimitiveTesting
cargo check -p crypto -p crypto-wasm— clean (the lib.rs/Cargo.toml comment edits don't affect compilation).releaserc.jsonvalidates as JSON[agent PR]