[论文解读] Wys*: A Verified Language Extension for Secure Multi-party Computations
WYS* 是一种针对安全多方计算(MPC)的经过形式化验证的领域特定语言扩展,以 F* 为嵌入式 DSL 实现。它通过深度嵌入和机制化元理论,实现了对 MPC 程序的形式化验证,并提取出一个正确性保证的解释器。这是首个同时提供源程序形式化验证和经过验证的实现的 MPC DSL。
Secure multi-party computation (MPC) enables a set of mutually distrusting parties to cooperatively compute, using a cryptographic protocol, a function over their private data. This paper presents WYS*, a new domain-specific language (DSL) implementation for writing MPCs. WYS* is a Verified, Domain-Specific Integrated Language Extension (VDSILE), a new kind of embedded DSL hosted in F*, a full-featured, verification-oriented programming language. WYS* source programs are essentially F* programs written against an MPC library, meaning that programmers can use F*'s logic to verify the correctness and security properties of their programs. To reason about the distributed semantics of these programs, we formalize a deep embedding of WYS*, also in F*. We mechanize the necessary metatheory to prove that the properties verified for the WYS* source programs carry over to the distributed, multi-party semantics. Finally, we use F*'s extraction mechanism to extract an interpreter that we have proved matches this semantics, yielding a verified implementation. WYS* is the first DSL to enable formal verification of source MPC programs, and also the first MPC DSL to provide a verified implementation. With WYS* we have implemented several MPC protocols, including private set intersection, joint median, and an MPC-based card dealing application, and have verified their security and correctness.
研究动机与目标
- 解决现有领域特定语言在 MPC 程序中缺乏形式化验证支持的问题。
- 使开发人员能够使用高级、经过验证的编程语言,编写并验证 MPC 协议,以获得强大的安全性和正确性保证。
- 弥合 MPC 中高层程序验证与分布式多参与方执行语义之间的差距。
- 通过从 F* 中的深度嵌入提取出一个正确性保证的解释器,实现 MPC 协议的经过验证的实现。
- 通过实现并验证真实世界 MPC 协议(如私有集合交集和发牌协议)来证明该方法的实用性。
提出的方法
- WYS* 作为嵌入在 F* 中的领域特定语言实现,利用 F* 的依赖类型和验证能力。
- 在 F* 中形式化定义了 WYS* 的深度嵌入,以机器可检查的方式表示该语言的语法和语义。
- 在 F* 中机制化了元理论,以证明在源程序级别验证的性质在分布式执行语义下仍然保持不变。
- 利用深度嵌入定义了 WYS* 程序的语义,以捕捉其多参与方、分布式的行为特征。
- 使用 F* 的提取机制从深度嵌入中提取出一个解释器,并附带一个证明,表明其与形式化语义一致。
- 整个端到端流程——从源程序到经过验证的实现——均使用 F* 的验证框架进行了形式化验证。
实验结果
研究问题
- RQ1是否能够对 MPC 的领域特定语言在源码级别进行形式化验证,同时在分布式执行环境下保持安全性和正确性?
- RQ2是否可能对 MPC DSL 的元理论进行机制化,以确保在源码级别验证的性质在分布式环境中依然成立?
- RQ3是否能够从验证导向语言中深度嵌入的 DSL 自动提取出一个经过验证的、正确性保证的 MPC DSL 实现?
- RQ4如何利用高级、经过验证的编程语言(如 F*)来构建并验证端到端的 MPC 协议?
- RQ5所提出的方法是否能够实际应用于实现并验证真实世界的 MPC 协议,如私有集合交集和联合中位数计算?
主要发现
- WYS* 是首个提供源程序形式化验证的 MPC DSL,通过 F* 的验证逻辑确保正确性和安全性。
- 在 F* 中对 WYS* 的深度嵌入支持对分布式语义的精确推理,其元理论保证了语义的合理性。
- 提取出的解释器被形式化证明与深度嵌入的语义一致,从而确保了实现的正确性。
- 该方法已成功应用于验证多个 MPC 协议,包括私有集合交集、联合中位数和发牌协议。
- F* 的集成使开发人员能够对 MPC 程序使用完整的验证技术,显著降低了实现错误的风险。
- 该工作表明,从高层规格到经过验证的实现,对 MPC 系统进行端到端验证是可行且实用的。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。