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 sub-claves privadas basado en la clave privada maestra.
¿Por qué necesitamos un algoritmo "determinista e irreversible"? Porque "determinista" asegura que todas las sub-claves privadas se puedan generar a partir de una clave privada maestra, mientras que "irreversible" asegura que la clave privada maestra no se pueda revertir mediante una sub-clave privada.
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 por primera vez una billetera HD o hacemos una copia de seguridad de una billetera, se genera una palabra auxiliar. La palabra auxiliar 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 también es 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 sub-claves públicas. En otras palabras, se pueden generar nuevas direcciones (públicas) basándose en la clave pública maestra sin la intervención de la clave privada (claves privadas maestras y sub-claves), y estas direcciones pueden ser controladas por la clave privada maestra.
Existen ventajas y desventajas; cuando exponemos la clave auxiliar, 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 las 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 a lo largo de cientos de transacciones y cientos de bloques como un UTXO. En realidad, no hay un lugar para almacenar la dirección o el saldo de un USD, solo un UTXO descentralizado que está bloqueado por el propietario.
Un UTXO puede ser de 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, se consumirá en su totalidad, pero se creará una fracción de la transacción.
He aquí un ejemplo de lo que esto significa. Si tiene un UTXO de 20 rupias y desea pagar 1 rupia, su 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 en cambio a su billetera. En este caso, la mayoría de las transacciones en la tasa 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 debe saber por qué un usuario de billetera necesita tantas claves privadas, porque las claves públicas y privadas siempre aparecen en pares, cada transacción puede generar una dirección de cambio, y el almacenamiento y la copia de seguridad de la clave privada correspondiente a estas direcciones se ha convertido en un problema técnico de las transacciones digitales. La billetera HD, mediante una clave pública, puede generar cualquier número de sub-claves públicas, lo que resuelve en gran medida el problema de uso difícil de las billeteras digitales.
