Skip to content

mankenavenkatesh/Selective-ZKP

Repository files navigation

Selective-ZKP EthIndia2k19 (Team nuAztec)

Problem Statement

Confidential transactions allow only the parties partaking in a transaction to be privy to the amount being transacted, outside observers are prevented from knowing this information.

  1. What IF in an organization with various levels like CEO, VP, HR, Employees want to use confidential transactions with provision for selective view access to a group of people?
  2. What IF in a closed auction using confidential transactions, once auction period is completed, the auction value must be revealed to a group of people?
  3. What if Governments needs view access for Incometax returns calculation purpose of Crypto confidential transactions? ETC

There are numerous use cases like mentioned above where confidentiality is required with Selective Access Control [RBAC] which is not possible with currect confidential solutions.

Solution

Selective-ZKP is a Decentralized platform for Role based access view of Confidential Assets created using Zero Knowledge Proofs. These Confidential Assets are created and transfered using Aztec Protocol. Confidential Assets are transfered as Notes[Similar to UTXO Model] in Aztec Protocol. Participants uses Viewing Key to fetch the transaction Value of Note. Viewing Key is shared only with the Participants of Policy members added on NuCypher.

How does it work???

Our Selective-ZKP provision Note Owners to share the Viewing Key SELECTIVELY with Groups by creating Policy on NuCypher. Once Policy is created, Note owner can add public keys to the Policy. Now user can send message[ViewingKey] to the NuCyper Policy which creates re-encryption keys for all the public keys inside policy group. Using re-encryption keys, Selective group can fetch the ViewingKey and subsequently fetch Note value.

We Selective-ZKP enhances Aztec Protocol helping users to provide view access to SELECTIVE clients.

Flow

Flow

Demo Video

Vimeo: https://vimeo.com/351847897

Devfolio

Submission https://devfolio.co/submissions/nuaztec-selective-zkp

How to run ?

  1. Start the ganache cli on port 8545 by going into the aztec_ganache_starter folder, then run npm install to install dependencies and run yarn start
  2. Open a new terminal and in the same folder run yarn migrate
  3. Go to the nucypher/setup folder, install dependencies using npm install and run node runner.js which will start the nucypher entities
  4. Then move to nucypher/server folder, install dependencies using npm install and run node proxy.js to connect to the nucypher entities
  5. Now go to aztec_ganache_starter folder and run node server/server.js
  6. Now run the UI server by going to dashboard folder, then installing live-server using npm i -g live-server and then running live-server.
  7. You will find 2 pages transfer and reg when you go to http://127.0.0.1:8080

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •