At The Open Application Network (The OAN), we’re making a serious commitment to develop features into the platform that enable developers in expressing privacy-preserving on-chain computations. As a first step towards that end, we are excited to introduce the Privacy Test Network, an incubator for prototype implementations of privacy-preserving primitives and applications.
This initial release of the Privacy Test Network “Tetryon” enables users to employ on-chain SNARK verification within AVM-smart-contract-systems, by leveraging a modified ZoKrates tool-chain. This is made possible by non-intrusive modifications in the AVM that expose to smart contracts operations over the Alt-Bn 128 elliptical curve.
Why Do We Need Privacy in Open Applications?
Web-services and ubiquitous computing devices (mobile, smart TVs, etc.) have seeded countless “platform” businesses, a small fraction of which have been enormously successful (via network effects) in monetizing the data and attention of the global populace.
The Open Application architecture, offers an alternative approach to the “platform” businesses in the internet age. Blockchains represent an opportunity for the decoupling of data from services leveraging that data, offering more control and privacy to the owner of the data, all-the-while, enabling a richer spectrum of services that could be built.
But, a major barrier-to-adoption of Open Application architectures is the maturity of cryptographic primitives that enable control over the privacy of user data, when it comes into contact with services operating on it.
The cryptographic guarantees provided by web-services of the day are limited to secure authentication and eavesdropping protection. Once the data hits the application’s server, the user loses control over how this data will be used since no cryptographic guarantees are provided about adherence to claimed privacy policies. Consider the following example; even if a company asserts that all secondary data access is performed using differential privacy techniques, there exists no mechanism to irrefutably prove compliance.
The Open Application technology in production today can, at-best, offer pseudo anonymity; this has primarily limited it’s current usage to tokens and crypto-currencies. The use of cryptographic primitives (e.g. zero knowledge (ZK), fully homomorphic encryption (FHE), etc.) offer exciting possibilities to enable privacy-preserving interactions between user data and applications operating on it.
Research at the intersection of systems design, applied cryptography and computer security is required to construct protocols that enable developers of Open Applications to deliver services that articulate cryptographic guarantees about user data.
What Can I Do With The Privacy Test Network Today?
The Privacy Test Network is an independent initiative of the Research Team at The Open Application Network, and as such, is a prototype implementation maintained separately from the production efforts in AVM and Kernel development.
The Privacy Test Network boasts a modified AVM implementation that augments the capabilities of the Mainline Open Application Network, by enabling operations on the Barreto–Naehrig curve introduced in BCTV13 (“Alt-Bn 128”). This enables implementation of exciting cryptographic applications at the application layer in the AVM.
The first such application introduced, is the capability for application developers to validate zkSNARKs (Zero Knowledge Succinct Non-Interactive ARgument of Knowledge) on-chain. In particular, efficient operations on the Alt-Bn 128 curve enable implementation of a family of SNARKs where the verfication depends on computation of elliptical curve pairings (e.g. PGHR13, G16, GM17).
SNARKs, are a family of cryptographic primitives that enable a prover to convince a verifier about knowledge of some “witness” string, by handing the verifier a “proof” string which does not reveal the witness. Key features of this primitive include a very efficient verification algorithm (in terms of time and space complexity) and a very short proof size (i.e. “succinctness”).
In the context of Blockchains, SNARKs enable developers to design applications that “gate” on-chain state transitions based on cryptographic arguments of knowledge of some witness (without revealing the witness). In order to make it easy for developers to articulate such SNARKs and deploy them on-chain, we are also releasing a fork of the ZoKrates toolchain. Our modifications to ZoKrates enables generation of SNARK verification contracts which can be deployed directly onto the AVM. All other ZoKrates features (e.g. expressing SNARKs using the ZoKrates DSL) work as documented.
Wait … What Are SNARKs And How Do I Use them?
If you’re not up to speed on what SNARKs are and how you can use them in developing your applications on the Privacy Test Network, don’t worry! We will soon be releasing some tutorials and documentation, to help you get started with SNARKs.
Until then, feel free to explore the the Privacy Test Network on our GitHub