What is a privacy-enhancing smart contract infrastructure? How does it differ from today’s infrastructure?
There are two ways in which you can use the privacy features of Aleph Zero—either natively, directly on the platform, or by integrating with the multichain privacy layer. We designed our solution, which we call Liminal, for developers who want to connect across various chains, e.g.:
- It will be possible to write smart contracts on Ethereum or Near while keeping a private state of this contract on Aleph Zero.
- For those who decide to build directly on Aleph Zero, Liminal’s privacy-enhancing capabilities will be native.
At the moment, most of the existing privacy solutions are based solely on “zero-knowledge” proofs or sMPC—but not both that complement each other in a hybrid fashion.
The idea behind ZK-SNARKs is to allow one party, the prover, to produce concise proof to convince the verifier that the “prover” is performing only correct computations on its private data. Importantly, this technique reveals nothing about the “prover’s” personal data to the verifier (hence the term “zero-knowledge”).
The second solution, called secure Multi-Party Computation (sMPC) involves hiding inputs to functions (by keeping sensitive information off-chain on several nodes) but providing a verifiable and public output. Access to the data is only allowed if the nodes conduct a secure handshake. No one computer can access the encrypted contents without a supermajority.
These two solutions complement each other by eliminating their respective problems. ZK-SNARKs allow for basic transfers yet are incapable of dealing with multi-user interactions. Zero-knowledge proofs can prove the correctness of the state update of their personal private state (for instance, how many private tokens they own on each address) that can be verified by blockchain.
ZK-SNARKs are not capable of achieving a concept of a common private state—a state owned by a smart contract that would be updated after users interact with it. This is where sMPC’s have their moment to shine. They can be used to implement the concept of a common private state, an example of which would be a decentralized exchange based on an automated market maker model without the need to reveal the value of each transaction. The problem with sMPC is that on its own, it is prohibitively slow; hence Liminal will use this solution only for the computations that need to interact directly with the common private state. The remaining computations can be performed and validated using ZK-SNARKs.