Disclosure: The views and opinions expressed here belong solely to the author and do not represent the views and opinions of crypto.news’ editorial.
Cryptography has long been the preserve of mathematicians and computer scientists. However, recent advancements, particularly in zero-knowledge technologies, are now turning cryptographic system designs from complex mathematical constructions into more accessible and straightforward programming tasks. This transformative process, known as programmable cryptography, effectively bridges the gap between protocol designs and their practical implementations, and it will have profound implications for our security and privacy, both on-chain and online.
The challenges of bringing cryptographic theory to practice
At its essence, cryptography is simply the process of sending private messages between entities. The act introduces several requirements—the sender and recipient can understand the messages, but any third-party interceptor may not. Importantly, it also needs to ensure that the message cannot be tampered with before delivery. For instance, digital signatures provide authentication and integrity for communication on insecure channels.
Advanced cryptographic systems now cover the need to protect all kinds of online data and messages during storage, transmission, and computation, including banking, auctions, e-commerce, and blockchain, to name just a few. These systems include zero-knowledge proofs (ZKP,) multi-party computation (MPC,) and fully homomorphic encryption (FHE,) among others. Each of these systems, rooted in mathematics, addresses specific scenarios and needs.
MPC protects input data privacy in scenarios where multiple parties perform collaborative computations. One use case for MPC is institutional custody, which firms such as Fireblocks use, enabling the segregation of responsibility between individuals overseeing a wallet. ZKPs efficiently enable verifiable computation and data privacy in single-party contexts and are currently used in blockchain privacy and scaling.
The introduction of advanced cryptographic systems brings a lot of exciting possibilities to the digital world, but it also comes with significant challenges. People can only access dedicated cryptographic protocols designed for specific applications for a long time, such as private intersections, private auctions and voting, and physical identity verification. Making these systems work in the real world isn’t straightforward. Cryptographers must carefully plan everything, like security assumptions, primitive choices, and performance optimization. This complexity limits the wide-scale application of cryptosystems. The ability to efficiently implement a cryptographic protocol in a generalized scenario plays a crucial role in bringing cryptography from theory to the real world.
The role of programmable cryptography
Some designs have incorporated circuit-based functional descriptions to address the widespread adoption issues cryptosystems face. Theoretically, if a cryptosystem’s basic modules are capable of emulating a Turing machine, it can be used for general-purpose computational problems. This approach, where cryptosystems are utilized through circuit descriptions, is known as programmable cryptography.
However, theoretical feasibility is far from sufficient for real-world applications. Once the complexity of such a cryptosystem grows too quickly with the size of the computational problem, its practical application becomes unrealistic. Cryptographers continuously refine these algorithms to bridge the gap between theory and practice. This solution includes designing new frameworks, optimizing underlying primitives, and refactoring engineering implementations.
Researchers working at 0xPARC and Privacy and Scaling Explorations are carrying out pioneering work that enables zkSNARKs, the zero-knowledge proof construction now widely deployed in blockchain infrastructure such as ZCash and zkEVM, to be programmable cryptography.
They have showcased a proof of concept for identity claims using programmable ZKPs. This innovative approach allows for the verification of an individual’s eligibility for services through email or social media without disclosing the actual content of those communications, keeping personal information confidential.
In another groundbreaking application, programmable cryptography facilitates the confidential calculation of credit scores from a user’s interactions with web2 services, like social media, without exposing specific activities. This enables a privacy-centric assessment of creditworthiness, revolutionizing the evaluation of financial trustworthiness in today’s digital world.
The benefits of programmable cryptography are on multiple levels. Firstly, it makes the practical applications of cryptography far more flexible and adaptable. Programmability also opens up applied cryptography from being a niche discipline accessible to only a few academics to a global pool of developers, fostering experimentation and innovation.
Not a silver bullet, but a turning point
A key limitation of programmable cryptography in its current state is that its research has been predominantly focused on zkSNARKs. However, it’s worth noting that many cryptographic technologies are still in a relatively early stage of development, with significant breakthroughs in use cases only occurring over the last two decades. ZK technology has been a particular area of investment and focus due to the interest in blockchain and cryptocurrencies during that same period. With a similar level of interest and innovation, it’s possible that practical breakthroughs in the fields of MPC or homomorphic encryption could result in the emergence of programmable elements.
As more of our lives exist online, the ability to protect and authenticate our data and communications becomes increasingly critical. Programmable cryptography offers the opportunity to break down barriers and usher in a new era of modern encryption that’s more accessible and ripe for future development.
This article first appeared at crypto.news