Your Zcash address, but readable.
Coppice Names maps short .zec names to Zcash Unified Addresses — with no sidechain, no operator, and no consensus change. Registration authority stays hidden behind zero-knowledge proofs, and the 1 ZEC bond behind every name is always refundable.
A naming layer Zcash already knows how to carry
Coppice Names is an application protocol, not a new chain. Zcash consensus stays the sole authority for validity, ordering, and spentness; proofs establish hidden ownership; a deterministic reducer turns canonical history into state.
A public registry publishes who owns what, and every update becomes identity data. A hosted resolver can hide records, but its answers are claims — a censorship and surveillance point. A consensus-level registry demands a network upgrade and hard-codes name policy into the chain. A mutable local index is only as honest as whoever edited it last.
Coppice Names keeps the chain as the only authority, hides authority behind proofs, and buys speed with local evidence instead of trust.
Commit, reveal, refresh, release
Bulletins ride inside ordinary Orchard transactions on Zcash. Zero-knowledge proofs carry the private relations; deterministic replay of the canonical chain decides everything public.
Pledge in secret
A commitment hides the name, the target epoch, and the owner. Mempool watchers learn nothing, and a commit is not a reservation.
Claim in the open
Inside the name's daily window, a proof-carrying reveal opens the commitment and creates the 1 ZEC bond note. Canonical order decides competing claims.
Update and renew
Changing the address and renewing the lease are one operation — same hidden authority, full new lease. Transfer to another key is impossible by construction.
Spend the bond
No release bulletin exists: releasing is an ordinary spend of the bond note. The name then sits out one epoch of cooldown before anyone can claim it.
The key that controls the record is never published
Every accepted operation proves, in zero knowledge, that the same hidden Orchard authority controls the bond before and after. The proof is fixed: Halo2 over the Pasta curves, bound into the deployment's verifier identity.
Every resolver computes the same answer
Lifecycle, lineage, windows, and conflicts come from replaying authenticated Zcash history through one reducer. Two honest resolvers at the same tip cannot disagree — and a proof-valid note can never silently replace accepted state.
Hidden by construction, public by necessity
A naming protocol must publish enough for strangers to resolve names. Coppice Names publishes exactly that — and nothing about who holds the keys.
Authority and note plaintexts
The per-name spending authority is never published. The commit's opening — name, epoch, owner, secret — is visible only to the owner until the reveal. Bond notes are ordinary shielded notes.
Name, address, schedule, lineage
After the reveal, the name and its Unified Address are public, and operations for one name are linkable. That is the price of resolution without an operator — stated plainly, not hidden.
Resolving without asking
Wallets acquire canonical evidence during ordinary synchronization, so resolving a name needs no name-specific remote query — nobody learns which name you looked up.
A visible gap before reassignment
After expiry or release, the name resolves to nothing for a full epoch of cooldown. Users get a deterministic warning interval before a different record could take the name.
The wallet retains a rolling window of compact chain evidence during ordinary synchronization and reuses the commitment-tree facts it already maintains. Resolving any exact name then touches only that name's scheduled windows plus one referenced historical commit — not the whole chain, not a third-party API.
Speed comes from derived local evidence, never from promoting an index into authority.
Replay benchmarks are isolated in-memory measurements, not end-to-end latency promises; network acquisition, persistence, and live proof workloads remain to be qualified. See the whitepaper's performance section.
A refundable bond, not a rent
Holding a name costs capital, not fees to an operator. Nothing is burned, nothing is levied, and the two costs of using the protocol play different roles.
| Cost | What it is | Where it goes | What it prices |
|---|---|---|---|
| Bondexactly 1 ZEC per active name | Refundable capital locked in the record's own shielded note | Back to the owner on release, minus the transaction fee | Holding a name active |
| Transaction feesnormal Zcash policy | Ordinary fees for publishing commit, reveal, refresh, and release transactions | Miners, under Zcash fee and relay policy | Publishing an operation at all |
A fixed bond does limit accessibility as ZEC's purchasing power changes — a deliberate, documented limitation.
Built, verified, not yet deployed
The protocol, circuits, reducer, and wallet integration are implemented and pinned by conformance vectors with independent consumers. What remains is assurance and deployment work — listed, not hidden.
Implementation and conformance
Protocol construction, deterministic reducer, REVEAL and REFRESH circuits, exact-name resolver, wallet integration, and a positive conformance artifact verified by independent Rust and Python consumers.
Independent review and qualification
Formal security definitions and proof sketches, independent cryptographic review, complete adversarial test coverage, and end-to-end deployment qualification are open work. Production parameters and activation height are TBD.
Read the details ↗