Passphrase BIP39
Una passphrase BIP39 (frase de contraseña adicional, a veces llamada la "palabra 25") es un secreto adicional y opcional que se mezcla en la semilla. La misma frase de recuperación con una passphrase diferente produce una billetera completamente distinta: otra huella digital maestra, otros xpubs y otras direcciones.
BitTool Signer la admite tanto al crear como al importar una billetera: activa BIP39 passphrase y escríbela dos veces. Se guarda dentro de la bóveda cifrada junto con la frase, así que el usuario no tiene que volver a escribirla para firmar.
La frase de recuperación por sí sola no puede restaurar una billetera que tiene passphrase. La app lo indica en cada pantalla de respaldo, y ninguna de las formas de respaldo (palabras, código QR, tarjetas de recuperación) incluye la passphrase. Además, la passphrase no es la contraseña de la billetera: la contraseña solo cifra la bóveda en este teléfono.
Cómo entra en la semilla
seed = PBKDF2-HMAC-SHA512(password = NFKD(phrase), salt = NFKD("mnemonic" + passphrase), 2048 iterations, 64 bytes)
- La passphrase se normaliza con Unicode NFKD, como exige BIP39. Esto es importante en passphrases con acentos, caracteres de ancho completo o caracteres de compatibilidad CJK: una billetera que omite la normalización deriva una semilla diferente a partir del mismo texto.
- Por lo demás, se usa exactamente como se escribe: sin recortar espacios y sin unificar mayúsculas y minúsculas. Un espacio al final forma parte de la passphrase.
- Una passphrase vacía significa "sin passphrase". Si la opción está activada, no puede estar vacía y ambas entradas deben coincidir.
- Hasta 1,024 bytes (UTF-8).
La implementación se verificó con los vectores BIP39 publicados y con los vectores oficiales en japonés, que incluyen una passphrase con caracteres de compatibilidad.
Ejemplo
La frase de prueba pública con y sin la passphrase TREZOR (la passphrase que usan los vectores de prueba BIP39 publicados):
| Sin passphrase | Passphrase TREZOR | |
|---|---|---|
| Huella digital maestra | 73c5da0a | b4e3f5ed |
Bitcoin m/84'/0'/0'/0/0 | bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu | bc1qv5rmq0kt9yz3pm36wvzct7p3x6mtgehjul0feu |
EVM m/44'/60'/0'/0/0 | 0x9858EfFD232B4033E47d90003D41EC34EcaEda94 | 0x9c32F71D4DB8Fb9e1A58B0a80dF79935e7256FA6 |
TRON m/44'/195'/0'/0/0 | TUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH | TAyDUYP5rcf56xFwrg8cU1qQwvnWpkeapM |
Solana m/44'/501'/0'/0' | HAgk14JpMQLgt6rVgv7cBQFJWFto5Dqxi472uT3DKpqk | 7zSmbu6gKkb6HB7UDPtHYjwCWuBHU1D4TpNZFm4sndQe |
Las semillas de 64 bytes
5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc19a5ac40b389cd370d086206dec8aa6c43daea6690f20ad3d8d48b2d2ce9e38e4
c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04
Qué significa para tu billetera
Nada especial: la passphrase nunca sale de BitTool Signer. Una billetera con passphrase simplemente se empareja con su propia huella digital maestra y sus propios xpubs, y sus solicitudes de firma deben llevar esa huella digital. Para tu integración, es solo una billetera más.
Dos consecuencias prácticas:
- Una frase, varias billeteras. Un usuario puede tener la misma frase dos veces en BitTool Signer, con y sin passphrase. Cada una muestra una huella digital diferente; no combines cuentas por frase ni por nombre, solo por las claves públicas exportadas.
- La huella digital es una verificación rápida. Si un usuario espera una billetera con passphrase pero empareja una cuya huella digital reconoce de la billetera sin passphrase, probablemente olvidó (o escribió mal) la passphrase.