Skip to content

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 查询示例:

sql
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 提交查询:

json
{
  "query_type": "count",
  "condition": {
    "attribute": "diagnosis_code",
    "operator": "equals",
    "value": "I10"
  }
}

Step 2 查询广播

Coordinator 通过 libp2p 广播查询。


Step 3 Vault 本地执行

Vault 执行:

sql
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 返回结果

返回:

json
{
  "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 查询示例:

python
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 的基础协议之一。