Concepto de billetera de software
Una billetera de software utiliza un número aleatorio para generar una clave privada maestra.
Luego, un algoritmo determinista e irreversible genera un número arbitrario de claves privadas secundarias basándose en la clave privada maestra.
¿Por qué necesitamos un algoritmo "deterministra e irreversible"? Porque "deterministra" asegura que todas las claves privadas secundarias se puedan generar a partir de una clave privada maestra, mientras que "irreversible" asegura que la clave privada maestra no se pueda revertir a partir de una clave privada secundaria.
La razón por la que se llama billetera determinista jerárquica es que la estructura de derivación de una clave privada es una estructura de árbol, donde una clave padre puede derivarse de una serie de claves hijo, y cada clave hijo puede derivarse de una serie de claves nieto, y así sucesivamente, hasta el infinito.
Cuando creamos una billetera HD por primera vez o hacemos una copia de seguridad de una billetera, se genera una palabra de ayuda. La palabra de ayuda es una secuencia de palabras en inglés, y esta secuencia de palabras crea la semilla, que a su vez crea todas las claves privadas. La secuencia de palabras es también la copia de seguridad de la billetera, que se puede restaurar. Y la semilla corresponde al número aleatorio de todas las billeteras deterministas.
La ventaja de las billeteras HD es que solo se necesita la clave pública maestra para generar cualquier número de claves públicas secundarias. En otras palabras, se pueden generar nuevas direcciones (públicas) basadas en la clave pública maestra sin la intervención de la clave privada (clave privada maestra y secundarias), y estas direcciones pueden ser controladas por la clave privada maestra.
Existen ventajas y desventajas, cuando exponemos la clave de ayuda, también es equivalente a entregar todas las claves privadas, y la seguridad de los activos digitales que posees es cero.
¿Por qué necesitas tantas claves privadas?
La razón por la que un usuario necesita tantas claves privadas se ilustra con el mecanismo de cambio de una transacción de Bitcoin.
Una transacción de Bitcoin es una estructura de datos que contiene un valor de entrada y un valor de salida. Esta estructura de datos está incrustada con información sobre el código que mueve un metal desde su punto inicial (el valor de entrada) a la dirección de destino (el valor de salida).
Cuando se trata de entradas y salidas de transacciones de Bitcoin, es importante comprender el término UTXO (Unspent Transaction Output), que es la unidad básica de una transacción de Bitcoin y es una salida de transacción no utilizada. Un solo bitcoin utilizado se distribuye en cientos de transacciones y cientos de bloques como un UTXO. En realidad, no hay ningún lugar donde almacenar la dirección o el saldo de un USD, solo un UTXO descentralizado que está bloqueado por el propietario.
Un UTXO puede tener cualquier valor, pero tan pronto como se crea, es tan indivisible como una moneda que no se puede cortar por la mitad. Si un UTXO es mayor que la demanda de una transacción, de todos modos se consumirá en su totalidad, pero se creará como una fracción de la transacción.
Aquí hay un ejemplo de lo que esto significa. Si tienes un UTXO de 20 rupias y quieres pagar 1 rupia, entonces tu transacción debe consumir todo el UTXO de 20 rupias y crear dos salidas: una que pague 1 rupia al destinatario y otra que pague 19 rupias como cambio a tu billetera. En este caso, la mayoría de las transacciones en el tipo de cambio generarán cambio.
Surge la pregunta de si el cambio debe devolverse a la dirección original o a una nueva dirección. Cuando Satoshi Nakamoto diseñó Bitcoin, utilizó un mecanismo de retorno cero que crea una nueva dirección para cada transacción. El beneficio de este diseño es proteger la privacidad del usuario de la transacción y evitar algunos riesgos de seguridad.
En la vida real, es como abrir varias cuentas bancarias en diferentes bancos con múltiples nombres y tarjetas de identificación. Incluso si alguien conoce el flujo de dinero en cada cuenta, no puede rastrear el flujo de dinero hasta el propietario real de la moneda digital, que es el llamado anonimato de Bitcoin.
Es por eso que debes saber por qué un usuario de billetera necesita tantas claves privadas, porque las claves pública y privada siempre aparecen en pares, cada transacción puede generar una dirección de cambio, y la clave privada correspondiente a estas direcciones de almacenamiento y copia de seguridad se ha convertido en un problema técnico de las transacciones digitales. La billetera HD, a través de una clave pública, puede generar cualquier número de claves públicas secundarias, lo que resuelve en gran medida la dificultad de usar billeteras digitales.
