c1c136954e
agorapura-core: identidades fractales (persona/comunidad/alianza/ institución) sobre claves ed25519, Claims sujeto-predicado-valor y Attestations firmadas y autoverificables (la prueba viaja con el dato). agorapura-graph: TrustGraph guarda sólo atestaciones con firma válida; corroboration() devuelve evidencia cruda y TrustPolicy —un umbral negociado, no una verdad del sistema— la traduce a sí/no. 22 tests. Cero red, cero estado global, #![forbid(unsafe_code)]. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
modules/agorapura/ — Identidad humana federada
Propósito. Un ágora de identidad sin autoridad central. Cada identidad —persona, comunidad, alianza, institución— es una clave pública; cada afirmación sobre ella, un claim; cada respaldo, una atestación firmada que viaja con su propia prueba. La verdad no la dicta un servidor: emerge de quién atestigua qué, ponderado por la política que negocie quien lee.
Crates
| crate | tipo | rol |
|---|---|---|
agorapura-core |
lib | Identity/Keypair (ed25519), Claim, Attestation firmada y autoverificable |
agorapura-graph |
lib | TrustGraph (atestaciones verificadas) + Corroboration + TrustPolicy negociada |
Modelo
Keypair ──► Identity (kind: Person|Community|Alliance|Institution)
│
Claim (subject · predicate = value) ──firmado──► Attestation
│ │
└──────────► TrustGraph ◄──────────────┘
│
corroboration(claim) → Corroboration
│
TrustPolicy.accepts() → sí / no
- Fractal: persona, comunidad, alianza e institución comparten estructura idéntica. Que una institución atestigüe sobre una persona o una alianza sobre una comunidad es la misma operación.
- Autoverificable: una
Attestationlleva la clave pública del atestador y su firma — cualquiera la valida sin consultar a nadie. - Sin veredicto central: el grafo devuelve evidencia cruda
(
Corroboration); la validez la decide unaTrustPolicynegociada. Dos consumidores con políticas distintas pueden discrepar legítimamente sobre la misma red.
Dependencias
core←ed25519-dalek,blake3(id = BLAKE3 de la clave pública).graph←agorapura-core. Ambos#![forbid(unsafe_code)].- Cero red, cero estado global — tipos puros. El transporte y el descubrimiento (DHT, Cards) van en capas superiores.
Determinismo
Keypair::from_seed es determinista — tests y derivación jerárquica de
claves dependen de ello. Una identidad real siembra desde un CSPRNG.
Estado
core + graph implementados y verdes (22 tests). Pendiente:
integración con CardKind (variantes Person/Community/Alliance/
Institution en el protocolo) y descubrimiento federado vía DHT.