tawasuyu

tawasuyu/agora

> Public square. Federated identity and a trust graph that no one runs.

Rust 76Markdown 49TOML 211529 Definitions

⎇ d0638350bf39c350b2d1d1858a8c8eb962240fa5 03_ukupacha/agora/agora-confianza/LEEME.md Markdown · 56 lines · 2.6 KB History raw

feat: agora standalone — front-door de identidad federada y grafo de confianza d0638350b · Sergio ·

1# agora-confianza
2
3*Read this in English: [README.md](README.md).*
4
5Reconcilia los **dos planos de confianza** de agora en **una sola opinión por-lector**.
6
7agora hace dos preguntas distintas sobre una clave, y hasta hoy vivían
8separadas — cada consumidor (ayni, veeduría, minga, hampi, tampu) las
9cableaba a mano, y varios caían en la misma trampa de tipos:
10
111. **¿esta clave sigue siendo suya?** — plano de *validez*: revocación
12   M-de-N de guardianes / rotación de clave.
13   `TrustGraph::{is_revoked_at, current_key_at}`.
142. **¿le creo a esta persona?** — plano *social*: cuántos de MI círculo la
15   avalan. `TrustGraph::corroboration_of_at` + `TrustPolicy::grado`.
16
17Ninguna alcanza sola y **nadie las componía**. El síntoma no es teórico
18(verificado en `agora-graph`): `corroboration_of_at` excluye a los
19*atestadores* revocados pero **no al sujeto**. Así, una clave comprometida
20y revocada por sus guardianes seguía pesando a full por sus atestadores
21vivos — el espejo social exacto del agujero que `ayni` cerró para las
22firmas (una clave revocada seguía firmando mensajes). `Model::confianza_en`,
23el único puente `f32` que existía, arrastraba ese defecto.
24
25Esta capa compone las dos preguntas en una `iniy_core::Opinion` (lógica
26subjetiva de Jøsang), que distingue los **tres estados** que un `bool`
27colapsa:
28
29- **creo** (creencia): la clave está viva y tu círculo la avala.
30- **no le creo** (descreencia): la clave fue revocada — no importa cuántos
31  la avalen, ya no es suya.
32- **no sé** (incertidumbre): la clave está viva pero nadie de tu círculo da
33  fe. Un desconocido, **no** un impostor. `descontar(0.0)` manda la masa a
34  la incertidumbre (u=1), nunca a la descreencia — perder esa distinción es
35  lo que pasa al reducir a un booleano.
36
37## Doctrina respetada
38
39El grafo **no emite veredicto** (ARQUITECTURA.md, `agora-graph` doc de
40módulo): separa evidencia cruda de umbral negociado. Esta capa se apoya en
41él **sin tocarlo** — es L1.5, encima del grafo y debajo de la app. Los
42cores `no_std` (`ayni-core`, `qillqa-veeduria`) siguen pidiendo un closure;
43el **borde** construye el puente desde aquí. Núcleo puro, confianza afuera
44(SDD §5).
45
46## El tiempo es del que llama
47
48Todo toma un `ahora: u64`. Una revocación rige desde su `issued_at`; una
49clave no se vuelve falsa retroactivamente. Para juzgar **confianza viva**
50pasas el reloj de pared; para juzgar **si una firma valía cuando se hizo**
51pasas el instante de la firma (como hace `ayni::verificar_nodo_en`). La capa
52no decide por vos cuál de los dos es: sólo compone honestamente a ese `ahora`.
53
54---
55
56Parte de **agora** — ver [agora](../LEEME.md).

LEEME.md

agora-confianza

Read this in English: README.md.

Reconcilia los dos planos de confianza de agora en una sola opinión por-lector.

agora hace dos preguntas distintas sobre una clave, y hasta hoy vivían separadas — cada consumidor (ayni, veeduría, minga, hampi, tampu) las cableaba a mano, y varios caían en la misma trampa de tipos:

  1. ¿esta clave sigue siendo suya? — plano de validez: revocación M-de-N de guardianes / rotación de clave. TrustGraph::{is_revoked_at, current_key_at}.
  2. ¿le creo a esta persona? — plano social: cuántos de MI círculo la avalan. TrustGraph::corroboration_of_at + TrustPolicy::grado.

Ninguna alcanza sola y nadie las componía. El síntoma no es teórico (verificado en agora-graph): corroboration_of_at excluye a los atestadores revocados pero no al sujeto. Así, una clave comprometida y revocada por sus guardianes seguía pesando a full por sus atestadores vivos — el espejo social exacto del agujero que ayni cerró para las firmas (una clave revocada seguía firmando mensajes). Model::confianza_en, el único puente f32 que existía, arrastraba ese defecto.

Esta capa compone las dos preguntas en una iniy_core::Opinion (lógica subjetiva de Jøsang), que distingue los tres estados que un bool colapsa:

Doctrina respetada

El grafo no emite veredicto (ARQUITECTURA.md, agora-graph doc de módulo): separa evidencia cruda de umbral negociado. Esta capa se apoya en él sin tocarlo — es L1.5, encima del grafo y debajo de la app. Los cores no_std (ayni-core, qillqa-veeduria) siguen pidiendo un closure; el borde construye el puente desde aquí. Núcleo puro, confianza afuera (SDD §5).

El tiempo es del que llama

Todo toma un ahora: u64. Una revocación rige desde su issued_at; una clave no se vuelve falsa retroactivamente. Para juzgar confianza viva pasas el reloj de pared; para juzgar si una firma valía cuando se hizo pasas el instante de la firma (como hace ayni::verificar_nodo_en). La capa no decide por vos cuál de los dos es: sólo compone honestamente a ese ahora.


Parte de agora — ver agora.