Author(s):
Almeida, José Bacelar ; Barbosa, Manuel ; Correia, Manuel L. ; Eldefrawy, Karim ; Graham-Lengrand, Stéphane ; Pacheco, Hugo ; Pereira, Vitor
Date: 2021
Persistent ID: https://hdl.handle.net/1822/89727
Origin: RepositóriUM - Universidade do Minho
Subject(s): Zero-knowledge; Secure multiparty computation; Formal verification; Implementation
Description
MPC-in-the-Head (MitH) is a general framework that enables constructing efficient zero-knowledge (ZK) protocols for NP relations from secure multiparty computation (MPC) protocols. In this paper we present the first machine-checked implementations of MitH. We begin with an EasyCrypt formalization that preserves the modular structure of the original construction and can be instantiated with arbitrary MPC protocols, and secret sharing and commitment schemes satisfying standard notions of security. We then formalize various suitable components, which we use to obtain full-fledged ZK protocols for general relations. We compare two approaches for obtaining verified executable implementations. The first uses a fully automated extraction from EasyCrypt to OCaml. The second reduces the trusted computing base (TCB) and provides better performance by combining code extraction with formally verified manual low-level components implemented in the Jasmin language. We conclude with a discussion of the trade-off between the formal verification effort and the performance of resulting executables, and how our approach opens the way for fully verified implementations of state-of the-art optimized protocols based on MitH.