Signing Vibelets

In Federated Wiki, every page edit is recorded in the journal as a timestamped delta. This natural history log already includes information about what changed and who made the change.

> Signing Vibelets and Agent Output — Enhanced Design & Critique

By layering cryptographic signatures on top of this structure, we gain stronger guarantees about **authorship**, **authenticity**, **traceability**, and **tamper-resistance**—especially valuable in a federated, agent-driven environment where trust must be distributed and verifiable.

# Design Overview - Every Vibelet, plan, or agent-generated edit can be **signed cryptographically** using a private key. - The resulting signature is timestamped and stored in the journal alongside the edit. - The signature covers both the content and the timestamp, ensuring edits cannot be modified or replayed without detection. - Public keys can be published via wiki metadata or embedded in favicons, allowing verification without centralized key servers. - Local trust policies determine which signatures are accepted, enabling decentralized and individually tunable verification.

# Use Cases Enabled - **Signed agent output** — An agent edits or creates a wiki page and signs its work, allowing audit and rollback. - **Vibelet integrity checks** — Vibelets can be signed to ensure that code executed in the browser was authored or verified by a trusted source. - **Signed forks as endorsements** — When a user forks a page and signs it, it signals both review and approval of the content. - **Peer review via signatures** — Contributors can add review signatures to edits or ghost pages, adding layers of trust without blocking contribution. - **Immutable plan records** — AI plans, prompts, and configurations can be signed to verify who created or last approved them.

# Advantages of the Approach - **Tamper Detection** Signatures break if any part of the signed content is altered. This provides strong protection against malicious or unintended edits. - **Replay Protection** Time-based signatures help identify stale or repeated edits, enabling freshness checks. - **Accountability** Signatures prove authorship, helping trace bugs, attacks, or misbehaving agents. - **Trust Graphs** Forks and reviews can be used to build a lightweight web of trust between participants, agents, and federated sites. - **Fits Wiki Philosophy** Federated Wiki already promotes remixing and decentralization. Adding cryptographic identity strengthens this without requiring central servers.

# Proposed Enhancements - Favicons with Public Keys Each federated site can embed its public key in its favicon or metadata, making identity both visible and verifiable. - Private Key Vaults Each site or user can store private keys securely in local vaults or encrypted environments. These keys sign edits, plans, or Vibelets. - Ghost Page Signing Agent or user creates a ghost page, signs the plan or diff, and submits it for human review. This adds non-repudiable authorship even before publishing. - Multi-signature Review Important changes could require signatures from both an agent and a human reviewer, or from multiple independent reviewers. - Signed Journal Deltas Journal entries can be extended with cryptographic fields like `signature`, `signed_by`, `signed_at`, and `sig_type`.

# Security Benefits - **Decentralized Auth** No login or password needed. Trust is based on verifiable signatures, not on central authority. - **Audit Trails** Every signed edit becomes part of a chain of provenance. You can trace changes over time with high confidence. - **Forking as Safe Cloning** A signed fork signals safety, endorsement, and review. Readers can make informed decisions about which branches to trust.

# Security Challenges - **Key Revocation** If a private key is compromised, there must be a way to revoke trust in previous signatures and issue new keys. - **Key Storage** Private keys must be stored securely. This is particularly challenging for agent systems and home labs. - **Trust Bootstrapping** How does a new user know which public keys to trust? Some discovery or reputation mechanism is needed. - **Usability** Cryptographic signing must be made simple for users. Too much friction will discourage adoption. - **Privacy Risks** Signatures make activity traceable. Anonymity or pseudonymity must be preserved where needed.

# Open Questions - Which signature algorithm should be standard (see Sessionless)? - How do we handle partial signing, or signing only specific blocks of content? - How do trust scores emerge from signatures and reviews across forks? - What should the minimum metadata be in a signed journal delta? - Can we layer revocation lists, timestamping services, or witness signatures?

# Next Steps - Define a schema for signed journal entries - Build UI tools to sign, verify, and display signatures - Create sample agent plans that include signature generation and verification steps - Test with ghost pages and forked Vibelets - Encourage community feedback on signing models, privacy concerns, and interoperability