Skip to content

% SCP Data Storage & Commitment Binding Specification % Version 1.0 (Formal Edition) % 2026-02-27

SCP 数据存储与 Commitment 绑定规范 v1.0

状态:Standards Track
类别:数据层 × 语义层 × 验证层绑定规范

本规范定义:

  1. CanonicalRecord 存储模型
  2. Commitment 生成与绑定规则
  3. 数据加密与隔离原则
  4. 形式化不变量
  5. Merkle Root 批量提交结构
  6. Root 一致性与验证流程

============================================================

第一部分:结构定义

1.1 CanonicalRecord

CR = (schema_version, vault_id, timestamp, attributes)

attributes = [(attribute_id, value_type, value_bytes)]

CR 必须 deterministic 序列化。


1.2 Commitment

C = SHA256(Serialize(CR))


1.3 加密结构

E = Encrypt_AES_GCM(CR, data_key)

Vault 存储:E
公开层存储:C

============================================================

第二部分:存储分层模型

数据层(私有)

  • 存储 Encrypted CanonicalRecord (E)
  • 位于 Vault 本地或 TEE 内

语义层(公开)

  • attribute_id 索引
  • embedding_hash
  • scope
  • DomainRoot
  • RegistryRoot

不包含 value_bytes

执行验证层

  • Commitment C
  • BLS 签名
  • Merkle proof

============================================================

第三部分:形式化不变量

Invariant 1:承诺一致性

Decrypt(E) = CR
SHA256(CR) = C

Invariant 2:不可篡改

CR' != CR ⇒ SHA256(CR') != C

Invariant 3:公开层无明文

Storage_Public 不包含 CR 或 value_bytes

Invariant 4:Root 可重现

MerkleRoot(C_batch) = H(MerkleTree(sorted(C_batch)))

Invariant 5:加密隔离

E 不可在非 Vault 或非 TEE 环境解密

============================================================

第四部分:Merkle Root 批量提交结构

设 Batch_B = [C1, C2, ..., Cn]

步骤:

  1. 排序 C_i
  2. 构建二叉 Merkle Tree
  3. 计算 MerkleRoot_B

BatchCommit = (epoch_id, MerkleRoot_B, batch_size)

可提交至 Settlement 层。


单条验证:

  1. 提供 CR
  2. 计算 C = SHA256(CR)
  3. 提供 Merkle Proof
  4. 验证路径至 MerkleRoot_B

============================================================

第五部分:Root 绑定模型

RegistryRoot = H(sorted(embedding_hash))

BatchRoot = H(sorted(C_i))

SettlementRoot = H(RegistryRoot || BatchRoot)

============================================================

第六部分:安全性说明

防止:

  • 数据篡改
  • 批次伪造
  • 选择性删除
  • 重放攻击

============================================================

第七部分:一致性定理

若所有节点:

  • 相同序列化规则
  • 相同哈希函数
  • 相同排序规则

则 MerkleRoot_i = MerkleRoot_j

============================================================

结论

本规范实现:

  • 数据私有
  • 语义公开
  • 批量可验证
  • 长期可审计

结束。