Me gustaría crear una billetera de Bitcoin.
Parte del proceso es almacenar las claves públicas y privadas en forma cifrada en la base de datos del servidor.
Todas las claves que estoy almacenando están encriptadas usando el código de acceso del usuario.
1) ¿Es seguro almacenar el código de acceso del usuario en forma cifrada en la base de datos del servidor? (Pensando que el Usuario podría olvidar su contraseña, por lo que considera una opción de recuperación)
2) ¿Existe algún tipo de posibilidad futura de meterme en problemas si ocurre algún tipo de ataque o por la acción de algún intruso / administrador (la peor posibilidad)? La clave es la revelación al atacante. ¿Cuál será el acceso y la apertura de todas las claves de pub / priv desde la base de datos de ese usuario específico? De esta manera no puedo dar la opción de olvidar el código de acceso al usuario.
Entonces, considerando ambas opciones ¿Debo almacenar el código de acceso del usuario o no?
¿Cuál es la mejor práctica para implementar esta función de seguridad en la billetera de Bitcoin?
Actualizar
Esta pregunta no es un duplicado de ¿Cómo hash seguro las contraseñas?
a medida que la pregunta revela formas de hacer hash de la contraseña y aquí, lo que estoy preguntando es encontrar una mejor práctica para descifrar código de acceso y su impacto relacionado en el sistema.
Por ej. ¿Qué pasa si el usuario quiere recuperar su contraseña olvidada?