SCQL Overview
特性与目标
SCQL(Secure Collaborative Query Language)是一种专为支持多方安全数据分析而设计的语言,它的目标是在保证数据隐私的前提下,使得不同的参与方能够进行联合数据分析。这一概念和技术是随着隐私计算技术的发展而提出的,特别是在多方安全计算(Multi-party Computation, MPC)领域。
总之,SCQL旨在推进隐私计算技术的实用化和大众化,降低多方安全数据分析的技术门槛,促进数据价值的合法合规释放。
应用场景
SCQL CCL
在隐私计算中,Column Control List(CCL)是一种用于控制数据访问权限的机制。CCL是一个列级别的访问控制列表,用于定义哪些列可以被哪些用户或角色访问。
CCL中的每个条目通常包含三个关键元素:列名、用户/角色和访问权限。列名指定了需要进行权限控制的列,用户/角色指定了具有访问权限的用户或角色,而访问权限指定了用户/角色对于该列的具体访问权限。
通过使用CCL,可以实现细粒度的数据访问控制。例如,一个数据库表可能包含多个敏感列,如姓名、地址和社会安全号码。通过在CCL中指定只有特定的用户或角色可以访问这些列,我们可以限制对这些敏感信息的访问。
CCL可以与其他隐私计算技术结合使用,如差分隐私、同态加密等。通过将CCL与这些技术结合,可以实现更高级的数据隐私保护,确保只有经过授权的用户才能访问到特定的列数据。
总而言之,CCL是隐私计算中一种重要的机制,用于实现列级别的数据访问权限控制。通过使用CCL,可以确保敏感数据只能被授权的用户或角色访问,从而提高数据隐私和安全性。
SCQL架构
SCQL(Secure Collaborative Query Language)是一种用于隐私计算的查询语言,它提供了一种描述和执行安全计算任务的方式。
当用户输入SQL语句时,SCQL系统会按照以下步骤处理该输入:
- 用户输入:用户通过图形用户界面(GUI)或其他方式向系统提交SQL查询。
- Session Manager:接收到用户输入后,Session Manager首先解析SQL语句,将其分解成一个个独立的命令或操作。
- Parser:解析器将SQL语句转换为抽象语法树(AST),这是一个表示SQL语句结构的树形数据结构。AST有助于理解和处理复杂的SQL查询。
- Planner:查询规划器分析AST,生成逻辑执行计划。这个阶段的目标是确定如何最有效地执行查询,包括选择合适的索引、排序方法等。
- Optimizer:查询优化器进一步优化逻辑执行计划,考虑各种可能的执行路径,并选择最佳路径。这可能涉及到重写查询、合并操作、选择最佳索引等。
- Translator:将优化后的逻辑执行计划转换为SCQL语句,这是SCQL系统特有的查询语言,用于在多方之间进行安全协作。这个阶段需要考虑如何在保证数据安全的前提下执行查询。
- SCDB:Secure Cooperative Database接收转换后的SCQL语句,并负责执行这些查询。SCDB是一个分布式数据库系统,支持SCQL语句的执行。
- CCL Manager:根据查询的特定需求,CCL Manager会选择合适的加密协议和安全协议,以确保数据的安全性和隐私性。
- SCQL Engine:在各个参与方之间执行SCQL语句,通过MPC(Multiparty Computation)协议实现数据的安全共享和计算。
- DataSource Adaptor:适配各种数据源,如MySQL、Postgres、CSV、Hive等,使得不同来源的数据能够被安全地整合和分析。
- Apache Arrow:作为一种高性能、跨平台的数据交换格式,Apache Arrow用于在SCQL Engine和DataSource Adaptor之间高效地传输数据。
通过以上步骤,SCQL系统能够处理用户输入的SQL查询,并在保证数据安全和隐私的前提下,提供准确和高效的查询结果。