2PC-MPC: Emulating Two Party ECDSA in Large-Scale MPC

July 28, 2024

Offir Friedman, dWallet Labs

Avichai Marmor, dWallet Labs

Dolev Mutzari, dWallet Labs

Omer Sadika, dWallet Labs

Yehonatan C. Scaly, dWallet Labs

Yuval Spiizer, dWallet Labs

Avishay Yanai, dWallet Labs

Abstract

Motivated by the need for a massively decentralized network concurrently servicing many clients, we present novel low-overhead UC-secure, publicly verifiable, threshold ECDSA protocols with identifiable abort.For the first time, we show how to reduce the message complexity from O(n^2) to O(n) and the computational complexity from O(n) to practically O(1) (per party, where n is the number of parties).We require only a broadcast channel for communication. Therefore, we natively support use-cases like permissionless bridges and decentralized custody, where P2P channels between every pair of parties are infeasible. Consequently, the message complexity is reduced and the protocol is publicly verifiable.We enable all communication to be public (over a broadcast channel), by using a threshold additively homomorphic encryption scheme and novel zero-knowledge proofs.To further reduce the computation and communication overheads, our protocols employ novel batching and amortization techniques, which may be of independent interest.Our second main contribution is the introduction of the notion of a 2PC-MPC protocol - a two-party ECDSA protocol where the second party is fully emulated by a network of n parties.This notion assures that both the first party (the client) and (a threshold) of the network are required to participate in signing, while abstracting away the internal structure of the network.In particular, the communication and computation complexities of the client remain independent of the network properties (e.g. size). This allows ultimate decentralization in distributed custody use-cases, as recent growing interest in the industry demands.We report that our implementation completes the signing phase in 1.23 and 12.703 seconds, for 256 and 1024 parties, respectively.

Ready to build with us?

Explore our docs and start building with Ika

Read Docs