Skip to content
Lugano Labs Discuss a project

What can we verify without recording someone’s private work?

Cut an agent’s record far enough and a run that followed policy and one that broke it leave identical evidence. No reviewer can then tell them apart.

Lugano LabsEditor: Brian D. EvansResearch report6 min read

In short. Minimizing evidence trades what a reviewer can still decide against what the record gives away, and both sides can be counted. A review that scores a confident signature check as detection hides exactly the cases where the evidence can’t decide. We expect the first receipts to hold up in a contested audit to come from one observer, cut to one decision and sent to one named reviewer.

What this is. A report from published specifications and our own receipt formats. We read NIST’s signature standard, the RATS architecture, RFC 6973, the MCP specification and the ULID specification, and worked through what the v0.1 fields and a v0.2 pass can and can’t show.

Contents

A record can be too small to decide, and still leak

Our v0.1 agent receipt, a signed account of what an agent did, was built to keep secrets and still carried a clock. The draft’s example run ID is a ULID that decodes to a moment about two years before the receipt’s own stated issue time. [5] A ULID’s first ten characters are a timestamp, exact to the millisecond. [6] The example is made up, so the mismatch is the draft’s.

Delete issued_at and the clock stays, with nothing to vouch for it, like tearing the date off a letter but leaving the postmark. The less a private record holds, the less it gives away. Cut too far, though, and a run that followed policy and one that broke it leave the same evidence. Then the honest verdict is that the evidence can’t decide, and a review that counts a passing signature check as a catch hides exactly those cases.

Take a made-up contract review we’ll follow throughout. A legal team asks its agent to read an unpublished contract and query one permitted public filing service. Later the other side of the deal asks whether the agent followed the agreed policy. A full trace might expose the client and the negotiation, while a one-line assurance gives the other side nothing to challenge.

We want the smallest record that still supports that decision. The hard question is whether the only outbound request went to the permitted service, and for that, something had to watch. A small receipt can carry an observer’s evidence but can’t create it. If no trusted observer recorded an event, no receipt can prove it happened, and we call that the observer gap.

A signature shows which key signed, not whether memory was cleared

A signature answers one narrow question. Did the holder of this private key sign exactly this message? It can’t say whether the message is true. NIST’s signature standard describes two jobs for digital signatures, detecting unauthorized changes to signed data and confirming the claimed signer’s identity. [1]

Say the contract review’s v0.1 receipt claims retained: 0. Its signature can’t show that memory was cleared, that a provider didn’t log the request, or that no tool made a copy.

Under our current v0.2 format, a pass means only that the record fits the required schema, and that keys the recipient chose signed it and the log root it sits under. [7] [8] A receipt can pass with its four inventory lists, of tools, outgoing data, files and payments, all empty. [7] So the checker can’t tell a complete list from a trimmed or emptied one. Only the evidence policy and the reviewer can.

The reviewer still has to ask who authorized the key, which fields were signed, and whether whatever collected the record saw the action it describes. That last question takes an observer.

Attestation measures the machine; it doesn’t watch the agent act

Attestation can show what machine ran an agent, not everything the agent did. The IETF’s remote-attestation architecture, RATS, names three central roles. An Attester reports on itself, a Verifier checks the report against reference values and a policy, and a Relying Party decides. RATS asks for deliberate choices about whom to trust and how fresh the evidence must be. [2]

A one-time challenge signed into the evidence proves it was made after the challenge, but a claim inside it can still describe an older state. [2] So we’d ask a design to state its challenge, audience, time span, key binding and policy version.

In the contract review, a monitor inside one runtime may see its own network connections. It can still miss a spawned process, another agent, a browser, or data kept by a remote model provider. A signed note from the filing service would add one view, covering that one request and nothing else. A receipt should say which it claims: a measured machine, one witnessed action, or complete observation.

Agents can call tools through the Model Context Protocol (MCP), whose own specification says MCP can’t enforce its security principles at the protocol level and leaves that to implementers. [4] A monitor watching only the planned tool calls can miss what a tool does elsewhere.

A receipt that says where data went must name who watched, which routes they covered, for how long, and where they were blind. For the contract review, the claim needs a second source of events, independent enough to contradict the signer. It also needs a written trail from what that source saw to the signed field. That trail can leak too.

Without content, metadata can still join runs and identify a matter

A receipt with no prompts or files can still give secrets away. Our v0.1 example carries hosts, byte counts, hashes and a retained field. [5] Hosts can reveal suppliers, and exact times and counts, like the run ID’s clock, can identify a transaction. In the contract review, those would be the filing service’s host, the request’s size and the run’s time.

RFC 6973, a privacy guide for internet protocols, treats correlation, identification, secondary use and disclosure as distinct threats. [3] Any label that repeats lets someone join records, and a receipt has several:

  • a run ID can join copies of one task held by different recipients;
  • a reused signing-key ID can join different runs;
  • runtime and policy hashes can fingerprint a setup;
  • log positions show order and volume.

A pseudonym is still an identifier. A separate ID for each recipient might reduce joins, and so might less exact timing, but both would make disputes harder to settle.

Hashes leak too. If a file path can only be one of a few names, anyone can hash each one and look for a match. A salted commitment makes that harder, but only with a defined hiding property and fresh salt that stays protected. A bare hash over a few candidates has neither.

So a privacy review should count three kinds of leak separately:

  • a value shown outright;
  • a value guessed from a short list of candidates;
  • records linked across runs.

Private verification will likely start with one observer and one named reviewer

We expect private verification to start small. The first receipts to hold up in a contested audit would carry one observer’s record, cut to one decision and sent to one named reviewer. In the contract review, that would be the other side’s reviewer. The observer gap sets the outer limit, and a receipt also can’t answer the question if the evidence never reaches the reviewer.

Who receives the record matters as much as which fields it keeps. Some metadata survives trimming, so a trimmed record posted for everyone may expose more people than a fuller one sent to one authorized reviewer.

Our own evidence is thin. Everything here is analysis of proposed fields and published specifications, and we’ve measured no attack on users. Our v0.2 checker has been tested only on synthetic test files. [8]

The pilot on our proposed-studies page would measure the trade with three kinds of case whose right answer is known:

  • honest accounts;
  • accounts with a material conflict;
  • runs whose hidden effects leave the same evidence as honest ones.

Reviewers would judge each case from a fuller signed export or a trimmed one by the same observer. Meanwhile an attacker would try to recover or link what was hidden. The pilot would compare field policies, so it couldn’t show that our format beats an equally trimmed conventional export.

Two results would sink the case for smaller records. Trimming might add decision errors the reviewer had declared unacceptable, or runs from one matter might stay as linkable as before.

Scope and limits

What we did
We decoded the clock in our v0.1 draft’s example run ID and followed one made-up contract review through a signature check, an observer and the metadata that remains. We set each step against NIST’s signature standard, the RATS architecture, RFC 6973 and the MCP specification.
What we didn’t do
We measured no attack on users. The contract review and the draft’s example are both made up. Our v0.2 checker has been tested only on synthetic test files. Its code and tests are on GitHub. Nothing here measures privacy in a real agent workflow.
What this can’t tell you
Which material conflicts become impossible to tell apart once a record is trimmed, or which metadata still identifies the task in practice. A good pilot result would back one defined evidence package, within one observer’s proven reach, and say nothing about execution, complete capture or erasure beyond it.
Confidence
High on the mechanisms: a signature binds bytes to a key, a ULID carries a millisecond timestamp, and a monitor inside one runtime can miss a spawned process or data a remote provider keeps. Low on the size of the trade, which we haven’t measured.
What would change our view
The pilot on our proposed-studies page. If trimming adds decision errors the reviewer had declared unacceptable, or runs from one matter stay as linkable as before, smaller records lose their case. A win still couldn’t show that our format beats an equally trimmed conventional export.
Corrections
We log every correction, with its date, on How we work. Send one through a research enquiry.

The open question

Which material conflicts become impossible to tell apart when an observed agent account is minimized, and which metadata still identifies the task?

An analysis of what a signature, an attestation and an observer can each vouch for, and of what a receipt’s remaining fields disclose. The pilot that would measure the trade, richer against minimized records from one observer, is written up on our proposed-studies page.

Discuss this question

References

A selected review of published sources, with Lugano’s analysis and proposed work identified in the text. Source dates and conditions matter; historical results are not current-model rankings.

  1. 1

    FIPS 186-5: Digital Signature Standard (DSS)

    National Institute of Standards and Technology · 2023

    Official NIST standard describing digital signatures as mechanisms to detect unauthorized modification of signed data and authenticate the claimed signatory.

    Scope. A valid signature addresses integrity and signer attribution for signed data; it does not itself determine the factual truth, completeness or operational meaning of the statement.Back to the essay

  2. 2

    RFC 9334: Remote ATtestation procedureS (RATS) Architecture

    Henk Birkholz et al. · 2023

    IETF architecture defining Attesters, Verifiers, Relying Parties, appraisal policies, reference values, evidence, attestation results and freshness choices.

    Scope. An architecture does not prove that a particular attestation root, measurement, event binding, verifier policy or application-level effect is trustworthy.Back to the essay

  3. 3

    RFC 6973: Privacy Considerations for Internet Protocols

    Alissa Cooper et al., Internet Architecture Board · 2013

    IAB guidance that distinguishes privacy threats including correlation, identification, secondary use and disclosure, with design guidance on minimization.

    Scope. Protocol-design guidance is not evidence that a receipt’s fields are legally sufficient, non-linkable or appropriate for any particular recipient.Back to the essay

  4. 4

    Model Context Protocol Core Specification (2026-07-28)

    Model Context Protocol project · 2026

    Official current specification saying the protocol enables arbitrary data-access and code-execution paths, that tools represent arbitrary code execution, that tool descriptions and annotations are untrusted unless obtained from a trusted server, and that MCP itself cannot enforce its security principles at the protocol level.

    Scope. Protocol guidance does not observe a tool execution, validate a receipt, establish actual data flow or prove that a client implementation applies the stated principles.Back to the essay

  5. 5

    Historical v0.1 — Attested Agent Receipt (AAR) v0.1

    Lugano Labs · 2026

    Local proposed draft defining a possible signed receipt, trust-store and log requirements, stated retention field, metadata risks and explicit limits of its illustrative example and verifier.

    Scope. Draft local design material; it does not establish a deployed runtime, public log, production keys, validated attestation root, complete runtime observation or zero retention.Back to the essay

  6. 6

    ULID specification (reviewed 2026)

    ULID maintainers · 2026

    Specifies a 48-bit millisecond Unix timestamp and an 80-bit randomness component.

    Scope. Identifier format does not authenticate its encoded time, guarantee anonymity, or validate this draft.Back to the essay

  7. 7

    Signed Agent Receipt Reference Profile v0.2

    Lugano Labs · 2026

    Defines the restricted canonical JSON profile, exact signing bytes, required schema, external trust, bounded Merkle inclusion, and unsupported properties.

    Scope. A format contract; it does not establish real agent execution, privacy, or a deployed service.Back to the essay

  8. 8

    Signed Agent Receipt v0.2: README and checker guide

    Lugano Labs · 2026

    Describes the offline reference checker, its command line, its four result states and exit codes, its trust boundary and its deterministic synthetic fixtures. The source code, tests and fixtures it describes are on GitHub, at Lugano-AI/signed-agent-receipt.

    Scope. The fixtures are test inputs, not observed tasks or a completed research study. No production readiness or external audit is claimed.Back to the essay

About this report. First prepared 3 November 2026; revised 4 November 2026. This research report answers one question from primary sources. The experiment that could change its view is on our experiment designs page.

Our theses, sources, interpretation and study designs may change with new evidence and are open to correction. Send a research enquiry.

Download text

Lugano Labs Start a conversation

What would you like to work on?

A short note is enough. Please leave out credentials, secrets and sensitive source material.

What brings you here?

Choose one or more.