Skip to content

SCP Vault Canonicalization Pipeline Spec v0.1(扩展生产级版本)

Vault 标准化处理流水线协议规范

版本:v0.1
状态:生产级协议规范
适用范围:SCP Vault Nodes(Mobile / Server / TEE)
日期:2026-02


一、概述

Vault Canonicalization Pipeline 用于将任意用户数据转换为标准化的 Canonical Data Model(CDM),以支持:

  • Federated Query Protocol(FQP)
  • 隐私保护本地计算
  • 高性能索引查询
  • 联邦学习
  • 可验证计算

Canonicalization Pipeline 在 Vault 本地执行。

原始数据永不离开 Vault。


二、设计原则

Canonicalization Pipeline 必须满足以下原则:

确定性(Determinism)
相同输入必须生成相同 canonical attributes

本地执行(Local Execution)
禁止发送原始数据到外部系统

可扩展性(Extensibility)
支持无限数据类型,无需 schema migration

可验证性(Verifiability)
生成 canonicalization proof

隐私保护(Privacy-preserving)
canonical index 不泄露原始数据


三、Canonical Data Model(CDM)

3.1 records 表

sql
CREATE TABLE records (
    record_id TEXT PRIMARY KEY,
    domain TEXT NOT NULL,
    source TEXT,
    timestamp INTEGER,
    blob_id TEXT NOT NULL,
    canonical_hash TEXT,
    created_at INTEGER
);

3.2 attributes 表

sql
CREATE TABLE attributes (
    record_id TEXT,
    name TEXT,
    value TEXT,
    type TEXT,
    confidence REAL,
    source_offset INTEGER,
    extractor TEXT,
    PRIMARY KEY(record_id, name)
);

3.3 attributes 索引

sql
CREATE INDEX idx_attributes_lookup
ON attributes(name, value);

四、Canonical Attribute Registry

Canonical Attribute Registry 定义 canonical attributes。

示例:

json
{
  "attribute": "diagnosis_code",
  "domain": "health",
  "type": "string",
  "aliases": ["diagnosis", "condition"],
  "standard": "ICD-10"
}

Registry 包含:

attribute 名称
domain
type
aliases
validation rules
mapping rules


五、Canonicalization Pipeline 架构

用户上传数据
    │
加密 Blob 存储
    │
文件类型识别
    │
Domain 分类
    │
结构化数据提取
    │
Canonical 映射
    │
数据验证
    │
Canonical 存储
    │
索引生成
    │
向量索引生成
    │
Proof 生成

六、Blob Storage 阶段

存储加密原始数据:

python
blob_id = sha256(file_bytes)

encrypted_blob = encrypt(file_bytes, vault_key)

store_blob(blob_id, encrypted_blob)

保证原始数据完整保存。


七、文件类型识别阶段

识别数据格式:

pdf
json
csv
image
text

实现方法:

MIME detection
magic byte detection
file signature detection


八、Domain 分类阶段

分类数据所属 domain:

health
finance
education
commerce
device
social

分类方法优先级:

connector metadata
规则引擎
ML classifier
本地 LLM classifier


九、结构化数据提取阶段

提取 key-value 数据。

支持 extractor:

JSON parser
CSV parser
OCR
NER 模型
本地 LLM extractor

示例输出:

json
{
 "diagnosis": "hypertension",
 "BMI": 27.5
}

十、Canonical 映射阶段

将提取的数据映射为 canonical attributes。

示例:

hypertension → diagnosis_code = I10

BMI → BMI

映射来源:

Canonical Registry
mapping rules
LLM 辅助映射


十一、验证阶段

验证数据:

类型正确性
数值范围
schema 合法性

示例:

BMI 必须为 float

diagnosis_code 必须符合 ICD-10


十二、Canonical 存储阶段

写入 records:

sql
INSERT INTO records VALUES (...)

写入 attributes:

sql
INSERT INTO attributes VALUES (...)

十三、索引生成阶段

生成 structured index。

生成 encrypted lookup index:

python
term_hash = H(attribute_name + attribute_value + vault_key)

更新 aggregation cache。


十四、向量索引阶段

生成 embedding:

python
embedding = embedding_model(text)

存储于 vector index。

支持:

semantic search
RAG 查询


十五、Proof 生成阶段

生成 canonicalization proof:

json
{
  "record_id": "...",
  "blob_hash": "...",
  "canonical_hash": "...",
  "vault_signature": "..."
}

签名:

sign(canonical_hash, vault_private_key)

支持可验证计算。


十六、Canonicalization Engine API

参考实现:

python
def canonicalize(file):

    blob_id = store_blob(file)

    file_type = detect_type(file)

    domain = classify_domain(file)

    extracted = extract(file)

    canonical = map_to_canonical(extracted)

    validate(canonical)

    record_id = store_record(blob_id, domain)

    store_attributes(record_id, canonical)

    build_structured_index(record_id)

    build_vector_index(file)

    proof = generate_proof(record_id)

    return record_id, proof

十七、性能目标

Mobile Vault:

100--500 ms / record

Server Vault:

10--100 ms / record

TEE Vault:

20--200 ms / record


十八、安全要求

Canonicalization 必须本地执行。

禁止发送原始数据到外部系统。

必须生成签名 proof。

必须使用加密存储。


十九、错误处理

如果 extraction 失败:

仍然存储 blob

标记 record incomplete

稍后重试 canonicalization


二十、与 FQP 的关系

FQP 查询 canonical attributes:

sql
SELECT COUNT(*)
FROM attributes
WHERE name="diagnosis_code"
AND value="I10";

Canonicalization Pipeline 提供 FQP 查询基础。


二十一、Vault 架构参考

Vault
├── encrypted_blobs
├── vault.db
├── vector_index
├── canonical_registry
├── compute_engine
└── proof_engine

二十二、总结

Canonicalization Pipeline 将任意用户数据转换为:

canonical attributes
indexed records
verifiable proof

是 SCP Vault 的核心基础组件。