SCP 联邦查询协议 (FQP) v0.1
隐私保护联邦查询协议规范
版本:v0.1
状态:生产级协议规范
替代版本:无
日期:2026-02
一、概述
联邦查询协议(Federated Query Protocol, FQP)是 SCP Compute Network 的核心查询协议,用于在多个 Vault 数据节点之间执行隐私保护的分布式查询。
FQP 支持以下查询类型:
- 统计符合条件的用户数量
- 计算平均值、总和等聚合指标
- 执行统计分析
- 支持联邦学习(Federated Learning)
- 支持基于向量索引的语义查询
FQP 保证:
- 原始数据永不离开 Vault
- 用户身份不会暴露
- 查询在 Vault 本地执行
- 聚合结果可验证
- 查询基于 Canonical Data Model 执行
二、与 Vault Canonicalization Pipeline 的关系
FQP 不直接查询原始数据,而是查询 Canonical Data Model(CDM)。
Canonicalization Pipeline 将任意用户数据转换为标准结构:
records
attributes
vector_index
canonical_hash
FQP 查询示例:
SELECT COUNT(*)
FROM attributes
WHERE name="diagnosis_code"
AND value="I10";优势:
- 查询确定性执行
- 查询性能高
- 支持统一查询所有数据源
- 不暴露原始数据
三、网络架构
FQP 网络包含以下角色:
Agent(查询发起方)
Query Coordinator(查询协调节点)
Vault Node(数据节点)
Secure Aggregator(安全聚合节点)
架构:
Agent
│
▼
Query Coordinator
│
▼
广播查询
│
▼
Vault Nodes
│
本地查询 canonical attributes
│
▼
安全聚合
│
▼
返回结果
四、Vault 节点执行模型
Vault 查询本地 canonical 数据库:
vault.db
├── records
├── attributes
├── encrypted_lookup_index
├── aggregation_cache
├── vector_index
执行流程:
接收查询
验证查询
查询 canonical attributes
计算 contribution
签名结果
返回 contribution
Vault 不会返回:
原始数据
用户身份
数据内容
Vault 只返回:
contribution
proof
五、查询生命周期
Step 1 查询创建
Agent 提交查询:
{
"query_type": "count",
"condition": {
"attribute": "diagnosis_code",
"operator": "equals",
"value": "I10"
}
}Step 2 查询广播
Coordinator 通过 libp2p 广播查询。
Step 3 Vault 本地执行
Vault 执行:
SELECT COUNT(*)
FROM attributes
WHERE name="diagnosis_code"
AND value="I10";Vault 返回:
0 或 1
Step 4 安全聚合
Coordinator 执行:
count = SUM(contributions)
聚合可以在以下环境执行:
TEE
MPC
ZK aggregation(未来支持)
Step 5 返回结果
返回:
{
"count": 100,
"proof": "..."
}六、支持的查询类型
FQP 支持:
Count 查询
Threshold 查询
Sum 查询
Average 查询
Histogram 查询
Vector similarity 查询
Federated Learning gradient 查询
七、Canonical Attribute 查询模型
FQP 所有查询必须基于 canonical attributes 执行。
示例 canonical attributes:
diagnosis_code
BMI
transaction_amount
education_level
优势:
统一查询模型
支持跨数据源查询
支持高性能索引
八、Vector 查询支持
FQP 支持基于向量索引的语义查询。
Vault 执行:
embedding(query)
vector search
计算 similarity contribution
支持:
语义搜索
RAG 查询
AI 查询
九、Proof 模型
Vault 生成 contribution proof:
result_hash = SHA256(query_id + contribution)
signature = sign(result_hash, vault_private_key)
Coordinator 生成 aggregation proof。
保证:
结果真实
结果完整
结果可验证
十、安全模型
FQP 保证:
原始数据隔离
身份隔离
加密索引查询
贡献签名验证
安全聚合
Coordinator 无法访问 Vault 原始数据。
Vault 无法访问其他 Vault 数据。
十一、隐私保证
FQP 防止:
身份泄露
数据泄露
中心化数据收集
FQP 保证:
本地计算
仅返回聚合结果
十二、性能
Vault 查询时间:
1--10 ms
网络聚合时间:
1--5 秒
支持:
百万级 Vault 网络
十三、参考实现
Vault 查询示例:
def execute_query(condition):
result = db.execute(
"SELECT COUNT(*) FROM attributes WHERE name=? AND value=?",
(condition.attribute, condition.value)
)
contribution = 1 if result > 0 else 0
proof = sign(contribution)
return contribution, proof十四、与 SCP Compute Network 的关系
FQP 是 SCP Compute Network 的查询协议层。
Vault Nodes:
Data Nodes
Compute Nodes:
Query Coordinator
十五、总结
FQP 是 SCP 的核心查询协议。
FQP 实现:
隐私保护查询
可验证计算
可扩展查询架构
支持结构化和语义查询
FQP 是 SCP 的基础协议之一。