#dusk $DUSK

Ao ler a documentação do Dusk, fiquei com uma dúvida que nunca consegui esclarecer de todo sobre o mecanismo de revogação de licenças da Citadel: depois que uma license é revogada, os comprovantes que foram assinados anteriormente usando essa license ainda são válidos?

A Citadel emite licenses para instituições; na cadeia (on-chain) dá para consultar a titularidade, o período de validade e o status de revogação.

As instituições usam isso para provar ao contraparte que estão qualificadas, sem precisar enviar uma pilha de documentos. Mas imagine que hoje uma instituição recebe uma license para investidor qualificado, e com ela gera alguns comprovantes. Amanhã, o agente de colocação de tokens (issuer) descobre que há um problema e revoga a license.

O status na cadeia é atualizado. Mas os comprovantes que já foram enviados continuam válidos?

Se os comprovantes não forem revogáveis, a revogação só impede o que virá no futuro, mas não consegue bloquear os documentos que já vazaram/foram emitidos.

A contraparte pode ainda estar com um comprovante de três dias atrás para liberar a operação, porque na validação ela só vê se o próprio comprovante é válido, sem perceber que a license já foi revogada.

Se os comprovantes forem revogáveis, então cada comprovante precisa ser associado individualmente a um estado. Na validação, seria necessário consultar se aquele comprovante específico foi revogado. Porém, a ideia original do design das provas ZK é “não precisar de consultas adicionais durante a validação”; consultar revelaria o interesse do validador, degradando a privacidade.

Na documentação do Dusk, eu não encontrei essa parte com a lógica de tratamento específica. Para conformidade ser revogável e privacidade ser não vinculável (unlinkable), a Citadel coloca essas duas questões no mesmo contrato. Como escolher entre essas prioridades, eu ainda não vi resposta.

@Dusk