Why should you use Inco?
Encrypted states fully on-chain: composable, programmable, and trustless
Zero-knowledge (ZK) cryptography has proven to be extremely valuable as a scaling solution, notably within ZK-rollups. While commitment-based approaches can address certain privacy-related use cases, it has demonstrated significant limitations in supporting scenarios involving multiple parties. This arises from the necessity of storing any confidential data off-chain, whether accomplished by the client or a third party (leading to increased dependencies and centralization). In essence, privacy through ZK predominantly suits single-player use cases, while growing notably more intricate or impossible to achieve for multiplayer situations such as card games or private voting.
Furthermore, achieving confidentiality with ZK demands a substantial investment of effort to comprehend circuit creation—typically employing a distinct language and design pattern. The confidential data has to be stored off-chain by the client or coordinated via a third party, leading to the generation of zero-knowledge proof on the client side. Subsequently, this proof undergoes on-chain verification, incurring a considerable cost (approximately 200k gas for SNARK proof verification in the EVM).
Lastly, under a commitment-based model, users must define a viewing key, making access control such as delegating or revoking rigid.
We believe that confidentiality ought to be more intuitive and directly integrated on-chain, and we utilize an encryption-based solution. Developers can harness encryption/decryption, execute operations, generate comparisons on top of encrypted states within their applications, and customize access control rules, all while offering unparalleled flexibility— directly expressed in solidity code. We believe that this will unlock a new world of use cases that weren't possible with the existing state of EVM and zk tools.
Last updated