Saltar al contenido principal

Modelo de seguridad

Pali es una billetera no custodial. No expone claves privadas a las dapps. Las dapps envían solicitudes al proveedor inyectado, Pali valida y enruta esas solicitudes, y los usuarios aprueban acciones sensibles en la UI de la extensión.

Principios centrales

  • Conexiones limitadas por origen: las conexiones se almacenan por host de dapp.
  • Una cuenta activa por dapp: un sitio conectado tiene una cuenta activa a la vez, aunque muchos sitios puedan estar conectados.
  • Aprobaciones serializadas: las solicitudes bloqueantes que abren popups se coordinan para que los usuarios no queden enterrados bajo aprobaciones en competencia.
  • Comprobaciones de familia de red: los métodos EVM y los métodos UTXO están separados. Las llamadas a la familia incorrecta deben manejarse como errores recuperables de la dapp.
  • Firma explícita: transacciones, PSBTs, datos tipados, firma de mensajes, creación passkey, ejecuciones passkey, solicitudes de observación de activos y cambios de cadena requieren el estado correcto de la billetera y aprobación del usuario.
  • Aislamiento del proveedor: Pali inyecta proveedores en la página de nivel superior. No los inyecta en iframes.

Qué reciben las dapps

Las dapps reciben identificadores públicos de cuenta, estado del proveedor, firmas, hashes de transacción y resultados RPC explícitos. Nunca reciben frases semilla, claves privadas, material privado passkey ni secretos del autenticador.

Seguridad de passkey

Las cuentas inteligentes passkey usan credenciales WebAuthn. Pali almacena metadatos públicos e identificadores de credenciales; el material de clave privada permanece dentro del autenticador. Pali rechaza assertions WebAuthn entre orígenes y verifica que los hashes de acción passkey coincidan con el conjunto de transacciones preparado.

Seguridad de la política de módulos

La política de módulos institucional se divide en:

  • Política on-chain: modo, firmante sponsor y URL de sponsor.
  • Metadatos de billetera: texto de política mostrado y otro contexto local de billetera.

El campo policyText se muestra a los usuarios como contexto. No es una primitiva de aplicación on-chain.