Internet-Draft | Lockb0x Protocol | September 2025 |
Tomlinson | Expires 24 March 2026 | [Page] |
This document specifies the Lockb0x Protocol, a standards-based framework for creating Codex Entries (machine-readable Controllable Electronic Records) that bind together storage proofs, blockchain anchors, encryption metadata, signatures, and provenance. The protocol enables interoperability across decentralized and cloud storage systems while providing auditability and compliance with legal frameworks such as UCC Article 12.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 24 March 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
The Lockb0x Protocol defines a mechanism for verifiable data provenance and sovereignty across heterogeneous storage backends and blockchains. This Internet-Draft provides a reference specification.¶
The Lockb0x Protocol defines a verification and provenance layer for digital data. It is not a storage protocol; rather, it operates with existing storage and blockchain systems to provide integrity, custodianship, and auditability.¶
Objectives of the protocol include:¶
The protocol introduces a Codex Entry abstraction that unifies storage proofs, cryptographic signatures, identity bindings, and blockchain anchors in a consistent, verifiable format.¶
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in [RFC2119].¶
org
, process
, artifact
). An additional subject
field MAY be included to represent an individual, entity, or asset referenced by the entry.¶
This document uses the key words defined in BCP 14 (RFC 2119 and RFC 8174).¶
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in BCP 14 ([RFC2119], [RFC8174]) when, and only when, they appear in all capitals, as shown here.¶
The Lockb0x Protocol defines a structured JSON object called a Codex Entry. This is the fundamental unit of the protocol, capturing proofs of integrity, storage, identity, and blockchain anchoring.¶
The full normative Codex Entry [JSON-Schema] is provided in Appendix B. This section provides only an overview of the object structure and its role in the protocol.¶
See the specification for required and optional fields, key ownership semantics, and revision chains. UUIDs MUST conform to [RFC9562].¶
Storage Adapters translate provider-specific metadata into canonical proofs (e.g., ni-URIs). Supported adapters include IPFS, S3, GCS, Azure Blob, and Solid Pods. Each adapter defines:¶
Anchoring links a Codex Entry to an immutable, time-stamped record on a blockchain or equivalent ledger. Anchors MUST be created before certificates are issued. Signatures MAY be applied before or after anchoring, but certificates MUST bind both signatures and the anchor. Required fields: chain ([CAIP-2]), tx_hash, hash_alg. Optional: token_id (NFT anchor).¶
Verification requires recomputing integrity proofs, validating signatures, and confirming anchors. Verifiers MUST implement [RFC8785] JSON canonicalization. Automated verifiers MAY be smart contracts.¶
Certificates provide human/machine-readable evidence derived from Codex Entries. Formats: JSON, W3C VC, X.509. Certificates MUST bind to anchor transaction IDs, integrity proofs, and signatures. They MAY include expiry or revocation metadata.¶
{ ... see appendix-b-schema.md for full JSON Schema ... }
End-to-end flows for Codex Entries:¶
(Full example flows are provided in Appendix A.)¶
Detailed scenarios include: key compromise, malicious storage providers, replay attacks, hash collisions, false jurisdiction claims, insider threats, denial-of-service, and post-quantum risks. Mitigations include HSMs, multi-sig, canonicalization, crypto-agility, and redundant anchors.¶
Security considerations for the Lockb0x Protocol are discussed in detail in the "Security Threat Models" section. Implementers should review the threat scenarios and recommended mitigations, including the use of HSMs, multi-signature controls, canonicalization, and crypto-agility. Additional risks may arise from improper implementation or integration with external systems.¶
This document makes no request of IANA.¶
This appendix contains the full JSON Schema for Codex Entries. This schema is normative and defines required and optional fields, their types, and constraints.¶
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Codex Entry", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "version": { "type": "string" }, "storage": { "type": "object", "properties": { "protocol": { "type": "string" }, "location": { "type": "string" }, "integrity_proof": { "type": "string" }, "jurisdiction": { "type": "string" } }, "required": ["protocol", "integrity_proof"] }, "encryption": { "type": "object", "properties": { "alg": { "type": "string" }, "key_id": { "type": "string" }, "last_controlled_by": { "type": "string" } } }, "identity": { "type": "object", "properties": { "org": { "type": "string" }, "process": { "type": "string" }, "artifact": { "type": "string" }, "subject": { "type": "string" } }, "required": ["org", "process", "artifact"] }, "anchor": { "type": "object", "properties": { "chain": { "type": "string" }, "tx_hash": { "type": "string" }, "hash_alg": { "type": "string" } }, "required": ["chain", "tx_hash", "hash_alg"] }, "signatures": { "type": "array", "items": { "type": "object", "properties": { "alg": { "type": "string" }, "kid": { "type": "string" }, "signature": { "type": "string" } }, "required": ["alg", "signature"] } }, "previous_id": { "type": "string", "format": "uuid" } }, "required": [ "id", "version", "storage", "identity", "anchor", "signatures" ] }