TalkCo supporting research

ZK and smart-contract control-plane evidence

EARLY EVIDENCE 9 sections

Disposition: Keep signed local evidence, capabilities, scoped transparency, and signed storage receipts canonical. Add ZK only for a concrete anonymity or abuse-control requirement; add contracts only as narrow public coordination anchors.

#Role matrix

RequirementDefault mechanismOptional ZK mechanismOptional contract roleCurrent disposition
Private membership eligibilitySigned TalkCo membership event or capabilitySemaphore-style membership proofRoot anchorLocal evidence first
Non-revocationSigned revocation frontier or scoped Key TransparencyAnonCreds proofStatus-root anchorLocal/KT first
Anonymous admissionBlind invitation or Privacy Pass tokenSemaphoreIssuer/registry onlyPrivacy Pass first experiment
Anonymous rate limitingSigned quota/admission tokenRLNEpoch roots/slashingRLN later abuse-control adapter
Storage possession/integritySigned Merkle challenge-responseZK proof only for a special marketplaceAudit/settlementNo ZK initially
Commitment/fork evidenceSigned roots, witnesses, scoped KTTransition proof only if requiredBatch-root anchorKT and witnesses first
Committee rotationSigned ThresholdAuthorizedRootHidden committee proof only if requiredCommitment/epoch registryContract optional
Conditional key releaseRecipient key and signed grantPredicate proof to release nodesConditions/payment/committee stateGeneric adapter, TACo later

A ZK proof must name its public inputs, witness, issuer, revocation/freshness state, replay/nullifier behavior, verifier state, and offline fallback. “Private membership” is not a sufficient statement.

#Candidate systems

Semaphore is a useful anonymous group-signaling reference: it proves knowledge of a group secret and emits a scope-bound nullifier. Its public root, scope, message, and nullifier still create a correlation surface, and it does not authorize decryption. Semaphore specification

RLN is narrower: it supports anonymous rate limits through epoch-linked nullifiers and can expose a secret when a user exceeds a quota. It is abuse control, not private-community authorization. RLN formal specification

Privacy Pass is the smallest first experiment for blind admission or rate-limited invitations. It still needs issuer, replay, token-lifetime, challenge-binding, and quota semantics. RFC 9578

AnonCreds is relevant only if TalkCo must interoperate with independent issuers and prove predicates or non-revocation. Its registry and issuer governance remain part of the trust model. AnonCreds specification, anoncreds-rs

ZK storage proofs are not justified initially. Storage peers already know the ciphertext they hold; signed Merkle challenges and receipts are smaller, easier to repair, and more useful for identifying failures. Filecoin and Walrus remain heavy economic/chain benchmarks. Filecoin proof of storage, Walrus operations

Smart contracts should be limited to batched commitment anchors, committee/epoch registries, lease/payment settlement, or dispute evidence. They must not contain posts, comments, recipient lists, peer identities, access lists, or shard placement. Contract outage, reorg, fee spikes, censorship, and upgrade must not prevent already-authorized offline reading.

#Candidate profiles

#A. Local evidence baseline

TalkCo signed authority events, signed capabilities, per-device HPKE, scoped Key Transparency, signed storage challenges, and no ZK or contract dependency in ordinary content access.

#B. Anonymous admission and abuse control

Profile A plus Privacy Pass-style blind admission tokens, optional Semaphore-style anonymous signaling, or optional RLN-style per-context quotas. A successful proof still receives a TalkCo grant or key envelope; it does not become authorization by itself.

#C. Distributed conditional release

Profile A plus a generic threshold ConditionalKeyRelease interface, optional AnonCreds or ZK eligibility evidence, scoped committee roots, and an optional chain commitment/payment anchor. This is research-only until it passes liveness, collusion, stale-state, metadata, recovery, and chain-outage tests.

#Falsifiers

  • A stale membership root grants access after the declared freshness boundary.
  • A nullifier or admission token links the same identity across contexts.
  • Chain outage prevents cached authorized content from being read offline.
  • A chain reorg silently overrides a conflicting TalkCo authority transition.
  • A ZK storage proof adds cost without detecting withholding, corruption, or correlated failure.
  • A threshold release cannot revoke a key already delivered to a requester, cache, backup, or old device.
  • A circuit or verifier-key upgrade changes public-input, root, nullifier, or scope semantics without failing closed.

#Recommendation

Keep ZK and contracts out of ordinary posts, comments, attachments, membership, and storage flows. Prototype Privacy Pass before custom circuits. Consider Semaphore only for anonymous group signaling and RLN only for bounded anonymous rate limiting. Use AnonCreds only for external-credential interoperability. Define a generic conditional-release seam for TACo/PRE-like networks, but do not adopt TACo as a v0 dependency.