Conceitos: DIDs, VCs e did:key¶
Identificador Descentralizado (DID)¶
Um DID é um identificador que controlas sem um registo central, por exemplo
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK. Cada método de DID
(did:key, did:web, did:ion, …) define como o identificador é criado e como um
verificador encontra as suas chaves públicas (o "DID Document").
Verifiable Credential (VC)¶
Uma VC é um conjunto de afirmações assinado criptograficamente e à prova de adulteração, feito por um emissor sobre um sujeito, seguindo o Modelo de Dados VC da W3C. Exemplo: uma universidade (emissor) afirma que um aluno (sujeito) tem um diploma.
Três papéis:
- Emissor (issuer) — assina a credencial.
- Titular (holder) — guarda-a (muitas vezes é o sujeito) e apresenta-a.
- Verificador (verifier) — valida a assinatura contra o DID do emissor.
Porquê did:key aqui¶
O did:key incorpora a chave pública diretamente no identificador. Isso significa
que um verificador consegue reconstruir a chave pública e validar uma assinatura
offline — sem ledger, sem chamada de rede, sem registo. É o método mais simples
para aprender e testar.
O compromisso: como a chave é o identificador, o did:key não tem rotação de
chaves nem revogação. Isso é aceitável para demos e confiança ponto-a-ponto de
curta duração; para algo duradouro, ver Ir para produção.
Como o simple-vc assina¶
generateDidKey()cria um par de chaves Ed25519 e codifica a chave pública comodid:key(prefixo multicodec0xed01+ base58btc, a formaz6Mk…).issueCredential()constrói o payload da VC e assina-o como um JWT com o algoritmo EdDSA viadid-jwt-vc.verifyCredentialJwt()resolve odid:keydo emissor com okey-did-resolvere verifica a assinatura.
JWT vs provas JSON-LD¶
Há dois formatos de prova comuns para VCs: JWT (compacto, o que esta biblioteca usa) e provas JSON-LD Data Integrity (embebidas no JSON). Ambos são VCs W3C válidas; o JWT é mais simples para começar e interoperável com o ecossistema JOSE.