DID Method Specification
did:cuil
Decentralized Identity for Argentine Fiscal Identifiers
Estado: Publicado por FirmaRED Protocol como candidato al W3C DID Method Registry.
Pull Request #698 abierto en
w3c/did-extensions.
Implementa W3C DID Core 1.0 y W3C Verifiable Credentials 2.0.
El método did:cuil transforma el identificador fiscal argentino CUIL en un DID soberano, criptográficamente verificable, anclado en blockchains públicas y resistente a computación cuántica.
1 Nombre del Método
El nombre del método es: cuil. Todo DID que use este método DEBE comenzar con el prefijo did:cuil:.
2 Identificador Específico
did-cuil-format := "did:cuil:" cuil-number
cuil-number := 11DIGIT
El CUIL es un número de 11 dígitos asignado por AFIP Argentina. Validado con el algoritmo mod-11 oficial antes de la creación del DID. El valor del CUIL NUNCA se incluye en el DID Document.
Ejemplo de DID válido
did:cuil:20378029067
3 Operaciones CRUD
Create
- Validar CUIL con algoritmo mod-11
- Generar ZK commitment:
Poseidon(cuil, salt)con Groth16/bn254 - Generar claves Ed25519 (autenticación) y ML-DSA-44 (post-quantum)
- Anclar hash en Ethereum y Bitcoin (OpenTimestamps)
- Publicar DID Document en
firmared.com/did/cuil/{cuil}
Read
GET https://firmared.com/did/cuil/{cuil}
Accept: application/did+ld+json
Update
Requiere prueba ZK válida de posesión del CUIL más firma con la clave Ed25519 actual.
Deactivate
Emitir W3C VC de tipo DeactivationCredential firmada con la clave del titular. El resolver devuelve deactivated: true.
4 DID Document
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1",
"https://firmared.com/ns/firma/v1"
],
"id": "did:cuil:20378029067",
"verificationMethod": [
{
"id": "did:cuil:20378029067#key-ed25519",
"type": "Ed25519VerificationKey2020",
"controller": "did:cuil:20378029067",
"publicKeyMultibase": "z..."
},
{
"id": "did:cuil:20378029067#key-mldsa44",
"type": "MLDSAVerificationKey2024",
"controller": "did:cuil:20378029067",
"securityLevel": "NIST-Level-2",
"standard": "FIPS-204-2024"
}
],
"firmared:zkCommitment": "21386411...",
"firmared:anclaEthereum": "0x314885C4...",
"firmared:protocolVersion": "2.0"
}
5 Seguridad
Post-Quantum
ML-DSA-44 (NIST FIPS 204). 128 bits de seguridad cuántica. Resistente a algoritmo de Shor.
ZK Privacy
Poseidon + Groth16/bn254. CUIL se prueba sin revelarse. Commitment único por titular.
Blockchain Anchoring
Ethereum (smart contract) + Bitcoin (OpenTimestamps). Tamper-evidence sin tercero.
Key Custody
Claves privadas en dispositivo o HSM FIPS 140-2 L2+. Sin custodia central.
6 Privacidad
- El CUIL es dato personal bajo Ley Argentina 25.326 — nunca se publica
- ZK proofs permiten verificación sin revelar el CUIL
- BBS+ selective disclosure para Verifiable Credentials
- SD-JWT para revelación selectiva de atributos
- Ningún dato personal en el DID Document
7 Conformidad
| Estándar | Capa | Estado |
|---|---|---|
| W3C DID Core 1.0 | Identidad | ✓ Implementado |
| W3C VC 2.0 | Credenciales | ✓ Implementado |
| Trust over IP Foundation | Gobernanza | ✓ C1+C2 |
| ETSI EN 319 102-1 (AdES) | Firma | ✓ Implementado |
| ETSI TS 119 461 v2 (Liveness) | Identidad | ✓ Implementado |
| NIST FIPS 204 (ML-DSA) | PQC | ✓ Implementado |
| NIST FIPS 205 (SLH-DSA) | PQC | ✓ Implementado |
| Ley 25.506 (Firma Digital AR) | Legal | ✓ Firma Elec. Avanzada |
8 Implementación
- Resolver: firmared.com/did/cuil/{cuil}
- DID Document issuer: firmared.com/.well-known/did.json
- Namespace JSON-LD: firmared.com/ns/firma/v1
- Universal Resolver driver: github.com/firmared/did-cuil-driver
- W3C PR: github.com/w3c/did-extensions/pull/698