Pros/Cons/Limitaciones de las frases mnemotécnicas - BIP39

Las frases mnemotécnicas de BIP39 reemplazan las consideraciones sobre cómo almacenar una clave privada, con consideraciones sobre cómo almacenar la semilla en una serie de claves privadas.

La idea es que las claves privadas son difíciles de recordar, peor para escribir y propensas a ser descubiertas cuando se almacenan digitalmente, por lo que la solución es que puede tener una frase de palabras que actúe como una semilla para una serie jerárquica determinista de direcciones.

Parece que esta idea se ha perdido en la traducción, ya que la longitud de las frases mnemotécnicas ha aumentado de 12 palabras a 24 palabras, con el "más seguro que tú" usando palabras y frases aún más largas, y las empresas preocupadas por la seguridad promueven la escritura. la frase mnemotécnica, en múltiples lugares.

o dividir la frase, o poner una frase de contraseña adicional encima de la secuencia HD, o usar la clave secreta de Shamir...

todo lo cual simplemente crea más puntos de falla.

En última instancia: en lugar de que una billetera de papel comprometa una clave privada, su frase en papel comprometerá TODAS sus claves privadas. UPS. o olvidas la clave secreta, o pierdes una parte de la frase, o la escribes mal

Al menos podemos estar seguros de que las palabras mismas contienen suficiente entropía para evitar adivinar, ¿VERDAD CHICOS? ¿CORRECTO?

¿Cuáles son los pros, los contras, las limitaciones de BIP39, o al menos mis preocupaciones? He leído el wiki y el github markdown en BIP39, y estos no hacen nada para aliviar estas preocupaciones porque estos BIP son un proceso centralizado.

Respuestas (3)

para contestar la primera parte;

en general, la gente querrá hacer una copia de seguridad de toda su billetera, no de PK específicos. por lo tanto, usar una billetera HD y hacer una copia de seguridad de la semilla (ya sea la semilla o un mnemotécnico BIP39 no importa) coincide con lo que hacen las personas que usan billeteras 'normales', hace una copia de seguridad de toda su billetera en 1 lugar (la mayoría de las billeteras tienen una copia de seguridad / archivo de exportación para toda la billetera).

BIP32 - HD Wallets - (y BIP39) no se supone que reemplace la posibilidad de dividir sus copias de seguridad en múltiples claves privadas dispersas, reemplaza una sola billetera respaldada de manera 'tradicional', 1 archivo (o impresión) para toda la billetera.

también una copia de seguridad en papel BIP39 tiene los mismos problemas que las copias de seguridad de clave privada normales que mencionas, si pierdes la frase de contraseña o la escribes mal... se ha ido...

Pero si desea distribuir el riesgo dividiendo sus bitcoins en varias copias de seguridad, entonces solo debe tener varias billeteras para dividirlas.

BIP39 también es solo el proceso de convertir una semilla a mnemotécnica y viceversa, sus preocupaciones (discutidas anteriormente) son en realidad con las billeteras HD en general, que es BIP32 ;-)

¡ahora su única preocupación real con respecto a BIP39 es que las palabras contengan suficiente entropía! y lo hacen, porque las palabras se generan a partir de una entropía de 128 o 256 bits para empezar, la entropía hexadecimal se divide en partes de 11, lo que significa que tienes una lista de 0-2047 enteros como resultado. esa lista de enteros se traduce a las palabras (y de vuelta al hexadecimal y a la entropía binaria cuando la usa).

Permíteme demostrarte cómo se convierte uno de los vectores de prueba oficiales:

maleficio de entropía: 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f

bits de entropía: 011111110111111101111111011111110111111110111111101111111101111111011111110111111110111111110111111101111111101111111101111111011110111

dividido en 11 partes de longitud: [0] => 01111111011 [1] => 11111011111 [2] => 11011111110 [3] => 11111110111 [4] => 11110111111 [5] => 10111111101 [6] => [ 1111111111 ] => 11101111111 [8] => 01111111011 [9] => 11111011111 [10] => 11011111110 [11] => 11111111000

esas partes convertidas en palabras usando la lista de palabras predeterminada: ganador legal gracias año ola salchicha vale la pena útil ganador legal gracias amarillo

el mnemotécnico junto con la contraseña TREZOR convertido a un hex semilla: 2e8905819b8723fe2c1d161860e5ee1830318dbf49a83bd451cfb8440c28bd6fa457fe1296106559a3c80937a1c1069be3a3a5bd388ce66f309ef

ahora, lo bueno en realidad es que si usa una contraseña diferente con el mismo mnemotécnico, obtiene una semilla diferente y, por lo tanto, una billetera diferente, podría tener 2 billeteras y, si lo roban, solo entregue el BTC en una de ellas ;-)

"BIP39 también es solo el proceso de convertir una semilla a mnemotécnica y viceversa": BIP39 usa hash unidireccional para derivar la semilla BIP32. No hay vuelta atrás.

Bitcoin-explorer pasa los vectores de prueba BIP-39. Mire los ejemplos de bitcoin-explorer a continuación para responder las preguntas anteriores.

1) eco "0" | bx base16-encode | bx sha256

effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6

2) echo "effcce8f" | bx mnemónico-nuevo

frase de juguete útil

3) eco "e9c6da7e" | bx mnemónico-nuevo

pánico del ciclo de la verdad

4) echo "effcce8fe9c6da7e" | bx mnemónico-nuevo

juguete útil apretón físico horror enfermedad

5) echo "effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6" | bx mnemónico-nuevo

útil juguete físico apretar horror enfermedad capucha libro social teoría ártico muestra araña prado colina bonito naranja volverse descartar rico golpe levantar punto pronto

6) echo "effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6" | bx mnemónico-nuevo --idioma es

útil juguete físico apretar horror enfermedad capucha libro social teoría ártico muestra araña prado colina bonito naranja volverse descartar rico golpe levantar punto pronto

7) echo "effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6" | bx mnemónico-nuevo --idioma es

trozo tez opinar sauna honra dar hombre azafrán rubí talón amapola puré salvar mármol héroe pánico norma ascenso dátil posible ritmo perla otra ruptura

8) echo "enfermedad de terror de apretón físico de juguete útil" | bx mnemotécnico-a-semilla

ab226a6e34d87c6a469cfca5d034d7c053ee6f5478bccb1589bc3b216759cb263cab74503471c2f44cbe3d5c06e1e1a774a3feb51a8dfdcc4dd4aece392802e2

9) echo "enfermedad de terror de apretón físico de juguete útil" | bx mnemotécnico-a-semilla -p TREZOR

a1e90b6de07f62e8e09268a138761e9a93296afa221fbefc7b4bcaefef71aac6d4a385af7a0ca34d96b275953d4bbd12d442d9738f1559c855f292e7a4a75daa

10) echo "útil juguete físico apretón horror enfermedad capucha libro social teoría ártico muestra araña prado colina bastante naranja volverse descartar rico portazo levantar punto pronto" | bx mnemotécnico-a-semilla

4703dc4343298d2ea7ddfa5f60b8a359f87c73f356b7eb684596f15390e1d8f67e42c5b224765bf10a4ed3437d3fd6b6110edb2c235ec997b1d969693bc12d18

Pregunta: ¿qué bxbiblioteca está utilizando, esa: github.com/libbitcoin/libbitcoin-explorer potencialmente?
Sí, ese es el código fuente. Los binarios están disponibles en github.com/libbitcoin/libbitcoin-explorer/wiki/Download-BX .
¿Puedes echar un vistazo a la discrepancia? imgur.com/a/HDssr
Parece que el ejecutable que se usaba estaba usando boost sin icu . Examine install.sh para compilar con icu.
Demasiado ocupado, demasiados otros proyectos, es poco probable que se sumerja en el problema central.
Es la salida de echo "0". Estos producen cuatro resultados diferentes: "0", "00", 0 y 00. La codificación bx base-16 convierte cualquier dato a base16..."Los datos binarios para codificar como Base16. Puede ser texto o cualquier otro dato".
Cualquier limitación que resulte de una compilación que no sea de ICU se reflejará como una salida de error.

Creo que la mejor manera de considerar BIP39 es como una forma de crear portabilidad para sus claves. Luego puede moverlos de una billetera a la siguiente y/o respaldar el mnemotécnico de varias maneras. No está atado a una billetera o sistema de respaldo. Anteriormente, hacer una copia de seguridad o mover las llaves a otra billetera era una tarea ardua, una llave a la vez. La mayoría de las personas no se molestaron, y cuando su disco duro falló u olvidaron la contraseña de su billetera, básicamente todo se perdió.

¿Esto realmente aborda los riesgos de robo? No. En un mundo ideal, tendría una forma confiable de regenerar su semilla sobre la marcha, y solo usaría un mnemotécnico para pasar de una billetera a otra.

Los riesgos de robo son manejados por otros sistemas: airgapping, agregando una contraseña a su mnemónico, imprimiendo mnemónicos en metal y almacenándolos en una bóveda de banco u otro sistema de almacenamiento físicamente seguro confiable, usando una billetera de hardware, etc.