Status: Closed (View Workflow)
Affects Version/s: v1.1.0
Fix Version/s: v1.1.0
Epic Name:Signing transactions unlinkably with Identity Mixer (MVP: e2e demo)
Function Test Status:Unset
IBM Identity Mixer is a cryptographic protocol suite for strong privacy-preserving authentication, signatures, and transfer of certified attributes.
Its trust model and security guarantees are similar to what is ensured by standard X.509 certificates, but the underlying cryptographic algorithms provide more advanced privacy features, such as unlinkability, minimal attribute disclosure and predicates over attributes, efficiently.
This Issue is for the MVP contribution only. The MVP part of the Identity Mixer contribution to the Hyperledger fabric consists of the following packages:
- a core Identity Mixer crypto package (in Go lang) that implements basic cryptographic algorithms (key generation, signing, verification, zero-knowledge proofs);
- membership service provider (MSP) implementation for signing and verifying the transactions using the Identity Mixer crypto package;
- a script for generating issuer and user keys and issuing credentials with attributes using the Identity Mixer crypto package;
- integration into the MSP config and support for switching between different MSPs in fabric;
- e2e demo script.
The first version of the Identity Mixer crypto library provides the following functionality:
- generating the issuer (CA) keys,
- issuing certificates in a form of Identity Mixer credentials,
- signing messages and selectively disclosing attributes from the certificates in a fully unlinkable manner, and
- verifying such signatures.
IBM Identity Mixer technology is built from the blind signature schemes that support multiple messages and efficient zero-knowledge proofs of possession of a signature.
All cryptographic building blocks and protocols are provably secure and were published at the top conferences and verified by the scientific community.
This particular Identity Mixer implementation uses a pairing-based signature scheme that
is described in detail by Au et al. and zero-knowledge proofs to prove knowledge of a signature that is described in detail by Camenisch et al. It requires only one dependency - the Miracl crypto library licensed under Apache v2.0 that is already included in Fabric v1.0.