by Dimtry Khovratovich
We have seen tremendous progress in verifiable computation over the past few years. The modern technology of zero-knowledge proofs allows it to be proven that a certain computation has been done correctly. Such proofs are scalable, as they require less computational effort from a verifier than would be need to re-run the computation. These proofs can also be zero-knowledge in that they can hide certain inputs and interim variables from the verifier while still proving correctness.
A number of different verifiable computation techniques have emerged, each having specific features and advantages. First, some of them require that a trusted third party run a setup procedure and commit to not revealing the secret information used during the setup. The upsides of these methods are that they provide the smallest possible proofs and constant-time verification. Recently, it has become possible to have several parties updating the setup sequentially, and only one of them being honest suffices for security. Second, the proof size varies from a few hundred bytes to hundreds of kilobytes. Third, the verifier effort can be constant-time, logarithmic in computation time, or sublinear. Finally, the entire protocol may withstand quantum computers or not, which might be important for applications with long-term privacy requirements.
The existing verifiable computation methods support only a limited computational model with simple arithmetic in finite fields. Programs written in high-level languages in the von Neumann architecture must be compiled to arithmetic circuits to make (zero-knowledge) verification possible.
The contribution of Isekai is twofold. First, it is a compiler that supports several programming languages and converts programs written in them into an intermediate representation that is native or easily convertible to a format supported by zero-knowledge proof systems. Secondly, Isekai allows users to choose between different proof systems. In addition to constructing a proof, isekai also creates the trusted setup, if needed. An application can thus choose, online or beforehand, a proof system that best suits its needs.
Here, we list several potential applications for the Isekai system to various blockchains.
Computation as a service
Several blockchain projects take user-supplied data as input for processing and delegate the computation to other users of the blockchain, with the results being verifiably attested. An example is delegated AI/ML training and processing, where one group of users supply models and the other supplies data for training on them. It is required that the training is done according to certain rules.
Isekai can take on all these tasks. It currently supports two programming languages, C and C++, and more are on the way. This means that it can be adapted for various applications. It can be benchmarked on different proof systems to figure out which one suits particular applications best.
In traditional finance, the latency and performance of the trading system is a critical parameter that determines the efficiency of a concrete trader. A relatively long block-generation time and low throughput make blockchains such as Ethereum unsuitable for high-frequency trading. With novel zero-knowledge techniques, however, it becomes possible to replace actual transactions with a short proof of their correctness, which exploits the similarity of pieces of trading code. Instead of verifying millions of transactions, one verifies a succinct proof.
Isekai can compile the trading code and transaction verification code into ZK-friendly circuits and provide a framework for short and verifiable proofs, which are then aggregated into the blockchain.
An increasing number of assets are protected with different sorts of cryptography: signature and encryption keys, passwords, cryptocurrency keys, etc. As it becomes increasingly difficult to protect secrets on servers, many users tend to use hardware-enhanced devices to store the secrets and perform, to some extent, cryptographically-sensitive operations on such devices. However, until recently it was problematic to prove the correctness of such operations, and they might not be trusted either by the owner of the secret or by his counterparties.
Isekai can provide proofs of correctness for all sorts of cryptographic operations, from signatures to multiparty computation. The resulting proofs can be made compact and used in a blockchain.
Secure anonymous voting on the Internet has been a Holy Grail for decades. The challenge is to ensure the privacy of a voter, the confidentiality of a vote, and the secrecy of ongoing voting and also to avoid double votes. With blockchains and smart contracts, many schemes have become significantly easier, as double voting can be prevented on the protocol layer.
Isekai can assist in programming various anonymization subprotocols in voting schemes. For example, voters may be stored in a tree, and each one has to prove the knowledge of a private key behind one of leaf without revealing which one. This can be done with isekai by compiling a Merkle tree code into a zero knowledge proof.