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 itself introduces several requirements – that both sender and recipient can understand the messages, but that 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, used by firms such as Fireblocks, enabling 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 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
To address the widespread adoption issues faced by cryptosystems, some designs have incorporated circuit-based functional descriptions. 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. To bridge the gap between theory and practice, cryptographers are continuously refining these algorithms. This 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 their email or social media, without disclosing the actual content of those communications, therefore keeping personal information confidential.
In another groundbreaking application, programmable cryptography facilitates the confidential calculation of credit scores from a user’s interactions with Web 2.0 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 HE could result in the emergence of programmable elements.
As more and more of our lives exist online, the ability to protect and authenticate our data and communications becomes ever more 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.
To learn more about the power programmable cryptography, visit theARPA Network website here.
Related News:
Not all Random Number Generators are Created Equal: Here’s Why