

The reason why it works is a bit complicated, but basically the trick is that the signatures are not immutable. Given a valid signature, it is possible to create a new valid signature over the same content that is not linkable to the original one. This means that it is still possible to derive, what authority signed the document, but the authority cannot know in which transaction it has signed that specific document.



The anonymous credential signature scheme that is planned to be used is BBS#, I don’t know how it handles revocation.
https://github.com/eu-digital-identity-wallet/eudi-doc-standards-and-technical-specifications/blob/main/docs/technical-specifications/ts4-zkp.md
I haven’t found where in that source the implementation of revocation is discussed.
Edit: https://github.com/Orange-OpenSource/BBS-SHARP-doc-eudi-wallet/blob/main/Trust-model-privacy-on-attestation-presentation.md#14-attestation-revocation
Seems like no ways of enabling privacy preserving revocation with bbs# are known jet. This means that arithmetic circuit based proofs would be the only way to enable revocation. And as they can prove any statement in NP with ZK, the fact that they can prove that a revocation id is not part of a given list is obvious. https://github.com/eu-digital-identity-wallet/eudi-doc-standards-and-technical-specifications/blob/main/docs/technical-specifications/ts4-zkp.md#22-proofs-for-arithmetic-circuits-programmable-zkps
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/main-51.pdf As crescent by Microsoft is one of the considered implemations, this paper is probably the most relevant work on revocation of anonymous credentials.