You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Abstract

Idemix (Identity Mixer) is a cryptographic protocol suite, which provides strong authentication as well as privacy-preserving features such as anonymity, the ability to transact without revealing the identity of the transactor, and unlinkability, the ability of a single identity to send multiple transactions without revealing that the transactions were sent by the same identity. More details here - https://hyperledger-fabric.readthedocs.io/en/release-2.2/idemix.html

Currently, Fabric Gateway SDK for Java and Fabric Gateway Client API for Java doesn't have support to use an Idemix Identities for transactions doing in Hyperledger Fabric. The objective of this mentorship program is to give support to store Idemix Identities in a Wallet and be able to use the same to invoke and query the transaction in a Hyperledger Fabric Network.

Mentors

Name

Time zone

Discord ID

Email ID

Kamlesh Nagware

ISTknagware#6976  kamlesh.nagware@gmail.com


Mentee

Name

Time zone

Discord ID

Email ID

Kavin Arumugam

ISTKArumugam#1934a.kavin24@gmail.com

Communication channel:  Discord+ Github

Hyperledger Fabric Repositories involved in this project: 

Deliverables

  • Ability to store Idemix Identity in a Wallet by using Fabric SDK for Java & Fabric Gateway SDK for Java.
  • Ability to use Idemix Identity in a Fabric Gateway Client API for Java.
  • Ability to use the Stored Idemix Identity from a Wallet to fire transactions to the Hyperledger Fabric Network using Fabric Gateway SDK for Java and be able to invoke & query the transaction by signing it using Fabric Gateway Client API for Java.
  • Demonstrate the usage of Identity Mixer Identity by using both Fabric Gateway SDK for Java and Fabric Gateway Client API for Java.

Implementation

Final Project Presentation

  • TBD

Milestones

Eval 1:

  • Ability to store Idemix Identity in a Wallet by using Fabric SDK for Java & Fabric Gateway SDK for Java.

Eval 2:

  • Ability to use the Stored Idemix Identity from a Wallet to fire transactions to the Hyperledger Fabric Network using Fabric Gateway SDK for Java.

Eval 3:

  • Ability to use Idemix Identity in a Fabric Gateway Client API for Java.
  • Able to invoke & query the transaction by signing it using Fabric Gateway Client API for Java.

Eval 4:

  • Demonstrate the usage of Identity Mixer Identity by using both Fabric Gateway SDK for Java and Fabric Gateway Client API for Java.

Timeline

Dates

Tasks/Plan

Status

June 1 - June 14
  • Attend Hyperledger Mentorship Program 2022 Onboarding Meeting
  • Mentor <> Mentee - Intro
  • Introduction to Hyperledger Fabric and its SDKs
  • Short Study on Membership Service Provider (X509 & Idemix) in Fabric
Done
June 15 - June 28
  • Introduction to Identity Mixer
  • Actors involved in Idemix Flow & How to use in Fabric
  • Discussion about Project Plan with Mentor and Defining the Timelines, Milestones and Deliverables
Done

June 29 - July 12

  • Install Prerequisites and Bring up & play with the sample Fabric Network
  • Setting Up and Configuring the network to fit for Idemix Usage
  • Identification of Basic flow for using Identity Mixer in Fabric
Done
July 13 - July 26Basic Flow Test of Idemix Usage in Fabric:
  1. Issuer - Fabric CA
    1. By default, Fabric CA is configured to issue Idemix Credentials

  2. Verifier - IdemixMSP in Channel Configuration
    1. Creating & Specifying Idemix MSP in "configtx.yaml"
    2. Generate Idemix Organization MSP Definition using "configtxgen" in form of JSON
    3. Updating Channel Configuration to update Idemix Organization MSP by Existing Organization Admin (with necessary approvals)

  3. User - From CLI (now) / Java SDK (later)
    1. Generate Idemix Credential for an User with Idemixgen Tool but with "Fabric CA Idemix Credentials"
    2. Export Necessary ENV Variables.
    3. Submit a Transaction to Network using an "idemix" User
Done
July 27 - Aug 9Done
Aug 10 - Aug 23
  • Get the Basic Understanding of fabric-gateway-java
  • Implementation of an Idemix Identity Provider
  • Modification in the Gateway Implementation to add an Idemix Identity Provider
    (Currently, it is hardcoded to use only x509 Identity Provider)
  • Modification of Identity Providers in Wallet Implementation
  • Build and Test the SDK
Done
Aug 24 - Sept 6
  • Write a Code to submit a transaction to the network by selecting an Idemix Identity from a Wallet using fabric-java-sdk & fabric-gateway-java repository
Done
Sept 7 - Sept 20

Sept 21 - Oct 4

Oct 5 - Oct 18

Oct 19 - Nov 1

Nov 2 - Nov 12

Methodology

TBD

  • No labels