I am trying to dive deep in this example of Hyperledger Indy about how to issue a credential. Basically, an "author 1" creates a schema definition and stores it in the ledger. Then this author 1 generates a credential and issues it to "author 2". I thought this transaction (author 1 issuing a credential to author 2) would generate a pseudonym.
Pseudonym: Blinded Identifier used to maintain privacy in the context of an ongoing digital relationship (Connection).
I was thinking if there is a way, using Python, to get this pseudonym, from this transaction. Apparently one of the fields generated in this transaction is reqId
, but it is not unique as it's just a combination of author 1's and author 2's DID and some data present in the credential. Also, I wanted to know if there is a way to know the author's DID using this pseudonym.
I had a look in the documentation and in this getting started example, but they don't give further information about pseudonym. The only time pseudonym is mentioned is in the introduction of the getting started example and during its development, it is not mentioned at all, even though many transactions are implemented.
I believe the pseudonyms are just for establishing connections between 2 parties, the did/verkey pair created for connections (the pseudonym) should not be used multiple times since it can give away the identity of both parties. You can create a new did/verkey pair and use that from the same wallet if you want to keep the verinym did/verkey seperate. The connection as i know is just a basic connection with public key encryption so that no one else can retrieve your data. So as i understand, you should not even be able to retrieve the pseudonym that is generated for each connection so that you do not use it again.
From this: All parties must not use the same DID’s to establish other relationships. By having independent pairwise relationships, you’re reducing the ability for others to correlate your activities across multiple interactions.
If you really want to have the did/verkey pair used for connections (pseudonym), you can create a new did/verkey from your existing wallet, and implement your own server that holds the encrypted data for both parties (so without the help of Libvcx) then you can call all the indy-sdk functions after decrypting the data using your newly created did/verkey pair (pseudonyms) for each party.