<?xml version='1.0' encoding='UTF-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-liu-icnrg-verifiable-compute-results-00" ipr="trust200902" submissionType="IETF" version="3">
  <front>
    <title abbrev="Verifiable Compute Results">A Metadata Model for Verifiable and Reusable Compute-Result Objects in Information-Centric Edge Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-liu-icnrg-verifiable-compute-results-00"/>
    <author fullname="Shuai Liu" initials="S." surname="Liu">
      <organization>Nanjing University</organization>
      <address>
        <postal>
          <street>School of Electronic Science and Engineering</street>
          <city>Nanjing</city>
          <code>210023</code>
          <country>China</country>
        </postal>
        <email>shuai_liu@smail.nju.edu.cn</email>
      </address>
    </author>
    <date day="15" month="July" year="2026"/>
    <area>Internet</area>
    <workgroup>Information-Centric Networking Research Group</workgroup>
    <keyword>information-centric networking</keyword>
    <keyword>edge computing</keyword>
    <keyword>compute result</keyword>
    <keyword>provenance</keyword>
    <keyword>caching</keyword>
    <keyword>result reuse</keyword>
    <abstract>
      <t>Distributed edge systems can execute the same logical computing service at multiple sites and can retain previously generated outputs in gateways, caches, or result stores.  Reusing such an output can reduce communication and computation, but a payload alone does not indicate which service, inputs, parameters, execution environment, or validity conditions produced it.  This document defines a conceptual metadata model for named compute-result objects.  The model binds a result payload to service identity, input identity, invocation context, execution provenance, freshness information, and reuse policy.  It also describes validation and cache-reuse workflows for intermittently connected and multi-domain edge environments.  This document does not define a wire encoding, a naming syntax, a remote-attestation profile, or a traffic-steering protocol.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" numbered="true" toc="include">
      <name>Introduction</name>
      <t>Edge and in-network computing systems increasingly execute functions close to data sources and users.  A logical function may be instantiated at a terrestrial edge site, an enterprise gateway, a maritime platform, an airborne node, or a non-terrestrial node.  The output of an invocation may subsequently be copied, cached, or transferred to another administrative domain.</t>
      <t>When a later requester needs the same or an equivalent computation, reusing a previously generated output may avoid repeated input transfer and execution.  This is especially useful when connectivity is intermittent, contact duration is limited, or compute resources are energy constrained.  Information-Centric Networking (ICN) provides location-independent naming, named data retrieval, in-network caching, and object-oriented security concepts that are relevant to this problem <xref target="RFC7927"/> <xref target="RFC8569"/> <xref target="RFC8793"/>.</t>
      <t>However, an ordinary named payload is not sufficient to determine whether a computation result is acceptable for reuse.  A requester may need to establish all of the following:</t>
      <ul spacing="normal">
        <li>which logical service and service version produced the result;</li>
        <li>which input object set and invocation parameters were used;</li>
        <li>whether execution-context properties that affect semantics are represented;</li>
        <li>whether the result and its metadata have verifiable provenance;</li>
        <li>whether the result is fresh enough for the current request;</li>
        <li>whether authorization and reuse policy permit delivery to the requester; and</li>
        <li>whether a cache has preserved the original bindings rather than replacing them with local assertions.</li>
      </ul>
      <t>The requirements-oriented discovery model in <xref target="I-D.liu-icnrg-cross-domain-compute-discovery"/> treats a result as a named object with metadata sufficient to evaluate freshness, provenance, and reuse eligibility.  This document develops that result-object concept into a separate metadata model and validation workflow.  The two documents are complementary: discovery can identify candidate result objects, while the model in this document describes the information needed to decide whether a candidate is acceptable.</t>
      <t>The model is intentionally independent of a particular ICN architecture or encoding.  A realization could represent the metadata in a signed ICN manifest, a CBOR object protected with COSE, a signed JSON document, or another integrity-protected structure.  It could retrieve the payload and metadata together or as separately named objects.  This document specifies the semantic roles and required bindings, not their concrete serialization.</t>
    </section>

    <section anchor="conventions" numbered="true" toc="include">
      <name>Conventions and Terminology</name>
      <section anchor="requirements-language" numbered="true" toc="include">
        <name>Requirements Language</name>
        <t>The key words <bcp14>MUST</bcp14>, <bcp14>MUST NOT</bcp14>, <bcp14>REQUIRED</bcp14>, <bcp14>SHALL</bcp14>, <bcp14>SHALL NOT</bcp14>, <bcp14>SHOULD</bcp14>, <bcp14>SHOULD NOT</bcp14>, <bcp14>RECOMMENDED</bcp14>, <bcp14>NOT RECOMMENDED</bcp14>, <bcp14>MAY</bcp14>, and <bcp14>OPTIONAL</bcp14> in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="terms" numbered="true" toc="include">
        <name>Terms</name>
        <dl spacing="normal" newline="false">
          <dt>Compute-Result Object:</dt>
          <dd>A named output of a computing-service invocation together with, or cryptographically bound to, metadata that describes its identity, production context, provenance, freshness, and reuse policy.</dd>
          <dt>Result Payload:</dt>
          <dd>The application-visible output bytes or named output object produced by an invocation.</dd>
          <dt>Result Descriptor:</dt>
          <dd>The integrity-protected metadata structure that binds a result payload to the service, inputs, parameters, execution context, time information, and policy relevant to validation and reuse.</dd>
          <dt>Invocation Descriptor:</dt>
          <dd>A canonical or otherwise unambiguous description of the service request that produced a result, including service identity, input references, parameters, and requested output semantics.</dd>
          <dt>Execution Evidence:</dt>
          <dd>Evidence or an attestation result concerning the execution environment, software state, or execution event.  Execution evidence is optional unless required by policy.</dd>
          <dt>Result Publisher:</dt>
          <dd>The entity that creates or signs the result descriptor and makes the result object available.</dd>
          <dt>Result Producer:</dt>
          <dd>The service instance or execution environment that generated the result payload.</dd>
          <dt>Result Store:</dt>
          <dd>A cache, repository, gateway, or service site that retains and serves a result object.</dd>
          <dt>Reuse Policy:</dt>
          <dd>Authenticated conditions under which a previously produced result may be delivered or treated as a substitute for a new invocation.</dd>
          <dt>Acceptance Policy:</dt>
          <dd>Requester-side rules used to determine whether a candidate result satisfies semantic, freshness, provenance, authorization, and evidence requirements.</dd>
          <dt>Semantic Context:</dt>
          <dd>The subset of invocation and execution properties that can change the meaning or acceptable interpretation of a result.</dd>
        </dl>
      </section>
    </section>

    <section anchor="problem" numbered="true" toc="include">
      <name>Problem Statement, Goals, and Non-Goals</name>
      <section anchor="problem-statement" numbered="true" toc="include">
        <name>Problem Statement</name>
        <t>A cache can verify that a payload matches a content digest without knowing whether the payload answers a particular computation request.  Similarly, a requester can authenticate a publisher without knowing whether that publisher used the expected service version, inputs, parameters, or execution profile.  Content integrity and publisher authentication are necessary but do not by themselves establish result suitability.</t>
        <t>Two requests that use the same human-readable service name may differ in model version, preprocessing method, geographic scope, confidence threshold, random seed policy, precision, or observation interval.  Conversely, two differently located service instances may produce results that are semantically equivalent under a defined profile.  A reusable result therefore needs explicit machine-verifiable bindings rather than an implicit association based on a locator, cache key, or display name.</t>
        <t>The problem is more difficult across administrative domains.  The result producer, descriptor publisher, evidence verifier, cache, and requester may belong to different organizations.  Connectivity to an authorization server, revocation service, or provenance repository may be unavailable at validation time.  A model needs to preserve original evidence and make limitations visible without assuming a single global trust anchor.</t>
      </section>
      <section anchor="goals" numbered="true" toc="include">
        <name>Goals</name>
        <t>The model has the following goals:</t>
        <ul spacing="normal">
          <li>identify a result independently of its current storage location;</li>
          <li>bind the result to the service, input set, parameters, and semantic execution context that produced it;</li>
          <li>allow a requester to evaluate freshness and validity without trusting a cache's local clock assertions alone;</li>
          <li>preserve provenance and optional execution evidence through replication and cache delivery;</li>
          <li>support policy-controlled reuse, including non-reusable and domain-restricted results;</li>
          <li>support deterministic and non-deterministic computations without falsely claiming output equivalence;</li>
          <li>permit compact or selectively disclosed representations for constrained links; and</li>
          <li>remain usable over native ICN, ICN overlays, and conventional IP-based systems.</li>
        </ul>
      </section>
      <section anchor="non-goals" numbered="true" toc="include">
        <name>Non-Goals</name>
        <t>This document does not:</t>
        <ul spacing="normal">
          <li>define a universal result-name syntax or allocate name components;</li>
          <li>define a wire protocol, media type, CBOR schema, or ICN TLV;</li>
          <li>specify how to execute, schedule, split, or steer a computing task;</li>
          <li>define a cryptographic proof that arbitrary computation was performed correctly;</li>
          <li>require a trusted execution environment or remote attestation;</li>
          <li>define application-specific semantic equivalence rules;</li>
          <li>guarantee that a predicted or cached result remains available; or</li>
          <li>replace application authorization, accounting, or data-governance systems.</li>
        </ul>
      </section>
    </section>

    <section anchor="model" numbered="true" toc="include">
      <name>Compute-Result Object Model</name>
      <t>A compute-result object is modeled as a set of independently addressable but cryptographically bound components.  A deployment may combine these components into one object or store them separately.</t>
      <figure anchor="fig-model">
        <name>Conceptual Compute-Result Object</name>
        <artwork type="ascii-art">
+--------------------------------------------------------------+
|                     Result Descriptor                        |
|  result identity | payload binding | time and validity       |
|  invocation binding | provenance | evidence references       |
|  reuse policy | extension and disclosure information         |
+--------------------------+-----------------------------------+
                           |
             cryptographic binding / authenticated reference
                           |
       +-------------------+--------------------+
       |                                        |
+------+----------------+             +---------+--------------+
| Result Payload        |             | Supporting Artifacts   |
| bytes or named object |             | input manifests,       |
|                       |             | interface descriptions,|
|                       |             | attestation results    |
+-----------------------+             +------------------------+
        </artwork>
      </figure>
      <section anchor="components" numbered="true" toc="include">
        <name>Components</name>
        <t>The model contains the following logical components:</t>
        <ul spacing="normal">
          <li><strong>Result payload:</strong> the produced output, represented inline or by an authenticated reference.</li>
          <li><strong>Result descriptor:</strong> the metadata object that binds all properties used for validation.</li>
          <li><strong>Invocation descriptor:</strong> the normalized request description or a digest and reference to it.</li>
          <li><strong>Supporting artifacts:</strong> service-interface descriptions, input manifests, execution profiles, evidence, or authorization artifacts.</li>
          <li><strong>Protection information:</strong> signatures, message authentication, certificate or key references, and any countersignatures required by policy.</li>
        </ul>
        <t>The result descriptor <bcp14>MUST</bcp14> be integrity protected.  If components are stored separately, the descriptor <bcp14>MUST</bcp14> bind each component that affects validation by a cryptographic digest, an immutable name with defined integrity semantics, or an equivalent authenticated reference.</t>
      </section>
      <section anchor="identity" numbered="true" toc="include">
        <name>Result Identity</name>
        <t>A result identity identifies a particular output object, not merely a service type.  It <bcp14>MUST</bcp14> be bound to the result payload.  It <bcp14>SHOULD</bcp14> also be bound to an invocation identity that covers the service, inputs, parameters, and semantic context.</t>
        <t>A conceptual invocation identity can be derived from the following tuple:</t>
        <artwork type="ascii-art">
Invocation-ID = H(
    Service-ID,
    Service-Version,
    Interface-Version,
    Input-Set-Descriptor,
    Parameter-Descriptor,
    Semantic-Execution-Profile,
    Requested-Output-Profile)
        </artwork>
        <t>The notation is illustrative and does not mandate a particular hash function or byte encoding.  A concrete specification needs deterministic serialization or another method that prevents two implementations from hashing semantically identical fields differently.</t>
        <t>The result identity may be content-derived, publisher-assigned, or both.  A content-derived identifier is useful for deduplication but does not by itself express provenance or authorization.  A publisher-assigned identifier can express namespace ownership but must still bind to the payload digest.</t>
      </section>
      <section anchor="invocation" numbered="true" toc="include">
        <name>Invocation Binding</name>
        <t>The result descriptor <bcp14>MUST</bcp14> identify the logical service and service version.  When service behavior depends on an executable, model, configuration, or policy artifact, the descriptor <bcp14>SHOULD</bcp14> include an immutable artifact digest or a reference to a signed artifact manifest.</t>
        <t>The input set <bcp14>MUST</bcp14> be represented unambiguously.  For one input object, a content digest or immutable name may be sufficient.  For multiple or ordered inputs, the descriptor needs an input-set manifest that specifies membership, ordering where relevant, role labels, and transformations performed before execution.</t>
        <t>Invocation parameters that can affect output semantics <bcp14>MUST</bcp14> be bound to the descriptor.  Parameters that do not affect semantics, such as a transport retry limit, need not be included.  A profile may divide parameters into semantic, operational, and private categories.</t>
      </section>
      <section anchor="execution-context" numbered="true" toc="include">
        <name>Execution and Semantic Context</name>
        <t>A result may depend on more than code and inputs.  Examples include numeric precision, accelerator type, model quantization, randomization policy, locale, time window, coordinate reference system, external data snapshot, and preprocessing pipeline.  The descriptor <bcp14>MUST</bcp14> bind every execution-context property that the service profile declares semantically relevant.</t>
        <t>The model does not require disclosure of every hardware or runtime detail.  A service profile can define an execution-profile identifier whose signed description lists the properties relevant to result interpretation.  This permits compact descriptors and reduces unnecessary operational disclosure.</t>
        <t>For deterministic services, the descriptor may indicate that equivalent invocations are expected to produce byte-identical outputs.  For non-deterministic services, the descriptor <bcp14>MUST NOT</bcp14> imply byte-level reproducibility.  It may instead identify the randomization policy, seed handling, confidence representation, or tolerance profile used by the application.</t>
      </section>
      <section anchor="provenance" numbered="true" toc="include">
        <name>Provenance and Execution Evidence</name>
        <t>The descriptor <bcp14>MUST</bcp14> identify the result publisher and <bcp14>SHOULD</bcp14> identify the result producer when those entities differ.  A relying party needs to distinguish at least the following statements:</t>
        <ul spacing="normal">
          <li>the publisher asserts that the descriptor and payload binding are authentic;</li>
          <li>the producer asserts that it generated the payload for the bound invocation;</li>
          <li>a verifier asserts an attestation result about the execution environment; and</li>
          <li>a cache asserts only that it stores or transferred the protected object.</li>
        </ul>
        <t>A cache signature <bcp14>MUST NOT</bcp14> be treated as a substitute for the producer or publisher signature.  A cache may add a separate receipt, custody statement, or delivery timestamp without modifying the original descriptor.</t>
        <t>Execution evidence is optional unless required by the acceptance policy.  When used, it should follow an established attestation architecture such as RATS <xref target="RFC9334"/>.  The result descriptor should normally bind to a verifier-produced attestation result rather than requiring every requester to appraise raw platform evidence.  Entity Attestation Tokens are one possible representation <xref target="RFC9711"/>.</t>
        <t>Attestation of a platform does not prove the semantic correctness of arbitrary application output.  It can provide evidence about the identity or state of the execution environment.  A result profile must state what conclusion a requester is allowed to draw from the referenced evidence.</t>
      </section>
      <section anchor="time" numbered="true" toc="include">
        <name>Time, Freshness, and Validity</name>
        <t>The descriptor <bcp14>MUST</bcp14> include a result creation time or an equivalent authenticated event reference.  When input data represents observations, the descriptor <bcp14>SHOULD</bcp14> distinguish the observation time from the computation time and publication time.</t>
        <t>The descriptor <bcp14>MUST</bcp14> provide at least one mechanism for evaluating reuse lifetime:</t>
        <ul spacing="normal">
          <li>an absolute expiration time;</li>
          <li>a maximum age measured from an authenticated creation time;</li>
          <li>a revalidation requirement and revalidation reference;</li>
          <li>a validity interval associated with an input snapshot; or</li>
          <li>an application-defined freshness profile.</li>
        </ul>
        <t>Freshness describes policy suitability, not cryptographic integrity.  An expired result can remain authentic but no longer acceptable.  A cache <bcp14>MUST NOT</bcp14> extend the producer's validity period by changing local metadata.  If a trusted authority revalidates a result, the revalidation statement must be separately authenticated and bound to the original descriptor.</t>
      </section>
      <section anchor="reuse-policy" numbered="true" toc="include">
        <name>Reuse Policy</name>
        <t>The result descriptor <bcp14>MUST</bcp14> indicate whether the result is reusable.  A reusable result may carry restrictions based on requester identity, administrative domain, purpose, geographic region, maximum number of deliveries, confidentiality class, or downstream redistribution.</t>
        <t>The descriptor should separate three questions:</t>
        <ol spacing="normal" type="1">
          <li>May a store retain the object?</li>
          <li>May a store deliver the object to a particular requester?</li>
          <li>May the requester treat the object as a substitute for a new invocation?</li>
        </ol>
        <t>A positive answer to one question does not imply a positive answer to the others.  For example, a result may be cacheable for disaster recovery but not reusable for a later decision, or it may be reusable only within the producer's domain.</t>
      </section>
    </section>

    <section anchor="metadata" numbered="true" toc="include">
      <name>Conceptual Metadata Fields</name>
      <t>This section lists conceptual fields.  A concrete specification may split fields across multiple objects, use profiles, or omit fields that are not applicable.  Fields marked required are required by the abstract model, not by a particular wire format.</t>
      <table anchor="metadata-fields" align="center">
        <name>Result Descriptor Field Groups</name>
        <thead>
          <tr>
            <th align="left">Field Group</th>
            <th align="left">Requirement</th>
            <th align="left">Purpose</th>
          </tr>
        </thead>
        <tbody>
          <tr><td>descriptor version</td><td>Required</td><td>identifies metadata semantics and extension rules</td></tr>
          <tr><td>result identifier</td><td>Required</td><td>names the produced result object</td></tr>
          <tr><td>payload digest or immutable reference</td><td>Required</td><td>binds metadata to output bytes</td></tr>
          <tr><td>service identifier and version</td><td>Required</td><td>identifies the logical computation</td></tr>
          <tr><td>input-set binding</td><td>Required</td><td>identifies the input objects and roles</td></tr>
          <tr><td>parameter binding</td><td>Required when semantic</td><td>prevents reuse across incompatible invocations</td></tr>
          <tr><td>execution-profile binding</td><td>Conditional</td><td>captures semantic execution context</td></tr>
          <tr><td>producer and publisher identity</td><td>Required</td><td>supports provenance and trust decisions</td></tr>
          <tr><td>creation and observation time</td><td>Required or profiled</td><td>supports freshness evaluation</td></tr>
          <tr><td>validity or revalidation rule</td><td>Required</td><td>limits reuse lifetime</td></tr>
          <tr><td>reuse policy</td><td>Required</td><td>controls retention, delivery, and substitution</td></tr>
          <tr><td>evidence or attestation reference</td><td>Optional</td><td>supports execution-environment appraisal</td></tr>
          <tr><td>confidentiality and disclosure class</td><td>Optional</td><td>supports selective metadata exposure</td></tr>
          <tr><td>extensions</td><td>Optional</td><td>supports service-specific semantics</td></tr>
        </tbody>
      </table>
      <t>Every field that affects acceptance <bcp14>MUST</bcp14> be covered by the descriptor's integrity protection.  Unknown critical extensions <bcp14>MUST</bcp14> cause validation failure.  Unknown non-critical extensions may be ignored, but an implementation should make that decision observable for diagnostics.</t>
    </section>

    <section anchor="production" numbered="true" toc="include">
      <name>Production and Publication Workflow</name>
      <t>A typical production workflow is:</t>
      <ol spacing="normal" type="1">
        <li>The requester or scheduler constructs an invocation descriptor.</li>
        <li>The service instance validates authorization and resolves input objects.</li>
        <li>The result producer executes the service and produces the result payload.</li>
        <li>The producer records semantic execution context and any evidence required by policy.</li>
        <li>The publisher creates a result descriptor that binds the payload and invocation.</li>
        <li>The publisher integrity protects the descriptor and publishes the result name.</li>
        <li>A result store may cache or replicate the protected components without changing producer assertions.</li>
      </ol>
      <t>The entity that signs the descriptor needs authority for the result namespace or another explicit delegation from the service operator.  A publisher <bcp14>MUST NOT</bcp14> claim execution properties it cannot substantiate.  When the publisher and producer are separate, the descriptor should contain a producer statement or another authenticated binding between them.</t>
      <t>The publication mechanism may announce the result through a discovery service, an ICN routing advertisement, a synchronization protocol, a catalog, or an application-specific index.  Publication does not imply that all metadata is disclosed to all consumers.  A public catalog may expose a minimal descriptor while authorized consumers retrieve protected details separately.</t>
    </section>

    <section anchor="validation" numbered="true" toc="include">
      <name>Retrieval, Validation, and Reuse Workflow</name>
      <t>A requester that receives a candidate result should perform the following conceptual checks.  The order may be optimized, but an implementation should reject malformed or unauthorized objects before performing expensive verification.</t>
      <ol spacing="normal" type="1">
        <li><strong>Parse and profile check:</strong> determine the descriptor version and reject unsupported critical extensions.</li>
        <li><strong>Integrity check:</strong> verify the descriptor protection and authorization of the publisher for the result namespace.</li>
        <li><strong>Payload binding:</strong> verify that the retrieved payload matches the authenticated digest or immutable reference.</li>
        <li><strong>Invocation match:</strong> compare service identity, version, input-set binding, parameters, and output profile with the current request.</li>
        <li><strong>Semantic-context match:</strong> evaluate execution-profile fields required by the service profile.</li>
        <li><strong>Freshness check:</strong> evaluate creation, observation, expiration, and revalidation information.</li>
        <li><strong>Provenance and evidence check:</strong> validate producer statements and any evidence required by acceptance policy.</li>
        <li><strong>Authorization and reuse check:</strong> determine whether the cache may deliver the result and whether the requester may use it as a substitute.</li>
        <li><strong>Application acceptance:</strong> apply application-specific confidence, tolerance, or equivalence rules.</li>
      </ol>
      <t>A failure in any required check <bcp14>MUST</bcp14> prevent substitution of the candidate result for a new invocation.  The requester may try another result, invoke an eligible service instance, defer the request, or fail according to application policy.</t>
      <t>Validation outcomes should distinguish at least: valid and acceptable; authentic but stale; authentic but semantically incompatible; authentic but unauthorized; evidence unavailable; and invalid.  Treating all failures as a cache miss can hide attacks or operational problems.</t>
    </section>

    <section anchor="caching" numbered="true" toc="include">
      <name>Caching, Replication, and Aggregation</name>
      <section anchor="cache-behavior" numbered="true" toc="include">
        <name>Cache Behavior</name>
        <t>A cache may store result objects according to storage policy and authenticated reuse restrictions.  It <bcp14>MUST</bcp14> preserve the original result descriptor and payload binding.  It <bcp14>MUST NOT</bcp14> remove producer provenance, weaken critical policy, replace expiration information, or silently convert an unverifiable reference into a local assertion.</t>
        <t>A cache may add local metadata such as receipt time, eviction priority, observed retrieval count, or custody information.  Such metadata must be clearly separated from producer-authenticated metadata.  Consumers must be able to determine which entity asserted each field.</t>
      </section>
      <section anchor="dedup" numbered="true" toc="include">
        <name>Deduplication and Multiple Descriptors</name>
        <t>The same payload bytes may be associated with more than one valid descriptor.  For example, two authorized producers may independently generate an identical deterministic result, or one payload may be republished under different reuse policies.  Payload deduplication <bcp14>MUST NOT</bcp14> collapse distinct provenance or policy statements.</t>
        <t>Conversely, the same invocation identity may produce multiple non-identical outputs for a non-deterministic service.  A result store may index these outputs under a common invocation identity while preserving distinct result identifiers and provenance.</t>
      </section>
      <section anchor="aggregation" numbered="true" toc="include">
        <name>Collections and Derived Results</name>
        <t>A manifest may describe a collection of result objects.  A derived result that aggregates, filters, compresses, translates, or summarizes earlier results is itself a new compute-result object.  Its descriptor needs to identify the derivation service and bind the source result set as inputs.  It must not inherit source provenance as though the original producers generated the derived payload.</t>
      </section>
    </section>

    <section anchor="disruption" numbered="true" toc="include">
      <name>Multi-Domain and Disruption-Tolerant Operation</name>
      <t>The model does not assume continuous access to the producer, publisher, verifier, or authorization infrastructure.  A gateway may retrieve a result during a short contact and later serve it within a disconnected domain.  The descriptor therefore needs self-contained or locally resolvable information for the checks required during disconnection.</t>
      <t>Deployments should use bounded validity and pre-position the trust anchors, profiles, revocation snapshots, and authorization artifacts needed for expected offline operation.  If current revocation state or revalidation information is unavailable, the validator <bcp14>MUST</bcp14> expose that limitation to the acceptance policy.  It must not silently treat old status information as current.</t>
      <t>Bundle Protocol mechanisms may transport result objects across disrupted paths <xref target="RFC9171"/>, and BPSec may protect Bundle Protocol blocks <xref target="RFC9172"/>.  Those mechanisms protect delivery units and do not replace the end-to-end result descriptor.  The object-level binding remains useful after a result is extracted from a bundle, copied to a cache, or transported by another protocol.</t>
      <t>Different domains may use different local names or transports.  A gateway may map a stable result identity to a URI, an ICN name, or another locator.  Translation <bcp14>MUST</bcp14> preserve the authenticated result identity and must report when a target system cannot represent a critical property.</t>
    </section>

    <section anchor="existing-work" numbered="true" toc="include">
      <name>Relationship with Existing Work</name>
      <section anchor="existing-icn" numbered="true" toc="include">
        <name>Information-Centric Networking</name>
        <t>CCNx defines named Interest and Content Object semantics <xref target="RFC8569"/> and a TLV message format <xref target="RFC8609"/>.  ICN deployment considerations include native, overlay, and gateway-assisted approaches <xref target="RFC8763"/>.  The model in this document can be carried by those mechanisms but does not change them.</t>
        <t>ICN manifests and named metadata are natural candidates for representing result descriptors and supporting artifacts.  An ICN Name Resolution Service can also map stable object names to other forwarding information <xref target="RFC9236"/>.  Name resolution, however, does not by itself determine whether a computation result is semantically acceptable.</t>
      </section>
      <section anchor="existing-discovery" numbered="true" toc="include">
        <name>Compute-Service Discovery</name>
        <t><xref target="I-D.liu-icnrg-cross-domain-compute-discovery"/> defines requirements for discovering logical computing services, service instances, and reusable result objects in heterogeneous intermittently connected environments.  This document focuses on the internal semantic bindings and validation workflow of the result object after discovery.</t>
      </section>
      <section anchor="existing-cats" numbered="true" toc="include">
        <name>Computing-Aware Traffic Steering</name>
        <t>CATS concerns selection and steering among service contact instances using network and computing information <xref target="I-D.ietf-cats-framework"/>.  A CATS system may select where to execute a request.  The model in this document concerns how a produced output can later be validated and reused.  It neither defines CATS metrics nor modifies CATS forwarding.</t>
      </section>
      <section anchor="existing-rats" numbered="true" toc="include">
        <name>Remote Attestation</name>
        <t>RATS defines roles and conceptual messages for evidence appraisal and attestation results <xref target="RFC9334"/>.  A result descriptor may reference an attestation result when acceptance depends on execution-environment state.  This document does not define an evidence format or appraisal policy and does not equate platform integrity with computation correctness.</t>
      </section>
      <section anchor="existing-cbor" numbered="true" toc="include">
        <name>CBOR and COSE</name>
        <t>CBOR provides a compact data representation <xref target="RFC8949"/>, and COSE provides signatures, MACs, and encryption for CBOR structures <xref target="RFC9052"/>.  They are plausible building blocks for a constrained result-descriptor encoding.  This document does not select an encoding or request an IANA registration.</t>
      </section>
    </section>

    <section anchor="security" numbered="true" toc="include">
      <name>Security Considerations</name>
      <section anchor="sec-forgery" numbered="true" toc="include">
        <name>Descriptor Forgery and Namespace Abuse</name>
        <t>An attacker may publish a descriptor for a service namespace it does not control, replace a payload reference, or claim a stronger execution profile.  Implementations need publisher authentication, namespace authorization, integrity protection, and explicit handling of delegated publishers.  Authentication of an identity alone does not authorize that identity to publish every service or result name.</t>
      </section>
      <section anchor="sec-substitution" numbered="true" toc="include">
        <name>Payload and Invocation Substitution</name>
        <t>A malicious cache may pair a valid descriptor with a different payload, or pair a valid payload with metadata from another invocation.  Cryptographic binding of the payload, input set, parameters, and semantic context is required.  Human-readable names and transport security are not sufficient substitutes.</t>
      </section>
      <section anchor="sec-replay" numbered="true" toc="include">
        <name>Replay and Stale Results</name>
        <t>An authentic old result may be unsafe for a current decision.  Attackers may replay descriptors after model replacement, input update, policy change, or contact expiration.  Validators need authenticated time or sequence information, bounded validity, and application freshness policy.  Local cache receipt time must not be confused with producer creation time.</t>
      </section>
      <section anchor="sec-evidence" numbered="true" toc="include">
        <name>Misinterpretation of Execution Evidence</name>
        <t>Attestation evidence can be over-interpreted.  Evidence that a known binary ran in a trusted environment does not necessarily prove correct inputs, correct external dependencies, absence of application bugs, or semantic correctness of the output.  Profiles must state the claims established by evidence and acceptance policies must not infer stronger properties.</t>
      </section>
      <section anchor="sec-policy" numbered="true" toc="include">
        <name>Policy Downgrade and Gateway Translation</name>
        <t>A gateway may be unable to represent a critical policy or provenance field in a target system.  Silently discarding such information can turn a restricted result into an apparently unrestricted one.  Translation must fail safely or carry an explicit authenticated indication of the limitation.</t>
      </section>
      <section anchor="sec-dos" numbered="true" toc="include">
        <name>Denial of Service</name>
        <t>Attackers can send large descriptors, long provenance chains, expensive evidence, or references that trigger recursive retrieval.  Implementations should bound descriptor size, nesting depth, reference count, signature operations, evidence appraisal cost, and resolution recursion.  Cheap syntactic and authorization checks should precede expensive cryptographic or remote operations.</t>
      </section>
      <section anchor="sec-hash" numbered="true" toc="include">
        <name>Digest Agility and Canonicalization</name>
        <t>A concrete encoding needs algorithm agility and deterministic interpretation of digested structures.  Ambiguous serialization can allow two parties to calculate different invocation identities.  Profiles should define canonicalization, algorithm identifiers, deprecation handling, and collision-resistance requirements.</t>
      </section>
    </section>

    <section anchor="privacy" numbered="true" toc="include">
      <name>Privacy Considerations</name>
      <t>Result descriptors can reveal requester interests, sensor locations, observation times, model versions, operational capabilities, service inventories, and relationships among administrative domains.  Input-set digests may also enable dictionary attacks when the input space is small or predictable.</t>
      <t>Deployments should minimize metadata, avoid publishing unnecessary dynamic resource details, and use confidentiality and access control where appropriate.  A public descriptor may contain opaque authenticated references to protected details.  Selective disclosure mechanisms may be used, but every disclosed subset needs an unambiguous relationship to the originally protected descriptor.</t>
      <t>Stable result identifiers can enable cross-domain correlation.  Applications should avoid embedding personal or operationally sensitive information directly in names.  Pairwise or scoped identifiers may be appropriate when global correlation is not required.</t>
      <t>Cache telemetry and reuse receipts can reveal who requested a result and when.  Such records should be retained only as required by policy and should not be included in the producer descriptor unless they are part of the service semantics.</t>
    </section>

    <section anchor="iana" numbered="true" toc="include">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

    <section anchor="acknowledgements" numbered="true" toc="include">
      <name>Acknowledgements</name>
      <t>The authors welcome discussion on terminology, service-specific result profiles, compact encodings, interaction with ICN manifests, and experimental validation in constrained edge environments.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
          <date month="March" year="1997"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author initials="B." surname="Leiba" fullname="Barry Leiba"/>
          <date month="May" year="2017"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>

    <references>
      <name>Informative References</name>
      <reference anchor="RFC7927" target="https://www.rfc-editor.org/info/rfc7927">
        <front>
          <title>Information-Centric Networking (ICN) Research Challenges</title>
          <author initials="D." surname="Kutscher" fullname="Dirk Kutscher"/>
          <author initials="S." surname="Eum" fullname="Suyong Eum"/>
          <author initials="K." surname="Pentikousis" fullname="Kostis Pentikousis"/>
          <author initials="I." surname="Psaras" fullname="Ioannis Psaras"/>
          <author initials="D." surname="Corujo" fullname="Daniel Corujo"/>
          <author initials="D." surname="Saucez" fullname="Damien Saucez"/>
          <author initials="T." surname="Schmidt" fullname="Thomas Schmidt"/>
          <author initials="M." surname="Waehlisch" fullname="Matthias Waehlisch"/>
          <date month="July" year="2016"/>
        </front>
        <seriesInfo name="RFC" value="7927"/>
        <seriesInfo name="DOI" value="10.17487/RFC7927"/>
      </reference>
      <reference anchor="RFC8569" target="https://www.rfc-editor.org/info/rfc8569">
        <front>
          <title>Content-Centric Networking (CCNx) Semantics</title>
          <author initials="M." surname="Mosko" fullname="Marc Mosko"/>
          <author initials="I." surname="Solis" fullname="Ignacio Solis"/>
          <author initials="C." surname="Wood" fullname="Christopher Wood"/>
          <date month="July" year="2019"/>
        </front>
        <seriesInfo name="RFC" value="8569"/>
        <seriesInfo name="DOI" value="10.17487/RFC8569"/>
      </reference>
      <reference anchor="RFC8609" target="https://www.rfc-editor.org/info/rfc8609">
        <front>
          <title>Content-Centric Networking (CCNx) Messages in TLV Format</title>
          <author initials="M." surname="Mosko" fullname="Marc Mosko"/>
          <author initials="I." surname="Solis" fullname="Ignacio Solis"/>
          <author initials="C." surname="Wood" fullname="Christopher Wood"/>
          <date month="July" year="2019"/>
        </front>
        <seriesInfo name="RFC" value="8609"/>
        <seriesInfo name="DOI" value="10.17487/RFC8609"/>
      </reference>
      <reference anchor="RFC8763" target="https://www.rfc-editor.org/info/rfc8763">
        <front>
          <title>Deployment Considerations for Information-Centric Networking (ICN)</title>
          <author initials="A." surname="Rahman" fullname="Akbar Rahman"/>
          <author initials="D." surname="Trossen" fullname="Dirk Trossen"/>
          <author initials="D." surname="Kutscher" fullname="Dirk Kutscher"/>
          <author initials="R." surname="Ravindran" fullname="Ravi Ravindran"/>
          <date month="April" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8763"/>
        <seriesInfo name="DOI" value="10.17487/RFC8763"/>
      </reference>
      <reference anchor="RFC8793" target="https://www.rfc-editor.org/info/rfc8793">
        <front>
          <title>Information-Centric Networking (ICN): Content-Centric Networking (CCNx) and Named Data Networking (NDN) Terminology</title>
          <author initials="B." surname="Wissingh" fullname="Bastiaan Wissingh"/>
          <author initials="C." surname="Wood" fullname="Christopher Wood"/>
          <author initials="A." surname="Afanasyev" fullname="Alex Afanasyev"/>
          <author initials="L." surname="Zhang" fullname="Lixia Zhang"/>
          <author initials="D." surname="Oran" fullname="David Oran"/>
          <author initials="C." surname="Tschudin" fullname="Christian Tschudin"/>
          <date month="June" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8793"/>
        <seriesInfo name="DOI" value="10.17487/RFC8793"/>
      </reference>
      <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
        <front>
          <title>Concise Binary Object Representation (CBOR)</title>
          <author initials="C." surname="Bormann" fullname="Carsten Bormann"/>
          <author initials="P." surname="Hoffman" fullname="Paul Hoffman"/>
          <date month="December" year="2020"/>
        </front>
        <seriesInfo name="STD" value="94"/>
        <seriesInfo name="RFC" value="8949"/>
        <seriesInfo name="DOI" value="10.17487/RFC8949"/>
      </reference>
      <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/rfc9052">
        <front>
          <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
          <author initials="J." surname="Schaad" fullname="Jim Schaad"/>
          <date month="August" year="2022"/>
        </front>
        <seriesInfo name="STD" value="96"/>
        <seriesInfo name="RFC" value="9052"/>
        <seriesInfo name="DOI" value="10.17487/RFC9052"/>
      </reference>
      <reference anchor="RFC9171" target="https://www.rfc-editor.org/info/rfc9171">
        <front>
          <title>Bundle Protocol Version 7</title>
          <author initials="S." surname="Burleigh" fullname="Scott Burleigh"/>
          <author initials="K." surname="Fall" fullname="Kevin Fall"/>
          <author initials="E." surname="Birrane" fullname="Edward Birrane"/>
          <date month="January" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9171"/>
        <seriesInfo name="DOI" value="10.17487/RFC9171"/>
      </reference>
      <reference anchor="RFC9172" target="https://www.rfc-editor.org/info/rfc9172">
        <front>
          <title>Bundle Protocol Security (BPSec)</title>
          <author initials="E." surname="Birrane" fullname="Edward Birrane"/>
          <author initials="K." surname="McKeever" fullname="Kenneth McKeever"/>
          <date month="January" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9172"/>
        <seriesInfo name="DOI" value="10.17487/RFC9172"/>
      </reference>
      <reference anchor="RFC9236" target="https://www.rfc-editor.org/info/rfc9236">
        <front>
          <title>Architectural Considerations of Information-Centric Networking (ICN) Using a Name Resolution Service</title>
          <author initials="J." surname="Hong" fullname="Jinsoo Hong"/><author initials="T." surname="You" fullname="Taeho You"/><author initials="V." surname="Kafle" fullname="Ved P. Kafle"/><date month="May" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9236"/>
        <seriesInfo name="DOI" value="10.17487/RFC9236"/>
      </reference>
      <reference anchor="RFC9334" target="https://www.rfc-editor.org/info/rfc9334">
        <front>
          <title>Remote ATtestation procedureS (RATS) Architecture</title>
          <author initials="H." surname="Birkholz" fullname="Henk Birkholz"/>
          <author initials="D." surname="Thaler" fullname="Dave Thaler"/>
          <author initials="M." surname="Richardson" fullname="Michael Richardson"/>
          <author initials="N." surname="Smith" fullname="Ned Smith"/>
          <author initials="W." surname="Pan" fullname="Wei Pan"/>
          <date month="January" year="2023"/>
        </front>
        <seriesInfo name="RFC" value="9334"/>
        <seriesInfo name="DOI" value="10.17487/RFC9334"/>
      </reference>
      <reference anchor="RFC9711" target="https://www.rfc-editor.org/info/rfc9711">
        <front>
          <title>The Entity Attestation Token (EAT)</title>
          <author initials="L." surname="Lundblade" fullname="Laurence Lundblade"/><author initials="G." surname="Mandyam" fullname="Giridhar Mandyam"/><author initials="J." surname="O'Donoghue" fullname="Jeremy O'Donoghue"/><author initials="C." surname="Wallace" fullname="Carl Wallace"/><date month="April" year="2025"/>
        </front>
        <seriesInfo name="RFC" value="9711"/>
        <seriesInfo name="DOI" value="10.17487/RFC9711"/>
      </reference>
      <reference anchor="I-D.liu-icnrg-cross-domain-compute-discovery" target="https://datatracker.ietf.org/doc/draft-liu-icnrg-cross-domain-compute-discovery/">
        <front>
          <title>Requirements for Name-Based Compute-Service Discovery in Heterogeneous Space-Terrestrial-Maritime Edge Networks</title>
          <author initials="S." surname="Liu" fullname="Shuai Liu"/>
          <date day="26" month="June" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-liu-icnrg-cross-domain-compute-discovery-00"/>
      </reference>
      <reference anchor="I-D.ietf-cats-framework" target="https://datatracker.ietf.org/doc/draft-ietf-cats-framework/">
        <front>
          <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
          <author initials="C." surname="Li" fullname="Cheng Li"/><author initials="Z." surname="Du" fullname="Zongpeng Du"/><author initials="M." surname="Boucadair" fullname="Mohamed Boucadair"/><author initials="L. M." surname="Contreras" fullname="Luis M. Contreras"/><author initials="J. E." surname="Drake" fullname="John E. Drake"/><date month="April" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-cats-framework-24"/>
      </reference>
    </references>
  </back>
</rfc>
