Abstract
Idemix (Identity Mixer) is a cryptographic protocol suite, which provides strong authentication as well as privacy-preserving features such as 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
Current JavaSDK doesnCurrently, Fabric Gateway SDK for Java and Fabric Gateway Client API for Java doesn't support storing Idemix credentials in Hyperledger Fabric Wallethave support to use an Idemix Identities for transactions doing in Hyperledger Fabric. The objective of this mentorship program is to support wallets to store idimix identitiesgive 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 | IST | knagware#6976 | kamlesh.nagware@gmail.com |
...
Communication channel: Discord+ Github
Project repo: https://hyperledger.github.io/fabric-gateway/main/api/java/org/hyperledger/fabric/client/identity/Identity.html , https://hyperledger.github.io/fabric-gateway/main/api/java/org/hyperledger/fabric/client/identity/Signer.html
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 store use Idemix Identity in a Wallet by using Fabric Gateway Client API for Java.
- Ability to use the Stored Idemix Identity from a Wallet to fire transactions to the Hyperledger Fabric Network in both using Fabric Gateway SDK for Java and be able to invoke & query the transaction by signing it using Fabric Gateway Client API for Java.
- Write Unit Tests and Add Examples in fabric-samples Repository.
Merged PR's
- TBD
- TBD
- TBD
Final Project Presentation:
- TBD
- Demonstrate the usage of Identity Mixer Identity by using both Fabric Gateway SDK for Java and Fabric Gateway Client API for Java.
Implementation
- Fabric SDK for Java:
Goal: Return Identity Mixer Identity as an Encoded String so that it can be stored in a Wallet.
Code: https://github.com/KarthikKavinA/fabric-sdk-java/commit/5593dd7fcbcd6b22dfb1b387e603e09f2f18cfa9
- Fabric Gateway SDK for Java:
Goal: Add an implementation to store an Identity Mixer Identity in a Wallet.
Code: https://github.com/KarthikKavinA/fabric-gateway-java/commit/75c0250034151729abb1089790ea07d1722a4f8b - Fabric Gateway Client API for Java: (Strongly recommended for applications using Fabric V2.4 and later)
Goal: Provide Identity Mixer Identity Signing Capabilities and using the same to invoke & query the transaction
Code: https://github.com/KarthikKavinA/fabric-gateway/commit/75cd65c722ce0bd777e74d658995641aac2b294a
- Demo Application for using Idemix Identity in Fabric
Code: https://github.com/KarthikKavinA/fabric-idemix-identity-demo
Final Project Presentation
Milestones
Eval 1:
- TBDAbility to store Idemix Identity in a Wallet by using Fabric SDK for Java & Fabric Gateway SDK for Java.
Eval 2:
- TBDAbility 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:
- TBDAbility 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:
- TBD
Timeline
- 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
...
Dates | Tasks/Plan | Status | ||
---|---|---|---|---|
June 1 - June 14 |
| DoneMentee intro with the mentor. Introduction to the concepts of Identity Mixer and Fabric Java SDK. | ||
June 15 - June 28 |
| Done | ||
June 29 - July 12 |
| Done | ||
July 13 - July 26 | Basic Flow Test of Idemix Usage in Fabric:
| Done | ||
July 27 - Aug 9 |
| Done | ||
Aug 10 - Aug 23 |
| Done | ||
Aug 24 - Sept 6 |
| Done | ||
Sept 7 - Sept 20 | Sept 21 - Oct 4 | Oct 5 - Oct 18 | Oct 19 - Nov 1 | Nov 2 - Nov 12 |
Methodology
Oct 4 |
| Done |
Oct 5 - Nov 1 |
| Done |
Nov 2 - Dec 19 |
| Done |
Discussions & Clarifications
- https://discord.com/channels/905194001349627914/946761626072277002
- https://discord.com/channels/905194001349627914/943089887589048350/945341135977582642
- https://discord.com/channels/905194001349627914/1052794417917984788
Project Result
Demo Video
Demo Application
...