v3.25.0 — Private Slots, Custody Vault, Post-Quantum Signatures
Four deliverables — (a) consent, (b) reversible custody, (c) secret-keeping, (d) post-quantum — plus the architect's rotating one-shot deposit slots.
Private rotating deposit slots (anti-grief + privacy)
A deposit address can now be derived with a secret salt: sha256(salt || ring_hash || rotation). Without the salt the address is uncomputable even from a full copy of the public chain, so no outsider can find where to burn — only the owner can program their agent. After a burn is consumed, the slot rotates to a fresh address, so the same slot can never receive a programming burn twice; a leaked address is already spent. The ring's sealed hash never changes — only the derivation rotates, so the chain stays immutable. Echelon accrues cumulatively across rotations. Faculty-unlock addresses are salt-private too. cphy.py salt set stores the salt in the encrypted vault.
(c) keystore.py — encrypted vault + Shamir splitting
Zero-dependency authenticated encryption (scrypt/PBKDF2 KDF, HMAC-SHA256-CTR keystream, encrypt-then-MAC) with k-of-n GF(256) Shamir secret sharing so no single share reconstructs a secret. The precondition for an agent that keeps a secret; the home of the rotation salt. Post-quantum at rest (hash/PRF-based).
(d) pqsign.py — post-quantum hash-based signatures
Lamport one-time signatures under a Merkle tree (minimal XMSS): agent attestations and pack exports are signed with a scheme whose security is pure hash preimage resistance — quantum computers only Grover-halve it (256 → 128-bit). Stateful (never signs a leaf twice). The one PQ primitive that needs no L1 change. The Timechain's SHA-256 commitment layer was already post-quantum; this extends that to cross-agent authenticity.
(b) contracts/CypherTempreEscrow.sol — returnable custody (source only)
The reversible counterpart to keyless burns: lock CPHY against a ring hash and recover it later; the agent reads lockedOf(ringHash) (view-only) and weights the ring while the lock stands — without ever holding a key. NOT deployed — deploy with your keys after counsel. cphy.py ships a tested stdlib keccak256 (verified against canonical ERC-20 selectors) so its function selectors are correct, not fabricated.
Selftests: cphy 58 · keystore 7 · pqsign 7, all PASS and now run inside tests/selftest.py (phase24). All five bundles SkillSpector SAFE 4/100.
🤖 Generated with Claude Code