How Multisignatures would work on Verifiable Credentials

State of the art multisignature implementations are based on Naive Schnorr signatures with mechanisms against rogue-key attack, where a participant could claim a false public key, and eventually control the multi-signature. An example of this is Musig, where it extended the BN-scheme to make it more efficient for the Bitcoin network. Musig not only aggregates the signature, but the public keys as well. The aggregated public key will look no other like a normal non-aggregated public key. It cannot be determined that the public key is from an aggregated public key or not. 

Verifiable Credentials or VC can be signed by multiple entities. Here is how multisignatures would work on VC. Let us say we have 3 departments: d1, d2, d3 and each of them have their own DID: did1, did2, did3. d1 wants to issue a VC, but it also needs to secure d2 and d3 signature. d1 will first acquire did2 and did3, and create a new did called did4 from aggregated public keys from did1, did2, and did3. d4 is published into the distributed ledger acccessible by anyone. d1 generates and signs the credential document using its own private keys, produces a signature s1, then share an unsigned copy of the document to d2 and d3. I will omit here in the explanation the initial process of how we securely share signatures to prevent a rogue-key attack, since it includes sharing of nonces and hashes of nonces, and may confuse the readers. Upon receipt, d2 and d3 each signs the document and sends back their own signatures, s2 and s3 . d1 now aggregates s1, s2, s3 called s4 and creates a new VC with s4 as its signature. Now anybody can verify the VC using the public key from did4.

Comments

Popular posts from this blog

The Sidetree Protocol

On the IoT Exchange - DID integration

Smartkey Overview