Concept
Verifiable Credentials Verifier (VCV) is a module that provides native, on-chain verifiable presentation verification for transactions and consensus on the app - Dchain.
For messages that require it, the AnteHandler decorator routes the
corresponding verifiable presentation (carried in the transaction's ExtensionOptions) to a
Route that describes the trusted issuers and the verification requirements for
that message. Verification is performed natively in Go - there is no smart contract involved. This
lets other modules and dApps on Dchain reuse the same verification mechanism.
The module:
- provides an AnteHandler decorator that verifies Dchain transactions whose messages require a verifiable presentation;
- verifies verifiable presentations in the ABCI proposal pipeline (the proposer's VP and the validators' vote-extension VPs);
- stores
Routedefinitions describing the trusted issuers, their public keys and the verification requirements for each gated message; - lets governance manage the module parameters, and lets each route's
adminmanage that route's issuers and requirements.
Currently the SD-JWT presentation format is supported (ROUTE_TYPE_SD_JWT). Verification is done
in native Go using the github.com/d-foundation/sd-jwt-verifier package (pkg/sdjwt). This allows
selectively-disclosed JWTs to be presented as verifiable credential presentations and verified
on-chain against an issuer's public JWK and a set of attribute requirements.