HERALD Research Roadmap
This document summarizes the practical research areas for HERALD after the v0.2 substrate work. The goal is to separate the grounded engineering work from the lore layer, while keeping the useful vocabulary.
HERALD already provides the base protocol for signed, verifiable, auditable AI-agent communication. The next research layer is about making that substrate private, trustworthy, usable, and deployable.
Priority Summary
| Priority | Area | Why it matters |
|---|---|---|
| P0 | ZK provenance / private verification | Prevents HERALD from becoming surveillance-by-default. |
| P0 | Reputation / Patina scoring | Turns signed history into useful trust signals. |
| P0 | Agent middleware integrations | Makes HERALD usable in real AI-agent workflows. |
| P1 | Sybil resistance | Prevents fake swarms of agents from manufacturing trust. |
| P1 | Audit-log gossip | Detects split-view logs, hidden forks, and dishonest log operators. |
| P1 | Model identity / model hashes | Helps prove what model or lineage an agent claims to represent. |
| P2 | Human approval and accountability | Makes human-in-the-loop decisions auditable without overexposing people. |
| P2 | Vendor and governance strategy | Prevents Heralds from becoming a closed vendor cartel. |
| P2 | Bestiary / abuse taxonomy | Names and tracks malicious agent behavior. |
| P2 | Trace viewers and UX | Makes verification understandable to humans. |
1. ZK Provenance / Private Verification
Plain meaning: prove that an agent has valid history without revealing the whole history.
Why it matters: public audit logs can leak metadata such as who talked to whom, when, and how often. ZK proofs could let a verifier confirm claims like "this trace is valid" or "this sigil has enough reputation" without exposing all raw envelopes.
Research questions:
- What exact statements should a HERALD ZK proof support?
- Can a proof show valid lineage without revealing every hop?
- Can a proof show a Patina threshold without exposing the full interaction graph?
- Which ZK stack is practical for TypeScript, Python, browser, and server use?
First practical project:
Build a small proof-of-concept for one claim: "this envelope belongs to a valid signed trace" without revealing the full trace.
Source docs:
herald-protocol/research/zk-provenance.mdherald-protocol/THREATS.mdsection "What changes when ZK selective disclosure lands"
2. Reputation / Patina Scoring
Plain meaning: convert signed history into a trust score.
Lore name: Patina.
Why it matters: signatures prove who said something, but not whether that identity is useful, reliable, or safe. A Patina system would score long-term behavior while resisting fake activity.
Research questions:
- How do we reward useful cross-party interactions?
- How do we avoid rewarding self-talk between bot-controlled sigils?
- Should key rotation frequency affect reputation?
- How do we prevent bought keys or inherited identities from laundering reputation?
First practical project:
Implement a simple Patina scorer over local audit logs using diversity-weighted interactions instead of raw envelope count.
Source docs:
herald-protocol/research/patina-formula.mdherald-protocol/THREATS.mdsections on Patina farming and reputation laundering
3. Agent Middleware Integrations
Plain meaning: make HERALD easy to use inside real agent frameworks.
Why it matters: a protocol only matters if developers can add it to actual workflows. The most useful path is wrapping tool calls, agent messages, and human approvals.
Target integrations:
- MCP servers and tools
- LangChain
- CrewAI
- AutoGen
- Local agent runners
- CI/CD automation agents
Research questions:
- What should be signed: prompt, tool call, tool result, final answer, or all of them?
- How much metadata is enough for audit without leaking secrets?
- How should failures, refusals, and human approvals be represented?
- What is the minimum developer API that makes this easy?
First practical project:
Wrap one local tool call flow so every request and response is signed as a HERALD envelope and replayable from a log.
Source docs:
herald-protocol/demo/conduit/herald-protocol/demo/cli/herald-protocol/services/reference-herald/
4. Sybil Resistance
Plain meaning: stop one actor from creating many fake identities that look like many independent agents.
Why it matters: Ed25519 keys are cheap. Without controls, an attacker can mint thousands of sigils, cross-sign them, farm activity, and look reputable.
Research questions:
- Which identities require stronger birth checks?
- Should capability-bearing sigils need co-signatures?
- How do we measure operator and lineage diversity?
- What economic costs actually slow attackers without excluding legitimate small actors?
First practical project:
Create a simulator that models a botnet creating sigils, farming Patina, and trying to enter a marketplace.
Source docs:
herald-protocol/research/sybil-economics.mdherald-protocol/THREATS.mdPersona B
5. Audit-Log Gossip
Plain meaning: compare what different people saw so dishonest logs cannot show different histories to different observers.
Why it matters: signatures protect envelope contents, but not whether a log operator hides entries, forks history, or shows different views to different users.
Research questions:
- What gossip messages should clients exchange?
- Should gossip be per-trace, per-log, or per-batch?
- How should clients react when logs disagree?
- How much privacy is lost by gossiping trace metadata?
First practical project:
Implement a small gossip monitor that compares signed tree heads from two or more local logs and flags inconsistencies.
Source docs:
herald-protocol/research/genesis-gossip.mdherald-protocol/lib/herald-ct-log/herald-protocol/THREATS.mdsection on audit-log split view
6. Model Identity / Model Hashes
Plain meaning: prove which model, model family, or fine-tune an agent claims to be based on.
Why it matters: "I am based on model X" is easy to claim and hard to verify, especially with closed models, quantized weights, LoRAs, and hosted APIs.
Research questions:
- What does it mean to hash a model across formats?
- How should quantization and LoRA adapters be represented?
- Can closed vendors provide useful attestations without exposing weights?
- How should unproven lineage be displayed?
First practical project:
Define a test corpus of open models in several formats and produce canonical model identity records for them.
Source docs:
herald-protocol/research/model-hash-canonical.mdherald-protocol/registries/standard-attestations.md
7. Human Approval and Accountability
Plain meaning: record when a human reviewed, approved, refused, or escalated an AI-agent action.
Why it matters: high-stakes agent workflows need human accountability, but naive logging can expose sensitive user or employee information.
Research questions:
- What should a human approval envelope contain?
- How can approvals be signed without exposing unnecessary identity details?
- When should human approval be required?
- How should duress, refusal, or uncertainty be represented?
First practical project:
Build a CLI or web form that lets a human approve a HERALD envelope and attach a scoped human_approval signature.
Source docs:
herald-protocol/lib/herald-core-ts/src/duress.tsherald-protocol/lib/herald-core-ts/src/refusal.tsherald-protocol/registries/refusal-reasons.md
8. Vendor and Governance Strategy
Plain meaning: decide who gets to operate Heralds and how they are held accountable.
Why it matters: if only major vendors operate Heralds, the trust layer can become centralized. If anyone can operate one without standards, the trust layer becomes noisy.
Research questions:
- Should vendors run Heralds for their own models?
- How do we prevent vendor-Herald cartel behavior?
- What minimum transparency should a Herald publish?
- Should open-source labs run collective Heralds?
First practical project:
Draft a vendor-neutral deployment profile for a small research lab or open-source collective Herald.
Source docs:
herald-protocol/research/vendor-engagement.mdherald-protocol/templates/Herald-Charter.mdherald-protocol/templates/LOTS.md
9. Bestiary / Abuse Taxonomy
Plain meaning: maintain named categories of malicious or risky agent behavior.
Lore examples: Anglerfish, Cuckoo, Mockingbird, Magpie, Parrot.
Why it matters: shared names make abuse patterns easier to discuss, detect, and report. But blocklists can also become censorship tools if there is no evidence standard or appeal path.
Research questions:
- What evidence is required before a sigil is listed?
- Who can list or challenge a listing?
- How should severity decay over time?
- How do we avoid defamatory or politically captured Bestiaries?
First practical project:
Create a small reference Bestiary with schema, evidence requirements, expiry rules, and challenge flow.
Source docs:
herald-protocol/CHARTER.mdherald-protocol/THREATS.mdsections on Bestiary abuseherald-protocol/research/dkim-analogy.md
10. Trace Viewers and UX
Plain meaning: make HERALD verification understandable to normal users and developers.
Why it matters: a signed trace is only useful if someone can understand the result. Users need clear labels such as valid, tampered, unknown signer, unproven lineage, expired, replayed, or partially verified.
Research questions:
- What should a verifier UI show first?
- How do we show unproven lineage without making it look trusted?
- How should warnings be ranked?
- What visual language works for both technical and non-technical users?
First practical project:
Build a simple trace viewer that loads a trace bundle and displays verification status, signer, parent chain, attestations, and warnings.
Source docs:
herald-protocol/tests/renderer-conformance/herald-protocol/lib/herald-core-ts/src/render-rules.tsherald-protocol/demo/cli/
11. Time, Receipts, and Ordering
Plain meaning: make timestamps and ordering harder to fake.
Why it matters: many important actions depend on "which came first": birth, molt, deprecation, refusal, endorsement, or dispute. Sender-provided timestamps are not enough.
Research questions:
- When is a third-party timestamp required?
- How many independent conduits should witness a state-changing envelope?
- What happens if timestamp witnesses disagree?
- How do we detect NTP poisoning or captured timestamp clusters?
First practical project:
Prototype M-of-N conduit receipt validation for birth, molt, and deprecation envelopes.
Source docs:
herald-protocol/research/m-of-n-timestamps.mdherald-protocol/research/time-locked-attestations.mdherald-protocol/lib/herald-core-ts/src/molt.ts
12. Privacy-Preserving Whisper / Encrypted Side Channels
Plain meaning: support encrypted side-channel messages without breaking auditability.
Why it matters: agents may need private messages, but encrypted metadata still leaks who talked to whom. The protocol must bind encrypted content to the envelope so it cannot be replayed or detached.
Research questions:
- Which HPKE libraries are safe and mature enough?
- How should associated data bind ciphertext to the envelope id?
- What metadata should be visible to conduits?
- How do we prevent whisper-only conduits from becoming metadata honeypots?
First practical project:
Build a minimal whisper envelope demo using HPKE with envelope-id AAD binding.
Source docs:
herald-protocol/research/hpke-survey.mdherald-protocol/lib/herald-core-ts/src/whisper.tsherald-protocol/THREATS.mdprivacy sections
Recommended Next Three Projects
If choosing only three next research/build efforts:
1. MCP or LangChain HERALD wrapper: fastest path to real-world usefulness.
2. Patina scorer prototype: turns signed logs into visible trust signals.
3. ZK provenance proof-of-concept: highest long-term leverage for privacy-preserving verification.
Grounding Rule
The lore names are useful as memory hooks:
- Patina means reputation history.
- Sigil means cryptographic identity.
- Molt means key rotation.
- Anglerfish means malicious helper.
- Shadow Log means side channel or private log.
But research should always state the real engineering problem, the measurable threat, and the practical implementation target.