<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- 
  Internet-Draft: draft-kamimura-scitt-vcp-01
  Title: SCITT Profile for Financial Trading Audit Trails (VCP)
  Author: TOKACHI KAMIMURA
  Organization: VeritasChain Standards Organization (VSO)
  Target WG: SCITT (Supply Chain Integrity, Transparency, and Trust)
-->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     docName="draft-kamimura-scitt-vcp-01"
     category="info"
     ipr="trust200902"
     submissionType="IETF"
     consensus="true"
     xml:lang="en"
     version="3">

  <front>
    <title abbrev="SCITT-VCP">
      SCITT Profile for Financial Trading Audit Trails:
      VeritasChain Protocol (VCP)
    </title>

    <seriesInfo name="Internet-Draft" 
                value="draft-kamimura-scitt-vcp-01"/>

    <author fullname="TOKACHI KAMIMURA" initials="T." surname="Kamimura">
      <organization>VeritasChain Standards Organization</organization>
      <address>
        <postal>
          <street></street>
          <city>Tokyo</city>
          <country>Japan</country>
        </postal>
        <email>kamimura@veritaschain.org</email>
        <uri>https://veritaschain.org</uri>
      </address>
    </author>

    <date year="2025" month="December" day="23"/>

    <area>Security</area>
    <workgroup>Supply Chain Integrity, Transparency, and Trust</workgroup>

    <keyword>SCITT</keyword>
    <keyword>audit trail</keyword>
    <keyword>algorithmic trading</keyword>
    <keyword>AI transparency</keyword>
    <keyword>financial services</keyword>
    <keyword>transparency service</keyword>
    <keyword>signed statement</keyword>

    <abstract>
      <t>This document defines a SCITT (Supply Chain Integrity, 
      Transparency, and Trust) profile for creating tamper-evident 
      audit trails of AI-driven algorithmic trading decisions and 
      executions. The VeritasChain Protocol (VCP) extends the SCITT 
      architecture to address the specific requirements of financial 
      markets, including nanosecond-precision timestamps, regulatory 
      compliance with EU AI Act and MiFID II, and privacy-preserving 
      mechanisms (crypto-shredding) for GDPR compliance. This profile 
      defines how VCP events are encoded as SCITT Signed Statements, 
      registered with Transparency Services, and verified using 
      COSE Receipts.</t>
    </abstract>

    <note removeInRFC="true">
      <name>About This Document</name>
      <t>The latest version of this document, along with implementation
      resources and test vectors, can be found at
      <eref target="https://github.com/veritaschain/vcp-spec"/>.</t>
      <t>Discussion of this document takes place on the SCITT Working
      Group mailing list (scitt@ietf.org).</t>
    </note>
  </front>

  <middle>
    <!-- ===== Section 1: Introduction ===== -->
    <section anchor="introduction">
      <name>Introduction</name>
      
      <t>The SCITT (Supply Chain Integrity, Transparency, and Trust) 
      architecture <xref target="I-D.ietf-scitt-architecture"/> provides 
      a framework for creating tamper-evident logs of digital artifacts 
      through Transparency Services. While SCITT was initially designed 
      for software supply chain use cases, its core primitives—Signed 
      Statements, Receipts, and Transparency Services—are applicable to 
      any domain requiring verifiable audit trails.</t>

      <t>This document specifies how SCITT can be applied to the domain 
      of AI-driven algorithmic trading systems in financial markets. 
      The VeritasChain Protocol (VCP) defines:</t>

      <ul>
        <li>A schema for encoding trading events as SCITT Signed Statements</li>
        <li>Registration policies for financial audit trails</li>
        <li>Conformance tiers (Silver, Gold, Platinum) with varying 
        requirements for timing precision and cryptographic guarantees</li>
        <li>Privacy mechanisms compatible with GDPR data erasure requirements</li>
      </ul>

      <t>VCP serves as an "AI Flight Recorder" for algorithmic trading, 
      enabling post-incident reconstruction of system behavior with 
      cryptographic proof of integrity.</t>

      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", 
        "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
        "MAY", and "OPTIONAL" 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="relationship-to-scitt">
        <name>Relationship to SCITT</name>
        <t>This document is a profile of the SCITT architecture. It:</t>
        <ul>
          <li>REQUIRES compliance with <xref target="I-D.ietf-scitt-architecture"/></li>
          <li>REQUIRES use of SCRAPI <xref target="I-D.ietf-scitt-scrapi"/> 
          for Transparency Service interactions</li>
          <li>RECOMMENDS COSE Receipts for inclusion proofs</li>
          <li>DEFINES domain-specific extensions for financial trading</li>
        </ul>
      </section>

      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies:</t>
        <ul>
          <li>VCP Event schema as SCITT Signed Statement payload</li>
          <li>Registration Policy requirements for VCP Transparency Services</li>
          <li>Mapping of VCP concepts to SCITT terminology</li>
          <li>Three conformance tiers with specific requirements</li>
          <li>Crypto-shredding mechanism for privacy compliance</li>
        </ul>
        <t>This document does not specify:</t>
        <ul>
          <li>General SCITT architecture (see <xref target="I-D.ietf-scitt-architecture"/>)</li>
          <li>SCRAPI endpoints (see <xref target="I-D.ietf-scitt-scrapi"/>)</li>
          <li>COSE Receipt format (see <xref target="RFC9052"/>)</li>
          <li>Specific regulatory mapping (covered in companion documents)</li>
        </ul>
      </section>
    </section>

    <!-- ===== Section 2: Terminology ===== -->
    <section anchor="terminology">
      <name>Terminology</name>
      
      <t>This document uses terminology from 
      <xref target="I-D.ietf-scitt-architecture"/>. The following terms 
      are specific to this profile:</t>
      
      <dl>
        <dt>VCP Event</dt>
        <dd>A single auditable record in the VeritasChain Protocol,
        encoded as a SCITT Signed Statement. Consists of Header, 
        Payload, and Security metadata.</dd>
        
        <dt>VCP Issuer</dt>
        <dd>An algorithmic trading system, AI model, or human operator 
        that generates VCP Events. Corresponds to SCITT Issuer.</dd>
        
        <dt>VCP Transparency Service</dt>
        <dd>A SCITT Transparency Service configured with VCP-specific 
        Registration Policies. Operates a VCP-compliant append-only log.</dd>
        
        <dt>VCP Receipt</dt>
        <dd>A COSE Receipt issued by a VCP Transparency Service, 
        proving inclusion of a VCP Event in the log.</dd>
        
        <dt>Actor</dt>
        <dd>An entity (algorithm, human operator, or system) identified 
        by ActorID that generates VCP Events.</dd>
        
        <dt>Crypto-Shredding</dt>
        <dd>A privacy technique where encrypted payload data is rendered
        permanently unrecoverable by destroying the encryption key,
        while preserving the cryptographic integrity proofs (hashes 
        and Receipts).</dd>
        
        <dt>Conformance Tier</dt>
        <dd>One of three implementation levels (Silver, Gold, Platinum)
        with increasing requirements for timing precision, anchoring
        frequency, and cryptographic guarantees.</dd>
      </dl>

      <section anchor="terminology-mapping">
        <name>SCITT Terminology Mapping</name>
        <t>The following table maps VCP concepts to SCITT terminology:</t>
        
        <table>
          <name>VCP to SCITT Terminology Mapping</name>
          <thead>
            <tr>
              <th>VCP Concept</th>
              <th>SCITT Equivalent</th>
              <th>Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>VCP Event</td>
              <td>Signed Statement</td>
              <td>VCP Event is the payload of a Signed Statement</td>
            </tr>
            <tr>
              <td>VCP Issuer</td>
              <td>Issuer</td>
              <td>Trading system or AI model</td>
            </tr>
            <tr>
              <td>VCP Transparency Service</td>
              <td>Transparency Service</td>
              <td>With VCP Registration Policy</td>
            </tr>
            <tr>
              <td>VCP Receipt</td>
              <td>Receipt</td>
              <td>COSE Receipt with Merkle inclusion proof</td>
            </tr>
            <tr>
              <td>Hash Chain</td>
              <td>Append-only Log</td>
              <td>VCP adds per-Actor chaining</td>
            </tr>
            <tr>
              <td>Merkle Anchor</td>
              <td>Merkle Tree Root</td>
              <td>Periodic commitment</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>

    <!-- ===== Section 3: Architecture ===== -->
    <section anchor="architecture">
      <name>Architecture</name>
      
      <t>VCP builds upon the SCITT architecture with domain-specific 
      extensions for financial trading:</t>

      <artwork type="ascii-art"><![CDATA[
  +------------------+       +-------------------------+
  |   VCP Issuer     |       |  VCP Transparency       |
  | (Trading System) |       |      Service            |
  +--------+---------+       +------------+------------+
           |                              |
           | 1. Create VCP Event          |
           | 2. Sign as COSE_Sign1        |
           |                              |
           +------ Signed Statement ----->|
           |       (via SCRAPI)           |
           |                              | 3. Validate against
           |                              |    Registration Policy
           |                              |
           |                              | 4. Append to Log
           |                              |
           |<-------- VCP Receipt --------+
           |       (COSE Receipt)         |
           |                              |
  +--------+---------+       +------------+------------+
  |    Verifier      |       |   External Anchor       |
  | (Auditor/Regul.) |       | (Timestamp/Blockchain)  |
  +------------------+       +-------------------------+
      ]]></artwork>

      <section anchor="arch-event-flow">
        <name>Event Flow</name>
        <ol>
          <li><strong>Event Generation:</strong> VCP Issuer creates a 
          VCP Event containing trading decision or execution data.</li>
          <li><strong>Signing:</strong> Event is signed using COSE_Sign1 
          <xref target="RFC9052"/> with the Issuer's private key.</li>
          <li><strong>Registration:</strong> Signed Statement is submitted 
          to VCP Transparency Service via SCRAPI POST /entries.</li>
          <li><strong>Validation:</strong> Transparency Service validates 
          against VCP Registration Policy.</li>
          <li><strong>Logging:</strong> Valid statement is appended to 
          the append-only log.</li>
          <li><strong>Receipt:</strong> COSE Receipt with Merkle inclusion 
          proof is returned to Issuer.</li>
        </ol>
      </section>

      <section anchor="arch-hash-chain">
        <name>Per-Actor Hash Chain</name>
        <t>In addition to SCITT's global append-only log, VCP maintains 
        per-Actor hash chains. Each VCP Event includes a PrevHash field 
        containing the hash of the previous event from the same Actor. 
        This enables efficient verification of a single Actor's event 
        sequence without downloading the entire log.</t>
        
        <artwork type="ascii-art"><![CDATA[
  Actor A:  Event_A1 --hash--> Event_A2 --hash--> Event_A3
  
  Actor B:  Event_B1 --hash--> Event_B2
  
  Global Log: [Event_A1, Event_B1, Event_A2, Event_B2, Event_A3, ...]
        ]]></artwork>
      </section>
    </section>

    <!-- ===== Section 4: VCP Event Schema ===== -->
    <section anchor="event-schema">
      <name>VCP Event Schema</name>
      
      <t>A VCP Event is encoded as the payload of a SCITT Signed Statement. 
      The payload MUST be a JSON object conforming to the following schema:</t>

      <section anchor="schema-header">
        <name>Header Object</name>
        <t>The Header contains metadata common to all VCP Events:</t>
        
        <sourcecode type="json"><![CDATA[
{
  "Header": {
    "EventID": "01961e5f-5c0d-7000-8000-123456789abc",
    "TimestampISO": "2026-03-15T09:30:00.123456789Z",
    "TimestampInt": 1742034600123456789,
    "EventType": "ORD",
    "ActorID": "algo-momentum-001",
    "ChainID": "chain-actor-001",
    "SequenceNum": 42
  }
}
        ]]></sourcecode>
        
        <dl>
          <dt>EventID</dt>
          <dd>REQUIRED. UUID v7 <xref target="RFC9562"/> providing 
          time-sortable unique identification.</dd>
          
          <dt>TimestampISO</dt>
          <dd>REQUIRED. ISO 8601 timestamp with nanosecond precision.</dd>
          
          <dt>TimestampInt</dt>
          <dd>REQUIRED. Integer timestamp in nanoseconds since Unix epoch.</dd>
          
          <dt>EventType</dt>
          <dd>REQUIRED. Three-letter code identifying the event type 
          (see <xref target="event-types"/>).</dd>
          
          <dt>ActorID</dt>
          <dd>REQUIRED. Identifier of the entity generating this event.</dd>
          
          <dt>ChainID</dt>
          <dd>REQUIRED. Identifier of the per-Actor hash chain.</dd>
          
          <dt>SequenceNum</dt>
          <dd>REQUIRED. Monotonically increasing sequence number within 
          the Actor's chain.</dd>
        </dl>
      </section>

      <section anchor="schema-payload">
        <name>Payload Object</name>
        <t>The Payload contains domain-specific data organized into modules:</t>
        
        <dl>
          <dt>VCP-TRADE</dt>
          <dd>Trading data: orders, executions, modifications, cancellations.</dd>
          
          <dt>VCP-RISK</dt>
          <dd>Risk management data: exposure, limits, margin.</dd>
          
          <dt>VCP-GOV</dt>
          <dd>Governance data: algorithm parameters, decision factors, 
          operator actions.</dd>
          
          <dt>VCP-PRIVACY</dt>
          <dd>Privacy metadata: encryption keys, retention policies.</dd>
        </dl>
        
        <sourcecode type="json"><![CDATA[
{
  "Payload": {
    "VCP-TRADE": {
      "OrderID": "ord-2026-001",
      "Symbol": "AAPL",
      "Side": "BUY",
      "Quantity": "100",
      "Price": "185.50",
      "OrderType": "LIMIT"
    },
    "VCP-GOV": {
      "AlgoID": "momentum-v2.3",
      "DecisionFactors": ["RSI_oversold", "volume_spike"],
      "ConfidenceScore": 0.87
    }
  }
}
        ]]></sourcecode>
      </section>

      <section anchor="schema-security">
        <name>Security Object</name>
        <t>The Security object contains integrity and chaining information:</t>
        
        <sourcecode type="json"><![CDATA[
{
  "Security": {
    "EventHash": "sha256:a1b2c3d4...",
    "PrevHash": "sha256:f6e5d4c3...",
    "MerkleRoot": "sha256:1234abcd...",
    "SignAlgo": "ED25519"
  }
}
        ]]></sourcecode>
        
        <dl>
          <dt>EventHash</dt>
          <dd>REQUIRED. SHA-256 hash of the canonicalized Header and 
          Payload, computed using JSON Canonicalization Scheme 
          <xref target="RFC8785"/>.</dd>
          
          <dt>PrevHash</dt>
          <dd>REQUIRED (except for INIT events). Hash of the previous 
          event in this Actor's chain.</dd>
          
          <dt>MerkleRoot</dt>
          <dd>OPTIONAL. Merkle root of the current batch (Gold/Platinum tiers).</dd>
          
          <dt>SignAlgo</dt>
          <dd>REQUIRED. Signature algorithm identifier. MUST be "ED25519" 
          or "DILITHIUM3" (for post-quantum).</dd>
        </dl>
      </section>

      <section anchor="event-types">
        <name>Event Types</name>
        
        <table>
          <name>VCP Event Types</name>
          <thead>
            <tr>
              <th>Code</th>
              <th>Name</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            <tr><td>INIT</td><td>Initialization</td><td>Chain initialization, no PrevHash</td></tr>
            <tr><td>SIG</td><td>Signal</td><td>Trading signal generated</td></tr>
            <tr><td>ORD</td><td>Order</td><td>Order submitted</td></tr>
            <tr><td>ACK</td><td>Acknowledgment</td><td>Order acknowledged by venue</td></tr>
            <tr><td>EXE</td><td>Execution</td><td>Order executed (fill)</td></tr>
            <tr><td>CXL</td><td>Cancellation</td><td>Order cancelled</td></tr>
            <tr><td>MOD</td><td>Modification</td><td>Order modified</td></tr>
            <tr><td>RSK</td><td>Risk</td><td>Risk event or limit breach</td></tr>
            <tr><td>ERR</td><td>Error</td><td>System error</td></tr>
            <tr><td>HBT</td><td>Heartbeat</td><td>Periodic liveness signal</td></tr>
            <tr><td>CLS</td><td>Close</td><td>Position closed</td></tr>
            <tr><td>ANC</td><td>Anchor</td><td>Merkle anchor event</td></tr>
          </tbody>
        </table>
      </section>
    </section>

    <!-- ===== Section 5: Registration Policy ===== -->
    <section anchor="registration-policy">
      <name>Registration Policy</name>
      
      <t>A VCP Transparency Service MUST enforce a Registration Policy 
      that validates incoming Signed Statements.</t>

      <section anchor="policy-identification">
        <name>Policy Identification</name>
        
        <t>The Registration Policy identifier MUST be explicitly included 
        in the Signed Statement payload or associated metadata.</t>
        
        <t>The Transparency Service MUST validate the registration request 
        against the referenced Registration Policy and MUST NOT infer, 
        select, or substitute a policy on its own.</t>
        
        <t>Conformance tiers (e.g., Silver, Gold, Platinum) represent 
        additional verification depth and operational requirements 
        applied on top of the same core Registration Policy, and do not 
        define separate or incompatible registration policies.</t>
      </section>

      <section anchor="validation-requirements">
        <name>Validation Requirements</name>
        
        <t>The Registration Policy MUST verify:</t>
      
      <ol>
        <li><strong>Schema Compliance:</strong> Payload conforms to VCP 
        Event schema.</li>
        <li><strong>Signature Validity:</strong> COSE_Sign1 signature is 
        valid for the registered Issuer public key.</li>
        <li><strong>Timestamp Validity:</strong> TimestampInt is within 
        acceptable bounds (not in future, not too old).</li>
        <li><strong>Chain Integrity:</strong> PrevHash matches the hash 
        of the most recent event from this Actor (if not INIT).</li>
        <li><strong>Sequence Monotonicity:</strong> SequenceNum is exactly 
        one greater than the previous event's SequenceNum.</li>
      </ol>

      </section>

      <section anchor="policy-tiers">
        <name>Tier-Specific Requirements</name>
        
        <t>This specification distinguishes timestamp resolution from clock 
        accuracy. Nanosecond-resolution timestamps represent the storage 
        format capability, while actual clock accuracy is explicitly recorded 
        and enforced per tier.</t>

        <table>
          <name>Conformance Tier Requirements</name>
          <thead>
            <tr>
              <th>Requirement</th>
              <th>Silver</th>
              <th>Gold</th>
              <th>Platinum</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Timestamp Resolution</td>
              <td>Millisecond</td>
              <td>Microsecond</td>
              <td>Nanosecond</td>
            </tr>
            <tr>
              <td>Clock Accuracy</td>
              <td>NTP (~10ms)</td>
              <td>NTP + drift (~1ms)</td>
              <td>PTPv2 (&lt;1μs)</td>
            </tr>
            <tr>
              <td>Merkle Anchoring</td>
              <td>Daily</td>
              <td>Hourly</td>
              <td>Per-minute</td>
            </tr>
            <tr>
              <td>Signature Algorithm</td>
              <td>Ed25519</td>
              <td>Ed25519</td>
              <td>Ed25519 + Dilithium (OPTIONAL)</td>
            </tr>
            <tr>
              <td>Key Storage</td>
              <td>Software</td>
              <td>Software/HSM</td>
              <td>HSM Required</td>
            </tr>
            <tr>
              <td>External Anchor</td>
              <td>Optional</td>
              <td>Recommended</td>
              <td>Required</td>
            </tr>
          </tbody>
        </table>
        
        <t>Note: Silver tier is NOT intended for regulatory-grade algorithmic 
        trading systems subject to MiFID II RTS 25, SEC Rule 17a-4, or 
        equivalent clock synchronization requirements. Silver tier is 
        appropriate for development, testing, backtesting analysis, and 
        non-regulated trading scenarios.</t>
      </section>
    </section>

    <!-- ===== Section 6: Crypto-Shredding ===== -->
    <section anchor="crypto-shredding">
      <name>Crypto-Shredding for Privacy Compliance</name>
      
      <t>VCP supports crypto-shredding to enable GDPR-compliant data 
      erasure while preserving audit trail integrity. This mechanism 
      allows deletion of personal data without invalidating cryptographic 
      proofs.</t>

      <section anchor="shredding-mechanism">
        <name>Mechanism</name>
        <ol>
          <li><strong>Encryption:</strong> Sensitive payload fields are 
          encrypted with a per-record or per-subject Data Encryption Key (DEK).</li>
          <li><strong>Key Storage:</strong> DEK is stored separately, 
          indexed by SubjectID.</li>
          <li><strong>Hashing:</strong> EventHash is computed over the 
          encrypted payload, preserving integrity.</li>
          <li><strong>Shredding:</strong> Upon erasure request, DEK is 
          destroyed. Encrypted data becomes unrecoverable.</li>
          <li><strong>Verification:</strong> Receipt and hash chain remain 
          valid—verifiers can confirm event existence and ordering without 
          accessing decrypted content.</li>
        </ol>
      </section>

      <section anchor="shredding-privacy-module">
        <name>VCP-PRIVACY Module</name>
        <sourcecode type="json"><![CDATA[
{
  "VCP-PRIVACY": {
    "EncryptedFields": ["VCP-TRADE.ClientID", "VCP-TRADE.AccountID"],
    "KeyID": "dek-2026-001-subject-12345",
    "Algorithm": "AES-256-GCM",
    "RetentionPolicy": "GDPR-5Y"
  }
}
        ]]></sourcecode>
      </section>
    </section>

    <!-- ===== Section 7: SCRAPI Integration ===== -->
    <section anchor="scrapi-integration">
      <name>SCRAPI Integration</name>
      
      <t>VCP Transparency Services MUST implement SCRAPI 
      <xref target="I-D.ietf-scitt-scrapi"/> with the following 
      VCP-specific considerations:</t>

      <section anchor="scrapi-registration">
        <name>Registration (POST /entries)</name>
        <t>VCP Events are submitted as COSE_Sign1 Signed Statements:</t>
        
        <sourcecode type="http"><![CDATA[
POST /entries HTTP/1.1
Host: vcp-ts.example.com
Content-Type: application/cose

<COSE_Sign1 containing VCP Event payload>
        ]]></sourcecode>
        
        <t>The Transparency Service validates the VCP Registration Policy 
        and returns a COSE Receipt on success.</t>
      </section>

      <section anchor="scrapi-retrieval">
        <name>Retrieval (GET /entries/{entry_id})</name>
        <t>Retrieve a specific VCP Event by its entry ID (derived from EventID).</t>
      </section>

      <section anchor="scrapi-receipt">
        <name>Receipt (GET /entries/{entry_id}/receipt)</name>
        <t>Retrieve the COSE Receipt for a registered VCP Event, 
        containing the Merkle inclusion proof.</t>
      </section>
    </section>

    <!-- ===== Section 8: Security Considerations ===== -->
    <section anchor="security">
      <name>Security Considerations</name>
      
      <section anchor="security-integrity">
        <name>Chain Integrity</name>
        <t>The per-Actor hash chain construction provides tamper evidence:
        modification of any event invalidates all subsequent hashes in 
        that Actor's chain. Combined with SCITT's global append-only log 
        and Merkle tree, this provides defense in depth.</t>
        
        <t>Mitigations against key compromise:</t>
        <ul>
          <li>Frequent Merkle anchoring to external immutable stores</li>
          <li>HSM-based key storage (Platinum tier requirement)</li>
          <li>Key rotation with explicit ROTATE events</li>
        </ul>
      </section>

      <section anchor="security-quantum">
        <name>Quantum Resistance</name>
        <t>Ed25519 signatures are vulnerable to attacks by cryptographically 
        relevant quantum computers. VCP provides crypto-agility 
        to address future threats:</t>
        <ul>
          <li>SignAlgo field enables algorithm negotiation and migration</li>
          <li>Post-quantum signature algorithms (e.g., ML-DSA/Dilithium) are 
          OPTIONAL and intended for experimental or high-assurance deployments</li>
          <li>Hash chain integrity based on SHA-256 provides approximately 
          128-bit post-quantum security against Grover's algorithm</li>
        </ul>
        <t>Implementers requiring post-quantum guarantees SHOULD monitor 
        CFRG and PQUIP working group outputs for updated guidance on 
        algorithm selection and migration timelines.</t>
      </section>

      <section anchor="security-timing">
        <name>Timing Attacks</name>
        <t>Clock manipulation can enable backdating of events. Mitigations:</t>
        <ul>
          <li>UUID v7 provides embedded timestamp that must match TimestampInt</li>
          <li>Transparency Service enforces timestamp bounds</li>
          <li>Platinum tier requires PTPv2 synchronization</li>
          <li>External anchoring provides independent timestamp attestation</li>
        </ul>
      </section>

      <section anchor="security-privacy">
        <name>Privacy Considerations</name>
        <t>VCP Events may contain sensitive trading information. Operators 
        SHOULD:</t>
        <ul>
          <li>Use crypto-shredding for personal data subject to GDPR</li>
          <li>Implement access controls on Transparency Service queries</li>
          <li>Consider encrypted payloads for highly sensitive data</li>
        </ul>
      </section>
    </section>

    <!-- ===== Section 9: IANA Considerations ===== -->
    <section anchor="iana">
      <name>IANA Considerations</name>
      
      <t>This document has no IANA actions at this time.</t>
      
      <t>Future versions of this specification may request:</t>
      <ul>
        <li>Registration of media type "application/vcp+json"</li>
        <li>Establishment of a VCP Event Type registry</li>
        <li>COSE algorithm identifiers for VCP-specific extensions</li>
      </ul>
    </section>
  </middle>

  <back>
    <!-- ===== References ===== -->
    <references>
      <name>References</name>
      
      <references>
        <name>Normative References</name>
        
        <reference anchor="RFC2119"><front><title>Key words for use in RFCs to Indicate Requirement Levels</title><author fullname="S. Bradner"/><date month="March" year="1997"/></front><seriesInfo name="BCP" value="14"/><seriesInfo name="RFC" value="2119"/></reference>
        <reference anchor="RFC8174"><front><title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title><author fullname="B. Leiba"/><date month="May" year="2017"/></front><seriesInfo name="BCP" value="14"/><seriesInfo name="RFC" value="8174"/></reference>
        <reference anchor="RFC8785"><front><title>JSON Canonicalization Scheme (JCS)</title><author fullname="A. Rundgren"/><date month="June" year="2020"/></front><seriesInfo name="RFC" value="8785"/></reference>
        <reference anchor="RFC9052"><front><title>CBOR Object Signing and Encryption (COSE)</title><author fullname="J. Schaad"/><date month="August" year="2022"/></front><seriesInfo name="RFC" value="9052"/></reference>
        <reference anchor="RFC9562"><front><title>Universally Unique IDentifiers (UUIDs)</title><author fullname="K. Davis"/><date month="May" year="2024"/></front><seriesInfo name="RFC" value="9562"/></reference>
        
        <reference anchor="I-D.ietf-scitt-architecture">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="Cedric Fournet" initials="C." surname="Fournet"/>
            <date year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture"/>
        </reference>
        
        <reference anchor="I-D.ietf-scitt-scrapi">
          <front>
            <title>SCITT Reference APIs</title>
            <author fullname="Orie Steele" initials="O." surname="Steele"/>
            <date year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-scrapi"/>
        </reference>
      </references>
      
      <references>
        <name>Informative References</name>
        
        <reference anchor="RFC6962"><front><title>Certificate Transparency</title><author fullname="B. Laurie"/><date month="June" year="2013"/></front><seriesInfo name="RFC" value="6962"/></reference>
        <reference anchor="RFC8032"><front><title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title><author fullname="S. Josefsson"/><date month="January" year="2017"/></front><seriesInfo name="RFC" value="8032"/></reference>
        
        <reference anchor="EU-AI-ACT">
          <front>
            <title>Regulation (EU) 2024/1689 - Artificial Intelligence Act</title>
            <author>
              <organization>European Parliament and Council</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        
        <reference anchor="MIFID-II">
          <front>
            <title>Directive 2014/65/EU - Markets in Financial Instruments Directive II</title>
            <author>
              <organization>European Parliament and Council</organization>
            </author>
            <date year="2014"/>
          </front>
        </reference>
        
        <reference anchor="FIPS-204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard (ML-DSA)</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024"/>
          </front>
          <seriesInfo name="FIPS" value="204"/>
        </reference>
      </references>
    </references>

    <!-- ===== Appendix A: Complete Example ===== -->
    <section anchor="appendix-example">
      <name>Complete VCP Event Example</name>
      
      <t>The following is a complete VCP Event encoded as JSON, ready 
      to be wrapped in a COSE_Sign1 Signed Statement:</t>
      
      <sourcecode type="json"><![CDATA[
{
  "Header": {
    "EventID": "01961e5f-5c0d-7000-8000-123456789abc",
    "TimestampISO": "2026-03-15T09:30:00.123456789Z",
    "TimestampInt": 1742034600123456789,
    "EventType": "ORD",
    "ActorID": "algo-momentum-001",
    "ChainID": "chain-actor-001",
    "SequenceNum": 42
  },
  "Payload": {
    "VCP-TRADE": {
      "OrderID": "ord-2026-001",
      "Symbol": "AAPL",
      "Side": "BUY",
      "Quantity": "100",
      "Price": "185.50",
      "OrderType": "LIMIT",
      "TimeInForce": "DAY"
    },
    "VCP-GOV": {
      "AlgoID": "momentum-v2.3",
      "DecisionFactors": ["RSI_oversold", "volume_spike"],
      "ConfidenceScore": 0.87,
      "RiskCheckPassed": true
    }
  },
  "Security": {
    "EventHash": "sha256:a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
    "PrevHash": "sha256:f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3b2a1f6e5",
    "SignAlgo": "ED25519"
  }
}
      ]]></sourcecode>
    </section>

    <!-- ===== Appendix B: JSON Schema ===== -->
    <section anchor="appendix-schema">
      <name>JSON Schema Reference</name>
      <t>The complete JSON Schema for VCP Events is available at:</t>
      <t><eref target="https://veritaschain.org/schema/vcp-event-v1.0.json"/></t>
    </section>

    <!-- ===== Acknowledgements ===== -->
    <section anchor="acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>The authors thank the members of the VeritasChain Standards
      Organization Technical Committee for their contributions to
      this specification. This work builds upon the SCITT architecture
      developed by the IETF SCITT Working Group, and the Certificate 
      Transparency work in <xref target="RFC6962"/>.</t>
    </section>
  </back>
</rfc>
