Given a group where the computational Diffie–Hellman (DH) assumption holds and generator G.
Say there is a set of private randomly selected keys {a, b, c, d, e,...} and corresponding public keys set {A, B, C, D, E,...} calculated as A=aG. Each public key is publicly linked to its corresponding user/owner.
Alice can use its private key a and the public key of Bob, B, to calculate K=aB. This K is used as a tag for both users, can be publicly available, as it will not be used to encrypt messages, just as a reference. Bob can verify this by knowing that Alice is making the request (assume this), calculating K'=bA and checking if K=K'. Only Alice and Bob can know that this K is related to them.
From the computational DH assumption, K is meaningless for the other users. And K is a way to track this combination for the relevant users, in this case, Alice and Bob. I am assuming for now that this K is unique per private key combination.
Is it possible to prove that K contains two different private keys from the set of private keys without revealing the private keys?
The private/public keys need to be used to create another combination, say in case Alice and Charlie, acG. Because of this, (M)LSAG, as used in Moreno, is not usable because the keys need to be reused and such a link could reveal to Charlie that Alice already made some kind of transaction with someone else from the set of public keys.
I would like to have this proof in order that every user can verify that the K is valid, (i.e., calculated using private keys from the set), to avoid spam. An evil user could just generate random K using his/her private key but would be meaningless to everybody else. A blockchain will be used to track the references.
LSAG stands for Linkable Spontaneous Anonymous Group, and M for matrix version.