Passphrase BIP39
Una passphrase BIP39 (frase de contraseña adicional, a veces llamada la «palabra 25») es un secreto adicional opcional que se mezcla en la semilla. La misma frase de recuperación con una passphrase distinta da una cartera completamente diferente: otra huella maestra, otros xpubs y otras direcciones.
BitTool Signer la admite tanto al crear como al importar una cartera: 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 cartera que tiene passphrase. La app lo indica en todas las pantallas de copia de seguridad, y ninguna de las formas de copia de seguridad (palabras, código QR, tarjetas de recuperación) incluye la passphrase. Además, la passphrase no es la contraseña de la cartera: la contraseña solo cifra la bóveda en este móvil.
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 tildes, caracteres de ancho completo o caracteres de compatibilidad CJK: una cartera que omite la normalización deriva una semilla diferente a partir del mismo texto.
- Por lo demás, se usa exactamente tal como se escribe: sin recortar espacios y sin convertir 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 las dos entradas deben coincidir.
- Hasta 1024 bytes (UTF-8).
La implementación se ha contrastado 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 sin passphrase y con la passphrase TREZOR (la passphrase que usan los vectores de prueba BIP39 publicados):
| Sin passphrase | Passphrase TREZOR | |
|---|---|---|
| Huella 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 cartera
Nada especial: la passphrase nunca sale de BitTool Signer. Una cartera con passphrase simplemente se vincula con su propia huella maestra y sus propios xpubs, y sus solicitudes de firma deben llevar esa huella. Para tu integración es una cartera más.
Dos consecuencias prácticas:
- Una frase, varias carteras. Un usuario puede tener la misma frase dos veces en BitTool Signer, con y sin passphrase. Muestran huellas distintas; no fusiones cuentas por frase ni por nombre, solo por las claves públicas exportadas.
- La huella es una comprobación rápida. Si un usuario espera una cartera con passphrase, pero vincula una cuya huella reconoce de la cartera sin passphrase, probablemente haya olvidado (o escrito mal) la passphrase.