# UoG dissertation Viva
- Name: *Fu-Chuan Chung*
- Student Number: *2941673*
- Course: *MSc Software Development*
- Supervisor: *Dr. Nguyen Truong*
---
## An overview of the system and demonstration.
---
## First question
Can you briefly explain the ZKP you use in the application? Does it requires interactions between the prover and veriifer?
----

1. zk-STARK (Succinct Transparent Argument of Knowledge) + zk-SNARK (Succinct Non-interactive Argument of Knowledge)
2. using the technique called "recursive proof"
only ***ONE*** interaction needed.
----

---
## Second question
**Is the ZKP server an independent and trusted party, and generates proofs for all data processors?** Or can each data processor run the ZKP server locally? Which approach do you think is the most suitable one for your application?
----
## If zk-server is an independent and trusted party?
- Pros:
- Reduce computational burden on DP (Generating proof is a heavy computational process)
- Cons:
- Introducing another trusted party and increase the security risk.
- Potential privacy concern as zk-server sees all attribute data.
----
## If zk-server runs locally?
- Pros:
- Enhanced privacy as attributes never leave DP's device.
- Reduced trust requirements (no external zk-server needed)
- Cons:
- Increase computational burden on data processors.
- Needs a machine to run the program.
----
## My insights
- Attributes should never leave local machine to prevent the probability of leaking.
- A better idea is the integrate the zk-server in web app using web assembly (*which we were intended to do so*, but met the technical issues)
---
## Third question
**What are the factors** that contribute the most to the performance (i.e., Proof Generation and Proof Verification execution time)? Especially when the Proof Verification method is executed on a Smart contract, can you provide some insights about the factors contributing to this performance evaluation including execution time, transaction confirmation on Ethereum testnet/mainnet, gas cost, etc.?
----
- Time:
- Proof generation: 32-44 (attribute number from 0 - 1000)
- Verification: takes 5-7 seconds on Arbitrum Sepolia testnet.
- Gas cost:
- Verification gas cost = `226408` , accounted for 73% in the main function (`mintAccessTokenForDP()`)
----
## Conclusion
1. Number of attributes does influence the proving time (a positive correlation but not linear).
2. Number of attributes does not impact the verification time.
3. Performance of verification might fluctuate depends on the blockchain network congestion.
{"title":"UoG dissertation Viva","description":"–","contributors":"[{\"id\":\"ca82b36c-64ab-4b0e-b065-0d7a70717183\",\"add\":5389,\"del\":2599}]","slideOptions":"{\"transition\":\"slide\"}"}