Hi everyone,
While debugging Certify service with DID documents, we noticed the following behavior:
-
Starting the Certify service, generating
did.json, and issuing a VC works as expected — the VC verifies successfully. -
If we truncate the
key_aliastable, restart the service, and generate a newdid.json, the public key changes. With this new DID, newly issued VCs verify correctly, but older ones fail verification. -
If we only restart the service (without truncating the table), the public key remains the same, and both existing and new VCs verify successfully.
We also tried including multiple public keys in did.json (example below), but in this case only VCs signed with the first key are verified — the verifier seems to ignore subsequent keys.
{
"@context": ["https://www.w3.org/ns/did/v1"],
"id": "did:web:shubhm-m.github.io:certify:local",
"verificationMethod": [
{
"id": "did:web:shubhm-m.github.io:certify:local#key-2",
"type": "Ed25519VerificationKey2020",
"controller": "did:web:shubhm-m.github.io:certify:local",
"publicKeyMultibase": "z6Mks2s729nhPsKVCgcX8YrMfhN2X2xQRnqHV5EQUUzS7sR8",
"@context": "https://w3id.org/security/suites/ed25519-2020/v1"
},
{
"id": "did:web:shubhm-m.github.io:certify:local#key-3",
"type": "Ed25519VerificationKey2020",
"controller": "did:web:shubhm-m.github.io:certify:local",
"publicKeyMultibase": "z6Mkrrtw1bw5vaNXjZw3bsfMMt4VECHP3VqT6SkUxTJyN3en",
"@context": "https://w3id.org/security/suites/ed25519-2020/v1"
}
],
"assertionMethod": [
"did:web:shubhm-m.github.io:certify:local#key-2",
"did:web:shubhm-m.github.io:certify:local#key-3"
],
"authentication": [
"did:web:shubhm-m.github.io:certify:local#key-2",
"did:web:shubhm-m.github.io:certify:local#key-3"
],
"service": [],
"alsoKnownAs": []
}
Use case: We are exploring key rotation while ensuring backward compatibility so that older VCs can still be verified after new keys are introduced.
Is this the expected behavior, or is there a recommended approach/best practice for managing multiple public keys and supporting verification of older VCs after key rotation?