Saltar al contenido principal

Billeteras inteligentes

Las billeteras inteligentes son cuentas de contrato que actúan como billeteras de usuario. Mantienen activos y aplican la autenticación en __check_auth en lugar de una única clave secreta. Las passkeys (WebAuthn) son comunes, pero también puedes usar claves Ed25519, firmantes de políticas, claves de sesión o cualquier cosa que el contrato pueda verificar.

Cuándo usar una billetera inteligente

  • Necesitas autenticación programable (límites, listas permitidas, aprobaciones multifactor como usuario más clave de dispositivo).
  • Quieres una experiencia con passkey o clave hardware sin exponer frases Seed.
  • Necesitas mezclas flexibles de firmantes: passkeys para experiencia de usuario, Ed25519 para compatibilidad, firmantes de políticas o multisig para controles de riesgo.

WebAuthn

WebAuthn es un estándar del navegador para autenticación sin contraseña usando criptografía de clave pública. Un dispositivo crea un keypair y demuestra su posesión con un flujo de desafío/respuesta. Las claves permanecen en el dispositivo o se sincronizan entre dispositivos mediante proveedores en la nube.

Beneficios:

  • Funciona en navegadores y plataformas modernas.
  • Flujos familiares (Touch ID, Face ID, claves hardware) sin frases Seed.
  • Produce firmas que verificas en __check_auth.

secp256r1 en Stellar

secp256r1 (prime256v1) es la curva que utilizan la mayoría de los autenticadores WebAuthn. Stellar añadió verificación nativa para esta curva en el Protocolo 21, así contratos pueden validar firmas WebAuthn on-chain.

Passkeys

  • WebAuthn es el estándar del navegador para autenticación sin contraseña.
  • secp256r1 es la curva que la mayoría de autenticadores usan; Stellar la verifica on-chain.
  • Las passkeys son credenciales basadas en plataforma o hardware que implementan WebAuthn.
  • Consulta ejemplos para proyectos reales.

Passkeys en la práctica

  • Registro: usa WebAuthn para crear un keypair en el dispositivo; guarda la clave pública (y el ID de credencial opcional) en el estado del contrato.
  • Firma: solicita una afirmación WebAuthn cuando el usuario aprueba una acción; retorna una firma sobre la carga.
  • Verificación: pasa la firma y el ID de credencial a tu contrato; en __check_auth, verifica la firma secp256r1 y aplica controles de políticas (límites, listas permitidas, bloqueos temporales).

Herramientas

Participa