Zero Knowledge Proof Smart Contract Execution Privacy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing smart contract execution techniques fail to ensure private data remains strictly private while guaranteeing proper execution, as existing solutions require sharing private data with other parties for verification, compromising privacy.
Innovation Solution
Implementing a zero-knowledge proving scheme that allows a first peer to generate a program adapted for verifying private data manipulation detection codes, suspending execution, and using a second peer with access to private data to generate a zero-knowledge proof, ensuring the smart contract's validity without exposing private data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If private data is shared with other parties for verification, then smart contract execution can be verified, but privacy of the private data is compromised
Solution Approach 1:
The patent introduces a zero-knowledge proof system as an intermediary mechanism between the data owner and verifiers. The data owner generates a zero-knowledge proof that demonstrates correct smart contract execution without revealing the private data itself. This intermediary proof allows verification while maintaining privacy, resolving the contradiction between verification reliability and data privacy.
Solution Approach 2:
The patent creates a mathematical copy of the computation results through zero-knowledge proofs. Instead of sharing the actual private data, the system shares a proof structure that contains only the necessary verification information. This copying approach allows verification of execution correctness while the original private data remains hidden, solving the verification-privacy contradiction.
2Reliability
If all parties access private data to ensure correct execution, then execution correctness can be guaranteed, but data exposure increases
Solution Approach 1:
The zero-knowledge proof acts as an intermediary that enables execution correctness verification without requiring direct access to private data by multiple parties. The proof system provides a centralized verification mechanism that guarantees correctness while minimizing data exposure to only the necessary verification information.
Solution Approach 2:
The patent transforms the verification parameter from direct data access to proof verification. Instead of checking execution correctness by accessing private data, the system verifies through mathematical proofs that change the verification parameter. This parameter transformation allows correctness guarantee while reducing data exposure to minimal necessary information.
3Ease of operation
If private data is stored in distributed ledger, then transparency is improved, but privacy protection deteriorates
Solution Approach 1:
The patent segments data into two types: public data stored on the distributed ledger for transparency, and private data kept offline for privacy protection. The zero-knowledge proof bridges these segments, allowing verification of private data operations without exposing them to the public ledger. This segmentation resolves the contradiction between transparency and privacy protection.
Solution Approach 2:
The zero-knowledge proof system serves as an intermediary between private data storage and public ledger transparency requirements. It allows the system to maintain both privacy-protected private data storage and transparent public verification, resolving the contradiction between these two opposing requirements.
Data Source
AI summary
A method by a network device implementing a first peer of a distributed ledger to provide trusted execution of a smart contract that uses private data accessible to a second peer of the distributed ledger but not accessible to the first peer. The method includes detecting, during execution of the smart contract, a subroutine of the smart contract that uses the private data, providing an identifier of the subroutine and a proving key to the second peer, obtaining a zero-knowledge proof of computation of the subroutine and a public input to a program adapted for a zero-knowledge proving scheme, wherein the zero-knowledge proof was generated by the second peer, and determining whether the zero-knowledge proof is valid using the zero-knowledge proving scheme based on the public input and a verification key.


