Seguridad
Qué es privado, frente a quién, y los límites que conocemos.
Quién ve qué (modo rampa)
| Observador | Ve |
|---|---|
| El público | El anchor le pagó a Shield; Shield usó el pool. Ni la dirección del usuario ni quién recibió qué |
| El anchor | Al usuario y el monto (hace el KYC) |
| Shield | Qué cuenta es dueña de qué llaves (es el ASP), y cada intent |
| El auditor | Cada nota: dueño y monto |
Protecciones
- Las llaves de gasto nunca salen del navegador del usuario.
- El registro exige la firma SEP-53 de la cuenta sobre las llaves exactas.
- Iniciar un depósito exige la firma SEP-53 de la cuenta sobre el monto, y cada solicitud firmada sirve una sola vez.
- Solo el pago que reporta el anchor fondea un intent; los memos de los intents son aleatorios.
- La llave de vista solo llega al proceso del auditor, nunca a un navegador.
- Operador, cuenta ómnibus y auditor son tres llaves distintas.
- Los logs nunca juntan la dirección de un usuario con un monto.
Límites conocidos
- El pago del anchor y el depósito de Shield comparten monto y hora, así que se pueden vincular (lo siguiente es agruparlos).
- En modo directo, el usuario firma sus propias transferencias, así que su cuenta aparece como usuaria del pool (lo resuelve un relayer).
GET /v1/users/{account}es público: dice si una cuenta usa Shield.- El emisor del activo podría activar el clawback más adelante; no es
AUTH_IMMUTABLE. - Contratos de developer preview sin auditar; el RPC público guarda unos 7 días de historial.
Threat model completo (en inglés): docs/threat-model.md.