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 表
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 表
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 索引
CREATE INDEX idx_attributes_lookup
ON attributes(name, value);四、Canonical Attribute Registry
Canonical Attribute Registry 定义 canonical attributes。
示例:
{
"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 阶段
存储加密原始数据:
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
示例输出:
{
"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:
INSERT INTO records VALUES (...)写入 attributes:
INSERT INTO attributes VALUES (...)十三、索引生成阶段
生成 structured index。
生成 encrypted lookup index:
term_hash = H(attribute_name + attribute_value + vault_key)更新 aggregation cache。
十四、向量索引阶段
生成 embedding:
embedding = embedding_model(text)存储于 vector index。
支持:
semantic search
RAG 查询
十五、Proof 生成阶段
生成 canonicalization proof:
{
"record_id": "...",
"blob_hash": "...",
"canonical_hash": "...",
"vault_signature": "..."
}签名:
sign(canonical_hash, vault_private_key)
支持可验证计算。
十六、Canonicalization Engine API
参考实现:
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:
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 的核心基础组件。