protocol so that a certificate holder is able to prove that he holds a valid X.509 certificate chain with a unique Distinguished Name, without actually sending the public key to the verifier and selectively disclosing the contents of the certificate: in other words, we re-use existing certificate chains and PKI infrastructure without requiring any modifications, turning X.509 certificates into anonymous credentials. A previous work already demonstrated the technical and practical viability of this approach[@cinderella-turning-shabby-x-509-certificates-into-elegant-anonymous-credentials-with-the-magic-of-verifiable-computation]: the only handicap was that the proof generation could take a long time (e.g., more than 10 minutes) and large keys (e.g., 1 Gbyte)..

Recent research advances have improved[@cryptoeprint:2017:602] the initial setup of the zk-SNARK protocol used to generate the Common-Reference String (CRS) with an MPC protocol, such that it’s secure even if all participants are malicious (except one). And faster proving times could be obtained by efficiently composing the non-interactive proving of algebraic and arithmetic statements[@cryptoeprint:2018:557] since QAP-based zk-SNARKs are only efficient for arithmetic representations and not algebraic statements, but at the cost of increasing the proof size.

In this paper, a practical implementation has been completed to check a certificate chain with an additional validation policy and written as C code for Pequin[@pequin], then 