Conceitos: DIDs, passaportes e ações assinadas¶
Identidade (did:key)¶
Cada agente/operador é um par de chaves Ed25519 codificado como did:key. Como a
chave pública está embebida no identificador, um verificador resolve-o offline —
sem registo, sem rede. O compromisso é não haver rotação/revogação ao nível do DID;
trata disso ao nível do passaporte (expiresIn curto) ou usa did:web para
operadores de longa duração.
Passaporte (uma Verifiable Credential)¶
Um passaporte é uma VC W3C assinada pelo operador sobre o agente:
{
"type": ["VerifiableCredential", "AgentPassport"],
"issuer": "did:key:<operador>",
"credentialSubject": {
"id": "did:key:<agente>",
"name": "support-bot",
"model": "claude-fable-5",
"scopes": ["email:send", "crm:read"],
"operator": "did:key:<operador>"
}
}
O verifyPassport valida a assinatura do operador e devolve este sujeito. Os scopes
são strings livres que defines ("recurso:ação" funciona bem). "*" concede tudo.
Ações assinadas¶
Uma ação é um JWT EdDSA assinado pelo agente:
{ "iss": "did:key:<agente>", "act": { "type": "email:send", "target": "a@b.com" }, "iat": 1785600000 }
O verifyAction prova que o JWT foi assinado pela chave do agente. Guarda-os para
construir um registo de auditoria à prova de adulteração: nem um servidor
comprometido consegue forjar uma ação sem a chave privada do agente.
Cadeia de confiança¶
Um verificador confia numa ação se: (1) a ação verifica para o DID do agente, (2) o passaporte verifica para um DID de operador confiável e nomeia esse mesmo agente, e (3) o passaporte concede o scope de que a ação precisa.