ZK Secret Santa
Artem Chystiakov, Kyrylo Riabov
TL;DR
ZK Secret Santa addresses privacy-friendly, on-chain Secret Santa by combining a transaction relayer with zero-knowledge proofs to privately determine gift sender/receiver pairs without a central trusted party. The protocol is formalized as a three-step non-peer-interactive process with setup, signature commitment, and two disclosure phases, supported by ZK proofs over a finite field $\mathbb{F}_p$, Merkle proofs, and RSA-based encryption for delivery addresses. It provides concrete security analyses for ECDSA non-determinism and potential frontrunning, and discusses an EdDSA alternative. The approach is implementable in Solidity with a transaction relayer, enabling privacy-preserving Secret Santa on Ethereum.
Abstract
This paper proposes a three-step Secret Santa algorithm with setup that leverages Zero Knowledge Proofs (ZKP) to set up gift sender/receiver relations while maintaining the sender's confidentiality. The algorithm maintains a permutational derangement and does not require a central authority to perform successfully. The described approach can be implemented in Solidity provided the integration with a transaction relayer.
