W3C DID Method Registry — Candidate  ·  PR #698  ·  FirmaRED Protocol
DID Method Specification
did:cuil
Decentralized Identity for Argentine Fiscal Identifiers
Version1.0
Date2026-04-16
StatusCandidate — W3C PR #698
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
Resolver →

3 Operaciones CRUD

Create

  1. Validar CUIL con algoritmo mod-11
  2. Generar ZK commitment: Poseidon(cuil, salt) con Groth16/bn254
  3. Generar claves Ed25519 (autenticación) y ML-DSA-44 (post-quantum)
  4. Anclar hash en Ethereum y Bitcoin (OpenTimestamps)
  5. 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ándarCapaEstado
W3C DID Core 1.0Identidad✓ Implementado
W3C VC 2.0Credenciales✓ Implementado
Trust over IP FoundationGobernanza✓ 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