SCP Canonical Attribute Registry v0.1(详细规范)
Canonical Attribute Registry(完整详细版本,含 Extensible Schema 机制)
版本:v0.1
状态:Production Protocol Specification(Detailed Version)
适用范围:SCP Vault / Canonicalization Pipeline / FQP / Registry Control Plane
日期:2026-02
一、协议目的(Purpose)
Canonical Attribute Registry 定义 SCP Vault 使用的标准 Canonical Attribute。
其核心目的:
- 为任意用户数据提供统一结构化表示
- 支持 Federated Query Protocol(FQP)执行确定性查询
- 支持跨数据源统一查询
- 支持隐私保护计算
- 支持 schema evolution
- 支持 extensible schema
Canonical Attribute Registry 是 Canonicalization Pipeline 的基础组件。
二、Canonical Attribute 的定义(What is Canonical Attribute)
Canonical Attribute 是 Vault 中数据的标准化表示形式。
示例:
原始数据:
"diagnosis": "hypertension"
Canonical Attribute:
diagnosis_code = I10
Canonical Attribute 具有以下特点:
- 标准命名
- 可索引
- 可查询
- 与数据源无关
三、Registry 架构模型(Registry Architecture Model)
Registry 分为三层:
3.1 Global Registry
Global Registry 是 protocol 定义的 attribute 集。
示例:
diagnosis_code
transaction_amount
receipt_total_amount
Global Registry 由 Registry Authority 管理。
文件:
canonical_registry_global.json
3.2 Local Registry
Local Registry 是 Vault 本地扩展 attribute。
示例:
ext_commerce_charging_kwh
文件:
canonical_registry_local.json
Local Registry 由 Vault 自动维护。
3.3 Network Registry
Network Registry 是由 Registry Synchronization Protocol 聚合的 registry index。
包含:
attribute name
domain
type
vault_count
四、Canonical Attribute 数据结构(Attribute Data Model)
Canonical Attribute 定义:
{
"attribute": "receipt_total_amount",
"domain": "commerce",
"type": "float",
"aliases": ["total", "amount"],
"description": "Total receipt amount",
"index": true,
"aggregation": ["sum", "avg"]
}字段解释:
attribute:标准 attribute 名称
domain:数据域
type:数据类型
aliases:映射原始数据字段
index:是否索引
aggregation:支持的聚合操作
五、Canonical Attribute Domains
Registry 定义以下 domain。
5.1 Health Domain
用于表示医疗和健康数据。
示例 attribute:
diagnosis_code
heart_rate
blood_pressure_systolic
BMI
blood_glucose
支持 FQP 查询:
count hypertension patients
5.2 Finance Domain
用于表示银行和金融数据。
示例 attribute:
transaction_amount
account_balance
credit_score
5.3 Education Domain
用于表示教育数据。
示例 attribute:
course_name
course_score
GPA
5.4 Commerce Domain
用于表示购物和消费数据。
示例 attribute:
receipt_total_amount
item_name
item_total_price
六、Extensible Schema Mechanism(扩展机制)
Registry 必须支持未知 attribute。
Vault canonicalization pipeline 遇到未知 attribute 时:
生成 Extended Canonical Attribute。
命名规则:
ext_<domain>_<normalized_attribute>
示例:
charging_kwh → ext_commerce_charging_kwh
七、Extended Attribute 生命周期(Lifecycle)
Step 1
Vault 发现未知 attribute
Step 2
Vault 创建 ext attribute
Step 3
Vault 存储 attribute
Step 4
Vault 更新 Local Registry
Step 5
Vault 通过 CRSP 发布 attribute announcement
Step 6
Network Registry 更新
八、Canonical Attribute Storage(存储模型)
Canonical Attribute 存储于 attributes 表。
示例:
record_id | name | value
-------------------------
r1 | receipt_total_amount | 45.20
r1 | ext_commerce_charging_kwh | 42.5九、Canonical Attribute Indexing(索引模型)
所有 attribute 必须索引。
CREATE INDEX idx_attributes
ON attributes(name, value);十、Canonical Attribute 查询模型(Query Model)
FQP 查询 attribute:
SELECT COUNT(*)
FROM attributes
WHERE name="diagnosis_code"
AND value="I10";Extended attribute 同样支持查询:
SELECT SUM(value)
FROM attributes
WHERE name="ext_commerce_charging_kwh";十一、Canonical Attribute 与 Canonicalization Pipeline 集成
Canonicalization Pipeline 使用 registry:
Step 1
Extract attributes
Step 2
Lookup registry
Step 3
Map canonical attribute
Step 4
Store attribute
十二、Canonical Attribute 与 Registry Synchronization Protocol 集成
Vault 通过 CRSP 发布 attribute:
AttributeAnnouncement
Registry Node 更新 Network Registry
十三、Schema Evolution 机制
当 ext attribute 被广泛使用:
Registry Authority 可以升级 Global Registry。
示例:
ext_commerce_charging_kwh → charging_kwh
十四、安全模型(Security Model)
Canonical Attribute:
必须本地生成
必须签名
必须支持 proof
十五、隐私模型(Privacy Model)
Canonical Attribute Registry 不存储:
user identity
attribute value
仅存储 attribute metadata
十六、性能目标(Performance Targets)
支持:
100M attributes
10M vaults
十七、总结(Summary)
Canonical Attribute Registry 提供:
标准 schema
Extensible schema
Schema evolution
FQP 查询基础
Registry synchronization 支持
Canonical Attribute Registry 是 SCP 的核心协议组件。