  Zero-knowledge proofs (ZKPs) represent a revolutionary advance in
computational integrity and privacy technology, enabling the secure and private
exchange of information without revealing underlying private data. ZKPs have
unique advantages in terms of universality and minimal security assumptions
when compared to other privacy-sensitive computational methods for distributed
systems, such as homomorphic encryption and secure multiparty computation.
Their application spans multiple domains, from enhancing privacy in blockchain
to facilitating confidential verification of computational tasks. This survey
starts with a high-level overview of the technical workings of ZKPs with a
focus on an increasingly relevant subset of ZKPs called zk-SNARKS. While there
have been prior surveys on the algorithmic and theoretical aspects of ZKPs, our
work is distinguished by providing a broader view of practical aspects and
describing many recently-developed use cases of ZKPs across various domains.
These application domains span blockchain privacy, scaling, storage, and
interoperability, as well as non-blockchain applications like voting,
authentication, timelocks, and machine learning. Aimed at both practitioners
and researchers, the survey also covers foundational components and
infrastructure such as zero-knowledge virtual machines (zkVM), domain-specific
languages (DSLs), supporting libraries, frameworks, and protocols. We conclude
with a discussion on future directions, positioning ZKPs as pivotal in the
advancement of cryptographic practices and digital privacy across many
applications.
